anova

Дисперсионный анализ для модели линейной регрессии

Описание

пример

tbl = anova(mdl) возвращает таблицу со статистикой Дисперсионного Анализа компонента.

пример

tbl = anova(mdl,anovatype) возвращает статистику Дисперсионного Анализа заданного типа anovatype. Например, задайте anovatype как 'component'(значение по умолчанию), чтобы возвратить таблицу со статистикой Дисперсионного Анализа компонента или задать anovatype как 'summary' возвратить таблицу с итоговой статистикой Дисперсионного Анализа.

tbl = anova(mdl,'component',sstype) вычисляет статистику Дисперсионного Анализа компонента с помощью заданного типа суммы квадратов.

Примеры

свернуть все

Составьте таблицу 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-статистическая-величина следует F(1,96)- распределение.

  • pValuep-значение значения 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, MeanSqF, и 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, соответствует

MPG=β0+β1ΙYear=76+β2ΙYear=82+ϵ,

где ΙYear=76 и ΙYear=82 переменные индикатора, значение которых является тем если значение Model_Year 76 и 82, соответственно. Model_Year переменная включает три отличных значения, которые можно проверять при помощи unique функция.

unique(Model_Year)
ans = 3×1

    70
    76
    82

fitlm выбирает наименьшее значение в Model_Year как контрольный уровень ('70') и создает две переменные индикатора ΙYear=76 и ΙYear=82. Модель включает только две переменные индикатора, потому что матрица проекта становится неполным рангом, если модель включает три переменные индикатора (один для каждого уровня) и термин точки пересечения.

Модель с полными переменными индикатора

Можно интерпретировать формулу модели mdl как модель, которая имеет три переменные индикатора без термина точки пересечения:

y=β0Ιx1=70+(β0+β1)Ιx1=76+(β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

Выберите 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' как контрольный уровень и включает две переменные индикатора ΙYear=70 и ΙYear=82.

Оцените категориальный предиктор

Отображение модели 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-значения переменных индикатора.

Входные параметры

свернуть все

Объект модели линейной регрессии в виде LinearModel объект, созданный при помощи fitlm или stepwiselm, или CompactLinearModel объект создается при помощи compact.

Тип Дисперсионного Анализа в виде одного из этих значений:

  • 'component'anova возвращает таблицу tbl со статистикой Дисперсионного Анализа для каждой переменной в модели кроме постоянного термина.

  • 'summary'anova возвращает таблицу tbl с итоговой статистикой Дисперсионного Анализа для сгруппированных переменных и модели в целом.

Для получения дополнительной информации смотрите tbl описание выходного аргумента.

Тип суммы квадратов для каждого термина в виде одного из значений в этой таблице.

ЗначениеОписание
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 зависьте от типа Дисперсионного Анализа, заданного в anovatype.

  • Если anovatype 'component', затем tbl содержит статистику Дисперсионного Анализа для каждой переменной в модели кроме константы (точка пересечения) термин. Таблица включает эти столбцы для каждой переменной:

    СтолбецОписание
    SumSq

    Сумма квадратов объяснена термином, вычисленным в зависимости от sstype

    DF

    Степени свободы

    • DF из числовой переменной 1.

    • DF из категориальной переменной количество переменных индикатора, созданных для категории (количество категорий – 1). Обратите внимание на то, что tbl содержит одну строку для каждой категориальной переменной вместо одной строки для каждой переменной индикатора как в отображении модели. Использование anova протестировать категориальную переменную как группу переменных индикатора.

    • DF из остаточного члена n – p, где n является количеством наблюдений, и p является количеством коэффициентов в модели.

    MeanSq

    Среднее квадратичное, заданное MeanSq = SumSq/DF

    MeanSq поскольку остаточный член является среднеквадратической ошибкой (MSE).

    F

    F- значение, чтобы протестировать нулевую гипотезу, что соответствующий коэффициент является нулем, вычисленным F = MeanSq/MSE

    Когда нулевая гипотеза верна, F - статистическая величина следует за F - распределение. Степенями свободы числителя является DF значением для соответствующего термина и степенями свободы знаменателя является n – p.

    pValue

    p - значение F - статистическое значение

    Для примера смотрите Компонент Таблица Дисперсионного Анализа.

  • Если anovatype 'summary', затем tbl содержит итоговую статистику сгруппированных терминов для каждой строки. Таблица включает те же столбцы как 'component' и эти строки:

    СтрокаОписание
    Total

    Общая статистика

    • SumSq — Полная сумма квадратов, которая является суммой отклонений в квадрате ответа вокруг его среднего значения

    • DF — Сумма степеней свободы Model и Residual

    Model

    Статистика для модели в целом

    • SumSq — Сумма квадратов модели, которая является суммой отклонений в квадрате подходящего значения вокруг среднего значения ответа.

    • F и pValue — Эти значения обеспечивают тест того, соответствует ли модель в целом значительно лучше, чем вырожденная модель, состоящая только из постоянного термина.

    Если mdl включает только линейные члены, затем anova не анализирует Model в Linear и NonLinear.

    Linear

    Статистика для линейных членов

    • SumSq — Сумма квадратов для линейных членов, которая является различием между суммой квадратов модели и суммой квадратов для нелинейных терминов.

    • F и pValue — Эти значения обеспечивают тест того, соответствует ли модель только с линейными членами лучше, чем вырожденная модель, состоящая только из постоянного термина. anova использует среднеквадратическую ошибку, которая основана на полной модели, чтобы вычислить этот F - значение, таким образом, F - значение, полученное путем отбрасывания нелинейных терминов и повторения теста, различное как значение в этой строке.

    Nonlinear

    Статистика для нелинейных терминов

    • SumSq — Сумма квадратов для нелинейного (высшего порядка или взаимодействие) термины, который является увеличением остаточной суммы квадратов, полученной путем хранения только линейных членов и отбрасывания всех нелинейных терминов.

    • F и pValue — Эти значения обеспечивают тест того, соответствует ли полная модель значительно лучше, чем меньшая модель, состоящая только из линейных членов.

    Residual

    Статистика для остаточных значений

    • SumSq — Остаточная сумма квадратов, которая является суммой значений квадрата остатка

    • MeanSq — Среднеквадратическая ошибка, использованная для расчета F - статистические значения для Model, Linear, и NonLinear

    Если mdl полный LinearModel возразите и выборочные данные содержат репликации (несколько наблюдений, совместно использующих те же значения предиктора), затем anova разлагает остаточную сумму квадратов на сумму квадратов для реплицированных наблюдений (Lack of fit) и остающаяся сумма квадратов (Pure error).

    Lack of fit

    Статистика отсутствия подгонки

    • SumSq — Сумма квадратов из-за отсутствия подгонки, которая является различием между остаточной суммой квадратов и суммой квадратов репликации.

    • F и pValueF - статистическое значение является отношением отсутствия подгонки MeanSq к чистой ошибке MeanSq. Отношение обеспечивает тест смещения путем измерения, больше ли изменение остаточных значений, чем изменение репликаций. Низкий p - значение подразумевает, что добавление дополнительных условий к модели может улучшить подгонку.

    Pure error

    Статистика для чистой ошибки

    • SumSq — Сумма квадратов репликации, полученная путем нахождения наборов точек с идентичными значениями предиктора, вычисления суммы отклонений в квадрате вокруг среднего значения в каждом наборе и объединения вычисленных значений

    • MeanSq — Чистая ошибочная оценка отклонения без моделей ответа

    Для примера см. Сводные данные Таблица Дисперсионного Анализа.

Альтернативная функциональность

Больше полных статистических данных Дисперсионного Анализа доступно в anova1, anova2, и anovan функции.

Расширенные возможности

Представленный в R2012a