Анализ дисперсии для модели линейной регрессии
Создание таблицы 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, соответствует
,
где 76, = 82 - переменные индикатора, значение которых равно единице, если значениеModel_Year равно 76 и 82 соответственно. Model_Year переменная включает три различных значения, которые можно проверить с помощью unique функция.
unique(Model_Year)
ans = 3×1
70
76
82
fitlm выбирает наименьшее значение в Model_Year в качестве опорного уровня ('70') и создаёт две индикаторные переменные 76 = 82. Модель включает только две индикаторные переменные, поскольку проектная матрица становится дефицитной, если модель включает три индикаторные переменные (по одной для каждого уровня) и член перехвата.
Модель с полными индикаторными переменными
Можно интерпретировать формулу модели mdl как модель, которая имеет три индикаторные переменные без члена перехвата:
β0 + β2) Ιx2=82+ϵ.
Кроме того, можно создать модель с тремя индикаторными переменными без элемента пересечения, создав вручную индикаторные переменные и указав формулу модели.
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 для каждой переменной в модели, за исключением члена константы.
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 - тип ANOVA'component' (по умолчанию) | 'summary'тип ANOVA, указанный как одно из следующих значений:
'component' — anova возвращает таблицу tbl со статистикой ANOVA для каждой переменной в модели, за исключением постоянного члена.
'summary' — anova возвращает таблицу tbl с суммарной статистикой ANOVA для сгруппированных переменных и модели в целом.
Для получения более подробной информации см. 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 - Сводная таблица статистики ANOVAСводная таблица статистики ANOVA, возвращенная как таблица.
Содержание tbl зависит от типа ANOVA, указанного в anovatype.
Если anovatype является 'component', то tbl содержит статистику ANOVA для каждой переменной в модели, за исключением члена константы (перехвата). Таблица содержит следующие столбцы для каждой переменной:
| Колонка | Описание |
|---|---|
SumSq | Сумма квадратов, объясняемая термином, вычисляемым в зависимости от |
DF | Степени свободы
|
MeanSq | Средний квадрат, определяемый
|
F | F - статистическое значение для проверки нулевой гипотезы о том, что соответствующий коэффициент равен нулю, вычисленное по Когда нулевая гипотеза верна, F-статистика следует за F-распределением. Числительными степенями свободы являются |
pValue | p-значение F-статистического значения |
Пример см. в разделе Таблица ANOVA компонента.
Если anovatype является 'summary', то tbl содержит сводную статистику сгруппированных терминов для каждой строки. Таблица содержит те же столбцы, что и 'component' и эти строки:
| Ряд | Описание |
|---|---|
Total | Общая статистика
|
Model | Статистика по модели в целом
Если |
Linear | Статистика для линейных терминов
|
Nonlinear | Статистика для нелинейных терминов
|
Residual | Статистика по остаткам
Если |
Lack of fit | Недостаточная статистика
|
Pure error | Статистика чистой ошибки
|
Пример см. в разделе Сводная таблица ANOVA.
Более полная статистика ANOVA доступна в anova1, anova2, и anovan функции.
Примечания и ограничения по использованию:
Эта функция поддерживает объекты модели, оснащенные входными аргументами графического процессора.
Дополнительные сведения см. в разделе Запуск функций MATLAB на графическом процессоре (панель инструментов параллельных вычислений).
coefCI | coefTest | CompactLinearModel | dwtest | LinearModel
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.