Дисперсионный анализ для модели линейной регрессии
tbl = anova(mdl)tbl = anova(mdl,anovatype)tbl = anova(mdl,'component',sstype) возвращает статистику АНОВОЙ заданного типа tbl = anova(mdl,anovatype)anovatype. Например, задайте anovatype как 'component' (значение по умолчанию), чтобы возвратить таблицу с компонентом статистика АНОВОЙ или задать anovatype как 'summary', чтобы возвратить таблицу со сводными данными статистика АНОВОЙ.
Составьте компонент таблица АНОВОЙ из модели линейной регрессии набора данных 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
Составьте таблицу АНОВОЙ модели.
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%-м уровне значения, учитывая другие члены в модели.
Составьте сводные данные таблица АНОВОЙ из модели линейной регрессии набора данных 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
Составьте сводные данные таблица АНОВОЙ модели.
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 в Компоненте Таблица АНОВОЙ.
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, соответственно. Переменная 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
Выберите Reference Level in Model
Можно выбрать контрольный уровень путем изменения порядка категорий в категориальной переменной. Во-первых, создайте категориальную переменную Year.
Year = categorical(Model_Year);
Проверяйте порядок категорий при помощи функции categories.
categories(Year)
ans = 3x1 cell array
{'70'}
{'76'}
{'82'}
Если вы используете Year в качестве переменной прогноза, то fitlm выбирает первую категорию '70' в качестве контрольного уровня. Переупорядочьте Year при помощи функции reordercats.
Year_reordered = reordercats(Year,{'76','70','82'});
categories(Year_reordered)ans = 3x1 cell array
{'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(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 — Тип АНОВОЙ'component' (значение по умолчанию) | 'summary'Тип АНОВОЙ, заданный как одно из этих значений:
'component' — anova возвращает таблицу tbl со статистикой АНОВОЙ для каждой переменной в модели кроме постоянного термина.
сводные данные 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 (A) | R (B) – R (A, B) | R (B, AB) – R (A, B, AB) |
B | R (A) – R (A, B) | R (A) – 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 Таблица статистики сводных данных АНОВОЙТаблица статистики сводных данных АНОВОЙ, возвращенная как таблица.
Содержимое tbl зависит от типа АНОВОЙ, заданного в anovatype.
Если anovatype является 'component', то tbl содержит статистику АНОВОЙ для каждой переменной в модели кроме константы (прерывание) термин. Таблица включает эти столбцы для каждой переменной:
| Столбец | Описание |
|---|---|
SumSq | Сумма квадратов объяснена термином, вычисленным в зависимости от |
DF | Степени свободы
|
MeanSq | Среднее квадратичное, заданное
|
F | F- значение, чтобы протестировать нулевую гипотезу, что соответствующий коэффициент является нулем, вычисленным Когда нулевая гипотеза верна, F - статистическая величина следует за F - распределение. Степени свободы числителя являются значением |
pValue | p - значение F - статистическое значение |
Для примера смотрите Компонент Таблица АНОВОЙ.
Если anovatype является 'summary', то tbl содержит итоговую статистику сгруппированных условий для каждой строки. Таблица включает те же столбцы как 'component' и эти строки:
| Строка | Описание |
|---|---|
Total | Общая статистика
|
Model | Статистика для модели в целом
Если |
Linear | Статистика для линейных членов
|
Nonlinear | Статистика для нелинейных условий
|
Residual | Статистика для невязок
Если |
Lack of fit | Статистика отсутствия подгонки
|
Pure error | Статистика для чистой ошибки
|
Для примера см. Сводные данные Таблица АНОВОЙ.
Больше полных статистических данных АНОВОЙ доступно в anova1, anova2 и функциях anovan.
CompactLinearModel | LinearModel | coefCI | coefTest | dwtest
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.