Анализ отклонения для линейной регрессионой модели
возвращает статистику Дисперсионный Анализ заданного типа tbl
= anova(mdl
,anovatype
)anovatype
. Для примера задайте anovatype
как 'component'
(по умолчанию), чтобы вернуть таблицу со статистикой ANOVA компонента, или указать anovatype
как 'summary'
для возврата таблицы с суммарной статистикой Дисперсионный Анализ.
Составьте таблицу ANOVA компонента из линейной регрессионой модели hospital
набор данных.
Загрузите hospital
набор данных и создание модели артериального давления как функции возраста и пола.
load hospital tbl = table(hospital.Age,hospital.Sex,hospital.BloodPressure(:,2), ... 'VariableNames',{'Age','Sex','BloodPressure'}); tbl.Sex = categorical(tbl.Sex); mdl = fitlm(tbl,'BloodPressure ~ Sex + Age^2')
mdl = Linear regression model: BloodPressure ~ 1 + Age + Sex + Age^2 Estimated Coefficients: Estimate SE tStat pValue _________ ________ ________ _________ (Intercept) 63.942 19.194 3.3314 0.0012275 Age 0.90673 1.0442 0.86837 0.38736 Sex_Male 3.0019 1.3765 2.1808 0.031643 Age^2 -0.011275 0.013853 -0.81389 0.41772 Number of observations: 100, Error degrees of freedom: 96 Root Mean Squared Error: 6.83 R-squared: 0.0577, Adjusted R-Squared: 0.0283 F-statistic vs. constant model: 1.96, p-value = 0.125
Создайте таблицу ANOVA модели.
tbl = anova(mdl)
tbl=4×5 table
SumSq DF MeanSq F pValue
______ __ ______ _______ ________
Age 18.705 1 18.705 0.40055 0.52831
Sex 222.09 1 222.09 4.7558 0.031643
Age^2 30.934 1 30.934 0.66242 0.41772
Error 4483.1 96 46.699
В таблице отображаются следующие столбцы для каждого термина, кроме термина константа ( точка пересечения):
SumSq
- Сумма квадратов, объясненная термином.
DF
- Степени свободы. В этом примере DF
равен 1 для каждого члена в модели и n - p для члена ошибки, где n - количество наблюдений, а p - количество коэффициентов (включая точку пересечения) в модели. Для примера, DF
для члена ошибки в этой модели является 100 - 4 = 96. Если какая-либо переменная в модели является категориальной переменной, DF
для этой переменной является количество переменных индикатора, созданных для ее категорий (количество категорий - 1).
MeanSq
- Средний квадрат, заданный MeanSq = SumSq/DF
. Для примера средний квадрат члена ошибки, средней квадратичной невязки (MSE), равен 4 .4831e + 03/96 = 46,6991.
F
- F-статистическое значение для проверки нулевой гипотезы о том, что соответствующий коэффициент равен нулю, вычисляется F = MeanSq/MSE
, где MSE
- средняя квадратичная невязка. Когда нулевая гипотеза верна, F-статистика следует F-распределению. Числитель степеней свободы является DF
значение для соответствующего члена, и знаменательные степени свободы n - p. В этом примере каждая F-статистика следует -распределение.
pValue
- p-значение F-статистического значения. Для примера значение p для Age
равен 0.5283, что означает, что Age
не является значимым на уровне значимости 5%, учитывая другие членов в модели.
Составьте сводную таблицу ANOVA из линейной регрессионой модели hospital
набор данных.
Загрузите hospital
набор данных и создание модели артериального давления как функции возраста и пола.
load hospital tbl = table(hospital.Age,hospital.Sex,hospital.BloodPressure(:,2), ... 'VariableNames',{'Age','Sex','BloodPressure'}); tbl.Sex = categorical(tbl.Sex); mdl = fitlm(tbl,'BloodPressure ~ Sex + Age^2')
mdl = Linear regression model: BloodPressure ~ 1 + Age + Sex + Age^2 Estimated Coefficients: Estimate SE tStat pValue _________ ________ ________ _________ (Intercept) 63.942 19.194 3.3314 0.0012275 Age 0.90673 1.0442 0.86837 0.38736 Sex_Male 3.0019 1.3765 2.1808 0.031643 Age^2 -0.011275 0.013853 -0.81389 0.41772 Number of observations: 100, Error degrees of freedom: 96 Root Mean Squared Error: 6.83 R-squared: 0.0577, Adjusted R-Squared: 0.0283 F-statistic vs. constant model: 1.96, p-value = 0.125
Создайте сводную таблицу ANOVA модели.
tbl = anova(mdl,'summary')
tbl=7×5 table
SumSq DF MeanSq F pValue
______ __ ______ _______ ________
Total 4757.8 99 48.059
Model 274.73 3 91.577 1.961 0.12501
. Linear 243.8 2 121.9 2.6103 0.078726
. Nonlinear 30.934 1 30.934 0.66242 0.41772
Residual 4483.1 96 46.699
. Lack of fit 1483.1 39 38.028 0.72253 0.85732
. Pure error 3000 57 52.632
В таблице отображаются тесты для групп терминов: Total
, Model
, и Residual
.
Total
- Эта строка показывает общую сумму квадратов (SumSq
), степени свободы (DF
), и средняя квадратичная невязка (MeanSq
). Обратите внимание, что MeanSq = SumSq/DF
.
Model
- Эта строка включает SumSq
, DF
, MeanSq
, F-статистическое значение (F
), и p-значение (pValue
). Потому что эта модель включает нелинейный термин (Age^2
), anova
разбиения суммы квадратов (SumSq
) Model
в две части: SumSq
объясняется линейными терминами (Age
и Sex
) и SumSq
объясняется нелинейным термином (Age^2
). Соответствующие F-статистические значения предназначены для проверки значимости линейных членов и нелинейного термина как отдельных групп. Нелинейная группа состоит из Age^2
только термин, поэтому он имеет то же p-значение, что и Age^2
термин в таблице ANOVA компонента.
Residual
- Эта строка включает SumSq
, DF
, MeanSq
, F
, и pValue
. Поскольку набор данных включает репликации, anova
разделяет остаточные SumSq
в часть для репликаций (Pure error
) и остальное (Lack of fit
). Чтобы проверить отсутствие подгонки, anova
вычисляет F-статистическое значение путем сравнения невязок модели с оценкой отклонения без моделей, вычисленной на репликациях. Статистическое значение F не показывает признаков недостаточной подгонки.
Подгонка линейной регрессионой модели, которая содержит категориальный предиктор. Переупорядочите категории категориального предиктора, чтобы контролировать уровень ссылки в модели. Затем используйте anova
для проверки значимости категориальной переменной.
Модель с категориальным предиктором
Загрузите carsmall
набор данных и создайте линейную регрессионую модель MPG
как функцию Model_Year
. Чтобы обработать числовой вектор Model_Year
как категориальная переменная идентифицируйте предиктор, используя 'CategoricalVars'
аргумент пары "имя-значение".
load carsmall mdl = fitlm(Model_Year,MPG,'CategoricalVars',1,'VarNames',{'Model_Year','MPG'})
mdl = Linear regression model: MPG ~ 1 + Model_Year Estimated Coefficients: Estimate SE tStat pValue ________ ______ ______ __________ (Intercept) 17.69 1.0328 17.127 3.2371e-30 Model_Year_76 3.8839 1.4059 2.7625 0.0069402 Model_Year_82 14.02 1.4369 9.7571 8.2164e-16 Number of observations: 94, Error degrees of freedom: 91 Root Mean Squared Error: 5.56 R-squared: 0.531, Adjusted R-Squared: 0.521 F-statistic vs. constant model: 51.6, p-value = 1.07e-15
Формула модели на отображении, MPG ~ 1 + Model_Year
, соответствует
,
где и являются переменными индикатора, значение которых равно единице, если значение Model_Year
составляет 76 и 82, соответственно. The Model_Year
переменная включает три различных значения, которые можно проверить с помощью unique
функция.
unique(Model_Year)
ans = 3×1
70
76
82
fitlm
выбирает наименьшее значение в Model_Year
как уровень ссылки ('70'
) и создает две переменные индикатора и . Модель включает только две переменные индикатора, потому что матрица проекта становится дефицитной, если модель включает три переменные индикатора (по одной для каждого уровня) и член точки пересечения.
Модель с полными переменными индикатора
Можно интерпретировать формулу модели mdl
как модель, которая имеет три переменные индикатора без термина точки пересечения:
.
Кроме того, можно создать модель, которая имеет три переменные индикатора без термина точки пересечения, вручную создав переменные индикатора и задав формулу модели.
temp_Year = dummyvar(categorical(Model_Year));
Model_Year_70 = temp_Year(:,1);
Model_Year_76 = temp_Year(:,2);
Model_Year_82 = temp_Year(:,3);
tbl = table(Model_Year_70,Model_Year_76,Model_Year_82,MPG);
mdl = fitlm(tbl,'MPG ~ Model_Year_70 + Model_Year_76 + Model_Year_82 - 1')
mdl = Linear regression model: MPG ~ Model_Year_70 + Model_Year_76 + Model_Year_82 Estimated Coefficients: Estimate SE tStat pValue ________ _______ ______ __________ Model_Year_70 17.69 1.0328 17.127 3.2371e-30 Model_Year_76 21.574 0.95387 22.617 4.0156e-39 Model_Year_82 31.71 0.99896 31.743 5.2234e-51 Number of observations: 94, Error degrees of freedom: 91 Root Mean Squared Error: 5.56
Выберите ссылочный уровень в модели
Можно выбрать уровень ссылки путем изменения порядка категорий в категориальной переменной. Сначала создайте категориальную переменную Year
.
Year = categorical(Model_Year);
Проверьте порядок категорий при помощи categories
функция.
categories(Year)
ans = 3x1 cell
{'70'}
{'76'}
{'82'}
Если вы используете Year
как переменная предиктора, затем fitlm
выбирает первую категорию '70'
как уровень ссылки. Переупорядочить Year
при помощи reordercats
функция.
Year_reordered = reordercats(Year,{'76','70','82'}); categories(Year_reordered)
ans = 3x1 cell
{'76'}
{'70'}
{'82'}
Первая категория Year_reordered
является '76'
. Создайте линейную регрессионую модель MPG
как функцию Year_reordered
.
mdl2 = fitlm(Year_reordered,MPG,'VarNames',{'Model_Year','MPG'})
mdl2 = Linear regression model: MPG ~ 1 + Model_Year Estimated Coefficients: Estimate SE tStat pValue ________ _______ _______ __________ (Intercept) 21.574 0.95387 22.617 4.0156e-39 Model_Year_70 -3.8839 1.4059 -2.7625 0.0069402 Model_Year_82 10.136 1.3812 7.3385 8.7634e-11 Number of observations: 94, Error degrees of freedom: 91 Root Mean Squared Error: 5.56 R-squared: 0.531, Adjusted R-Squared: 0.521 F-statistic vs. constant model: 51.6, p-value = 1.07e-15
mdl2
использует '76'
как ссылка уровень и включает две переменные индикатора и .
Оценка категориального предиктора
Отображение модели mdl2
включает p-значение каждого члена для проверки, равен ли соответствующий коэффициент нулю. Каждое p-значение исследует каждую переменную индикатора. Чтобы изучить категориальную переменную Model_Year
в качестве группы индикаторных переменных используйте anova
. Используйте 'components'
(по умолчанию) опция для возврата таблицы ANOVA компонента, которая включает статистику Дисперсионный Анализ для каждой переменной в модели, кроме постоянного члена.
anova(mdl2,'components')
ans=2×5 table
SumSq DF MeanSq F pValue
______ __ ______ _____ __________
Model_Year 3190.1 2 1595.1 51.56 1.0694e-15
Error 2815.2 91 30.936
Дисперсионный Анализ компонента включает p-значение Model_Year
переменная, которая меньше, чем p-значения переменных индикатора.
mdl
- Объект модели линейной регрессииLinearModel
| объекта CompactLinearModel
объектОбъект модели линейной регрессии, заданный как LinearModel
объект, созданный при помощи fitlm
или stepwiselm
, или CompactLinearModel
объект, созданный при помощи compact
.
anovatype
- тип ANOVA'component'
(по умолчанию) | 'summary'
Тип ANOVA, заданный как одно из следующих значений:
'component'
— anova
возвращает таблицу tbl
со статистикой Дисперсионный Анализ для каждой переменной в модели, кроме постоянного члена.
'summary'
— anova
возвращает таблицу tbl
с суммарной статистикой Дисперсионный Анализ для сгруппированных переменных и модели в целом.
Для получения дополнительной информации смотрите tbl
описание выходного аргумента.
sstype
- Сумма квадратов типа'h'
(по умолчанию) | 1
| 2
| 3
Сумма типа квадратов для каждого члена, заданная как одно из значений в этой таблице.
Значение | Описание |
---|---|
1 | Тип 1 сумма квадратов - Сокращение остаточной суммы квадратов, полученное путем добавления термина к подгонке, которая уже включает предыдущие условия |
2 | Тип 2 сумма квадратов - Сокращение остаточной суммы квадратов, полученное путем добавления термина к модели, которая содержит все другие условия |
3 | Тип 3 сумма квадратов - Сокращение остаточной суммы квадратов, полученное путем добавления термина к модели, которая содержит все другие условия, но с их эффектами, ограниченными для подчинения обычным «сигма-ограничениям», которые делают модели оцениваемыми |
'h' | Иерархическая модель - Подобна типу 2, но использует как непрерывные, так и категориальные факторы для определения иерархии членов |
Сумма квадратов для любого члена определяется путем сравнения двух моделей. Для модели, содержащей основные эффекты, но без взаимодействий, значение sstype
влияет на расчеты только на несбалансированные данные.
Предположим, что вы подбираете модель с двумя факторами и их взаимодействием, и условия появляются в A порядка точности, B, AB. Пусть R (·) представляет остаточную сумму квадратов для модели. Итак, R (A, B, AB) - остаточная сумма квадратов, подгоняющая целую модель, R (A) - остаточная сумма квадратов, подгоняющая основной эффект только A, а R (1) - остаточная сумма квадратов, подгоняющая только среднее. Три типа квадратов :
Термин | Тип 1 Сумма квадратов | Тип 2 Сумма квадратов | Тип 3 Сумма квадратов |
---|---|---|---|
A | R (1) – R (<reservedrangesplaceholder0>) | R (<reservedrangesplaceholder3>) – R (A, B) | R (B, AB) – R (A, B, AB) |
B | R (<reservedrangesplaceholder3>) – R (A, B) | R (<reservedrangesplaceholder3>) – R (A, B) | R (A, AB) – R (A, B, AB) |
AB | R (A, B) – R (A, B, AB) | R (A, B) – R (A, B, AB) | R (A, B) – R (A, B, AB) |
Модели для суммы квадратов типа 3 имеют введенные сигма-ограничения. Это означает, для примера, что в подбор кривой R (B, AB) массив AB эффектов ограничивается суммой, чтобы 0 больше A для каждого значения B и больше B для каждого значения A.
Для суммы квадратов типа 3:
Если mdl
является CompactLinearModel
объект и регрессионная модель негиерархичны, anova
возвращает ошибку.
Если mdl
является LinearModel
объект и регрессионная модель негиерархичны, anova
отменяет модель, используя кодирование эффектов, каждый раз, когда ей нужно вычислить сумму квадратов типа 3.
Если регрессионная модель в mdl
является иерархическим, anova
вычисляет результаты без привязки модели.
sstype
применяется только в том случае, если anovatype
является 'component'
.
tbl
- Сводная статистическая таблица ANOVAСводная статистическая таблица ANOVA, возвращенная как таблица.
Содержимое tbl
зависят от типа ANOVA, заданного в anovatype
.
Если anovatype
является 'component'
, затем tbl
содержит статистику Дисперсионный Анализ для каждой переменной в модели, за исключением постоянного (перехвата) термина. Таблица включает следующие столбцы для каждой переменной:
Столбец | Описание |
---|---|
SumSq | Сумма квадратов, объясненная термином, вычисляемая в зависимости от |
DF | Степени свободы
|
MeanSq | Средний квадрат, заданный как
|
F | F -статистическое значение, чтобы проверить нулевую гипотезу о том, что соответствующий коэффициент равен нулю, вычисляется Когда гипотеза null верна, F -statistic следует F -распределение. Числитель степеней свободы является |
pValue | p -значение F -статистического значения |
Для получения примера см. раздел «Таблица Дисперсионного Анализа компонентов».
Если anovatype
является 'summary'
, затем tbl
содержит сводную статистику сгруппированных терминов для каждой строки. Таблица содержит те же столбцы, что и 'component'
и эти строки:
Ряд | Описание |
---|---|
Total | Общая статистика
|
Model | Статистика для модели в целом
Если |
Linear | Статистика для линейных терминов
|
Nonlinear | Статистика для нелинейных членов
|
Residual | Статистика по невязкам
Если |
Lack of fit | Несоответствующая статистика
|
Pure error | Статистика для чистой ошибки
|
Для получения примера смотрите Сводку Дисперсионного Анализа таблицу.
Более полная статистика Дисперсионный Анализ доступна в anova1
, anova2
, и anovan
функций.
Указания и ограничения по применению:
Эта функция поддерживает объекты модели, оснащенные входными параметрами массива GPU.
Для получения дополнительной информации смотрите Запуск функций MATLAB на графическом процессоре (Parallel Computing Toolbox).
coefCI
| coefTest
| CompactLinearModel
| dwtest
| LinearModel
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.