Дисперсионный анализ для модели линейной регрессии
возвращает статистику Дисперсионного Анализа заданного типа tbl
= anova(mdl
,anovatype
)anovatype
. Например, задайте anovatype
как 'component'
(значение по умолчанию), чтобы возвратить таблицу со статистикой Дисперсионного Анализа компонента или задать 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
назовите в Компоненте Таблицу Дисперсионного Анализа.
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
{'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
Таблица ANOVA компонента включает p-значение Model_Year
переменная, которая меньше, чем p-значения переменных индикатора.
mdl
— Объект модели линейной регрессииLinearModel
возразите | CompactLinearModel
объектОбъект модели линейной регрессии в виде LinearModel
объект, созданный при помощи fitlm
или stepwiselm
, или CompactLinearModel
объект создается при помощи compact
.
anovatype
— Тип Дисперсионного Анализа'component'
(значение по умолчанию) | 'summary'
Тип Дисперсионного Анализа в виде одного из этих значений:
'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 (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
функции.
Указания и ограничения по применению:
Эта функция поддерживает объекты модели, снабженные входными параметрами графического процессора массивов.
Для получения дополнительной информации смотрите функции MATLAB Запуска на графическом процессоре (Parallel Computing Toolbox).
CompactLinearModel
| LinearModel
| coefCI
| coefTest
| dwtest
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.