ANOVA и линейная регрессия эквивалентны, когда две модели проверяют одни и те же гипотезы и используют идентичное кодирование. Модели различаются по своей основной цели: ANOVA в основном касается представления различий между средними категориями в данных, в то время как линейная регрессия в основном касается оценки среднего отклика выборки и соответствующей .σ2
Несколько афористически можно описать ANOVA как регрессию с фиктивными переменными. Мы можем легко видеть, что это имеет место в простой регрессии с категориальными переменными. Категориальная переменная будет закодирована как индикаторная матрица (матрица в 0/1
зависимости от того, является ли субъект частью данной группы или нет), а затем будет использована непосредственно для решения линейной системы, описываемой линейной регрессией. Давайте посмотрим на пример с 5 группами. В качестве аргумента я буду предполагать, что среднее значение group1
равно 1, среднее group2
равно 2, ... и среднее group5
равно 5. (Я использую MATLAB, но то же самое эквивалентно в R.)
rng(123); % Fix the seed
X = randi(5,100,1); % Generate 100 random integer U[1,5]
Y = X + randn(100,1); % Generate my response sample
Xcat = categorical(X); % Treat the integers are categories
% One-way ANOVA
[anovaPval,anovatab,stats] = anova1(Y,Xcat);
% Linear regression
fitObj = fitlm(Xcat,Y);
% Get the group means from the ANOVA
ANOVAgroupMeans = stats.means
% ANOVAgroupMeans =
% 1.0953 1.8421 2.7350 4.2321 5.0517
% Get the beta coefficients from the linear regression
LRbetas = [fitObj.Coefficients.Estimate']
% LRbetas =
% 1.0953 0.7468 1.6398 3.1368 3.9565
% Rescale the betas according the intercept
scaledLRbetas = [LRbetas(1) LRbetas(1)+LRbetas(2:5)]
% scaledLRbetas =
% 1.0953 1.8421 2.7350 4.2321 5.0517
% Check if the two results are numerically equivalent
abs(max( scaledLRbetas - ANOVAgroupMeans))
% ans =
% 2.6645e-15
Как видно из этого сценария, результаты точно такие же. Минутная числовая разница обусловлена тем, что дизайн не является идеально сбалансированным, а также процедурой оценки подложки; ANOVA накапливает числовые ошибки более агрессивно. Для этого мы подходим к перехвату LRbetas(1)
; мы могли бы соответствовать модели без перехватов, но это не было бы «стандартной» линейной регрессией. (В этом случае результаты будут еще ближе к ANOVA.)
В -статистики (соотношение средств) в случае ANOVA и в случае линейной регрессии будет также быть тем же самым для приведенного выше примера:F
abs( fitObj.anova.F(1) - anovatab{2,5} )
% ans =
% 2.9132e-13
Это связано с тем, что процедуры проверяют одну и ту же гипотезу, но с разными формулировками: ANOVA качественно проверит, достаточно ли « соотношение достаточно, чтобы предположить, что никакая группировка неправдоподобна », а линейная регрессия качественно проверит, достаточно ли это соотношение, чтобы предложить только перехват модель возможно неадекватна ".
(Это несколько свободная интерпретация « возможности увидеть значение, равное или большее, чем значение, наблюдаемое при нулевой гипотезе », и это не подразумевается как определение из учебника.)
Возвращаясь к заключительной части вашего вопроса о том, что « ANOVA ничего не говорит (говорит вам) о коэффициентах линейной модели (при условии, что средние значения не равны »), я надеюсь, что теперь вы можете видеть, что ANOVA, в случае, если ваш дизайн прост / сбалансирован , говорит вам все, что линейная модель будет. Доверительные интервалы для групповых значений будут такими же, как и для вашейβи т. д. Очевидно, что когда кто-то начинает добавлять несколько ковариат в своей регрессионной модели, простой односторонний ANOVA не имеет прямой эквивалентности. В этом случае можно дополнить информацию, используемую для расчета среднего отклика линейной регрессии, информацией, которая не доступна напрямую для одностороннего ANOVA. Я считаю, что можно еще раз выразить вещи в терминах ANOVA, но это в основном академическое упражнение.
Интересным документом по этому вопросу является документ Гельмана 2005 года под названием: « Анализ отклонений - почему он важнее, чем когда-либо» . Некоторые важные вопросы подняты; Я не полностью поддерживаю эту статью (я думаю, что лично я гораздо больше согласен с мнением МакКаллаха), но это может быть конструктивное прочтение.
И последнее замечание: сюжет утолщается, когда у вас смешанные модели эффектов . Там у вас есть различные понятия о том, что может считаться неудобством или реальной информацией относительно группировки ваших данных. Эти проблемы выходят за рамки этого вопроса, но я думаю, что они достойны одобрения.
Позвольте мне немного покраснеть идею о том, что OLS с категориальными ( фиктивно-кодированными ) регрессорами эквивалентна факторам в ANOVA. В обоих случаях существуют уровни (или группы в случае ANOVA).
При регрессии МНК чаще всего в регрессорах также присутствуют непрерывные переменные. Они логически изменяют отношение в модели соответствия между категориальными переменными и зависимой переменной (DC). Но не настолько, чтобы сделать параллель неузнаваемой.
Основываясь на
mtcars
наборе данных, мы можем сначала визуализировать модельlm(mpg ~ wt + as.factor(cyl), data = mtcars)
как наклон, определяемый непрерывной переменнойwt
(весом), и различные перехваты, проецирующие влияние категориальной переменнойcylinder
(четыре, шесть или восемь цилиндров). Именно эта последняя часть образует параллель с односторонним ANOVA.Давайте посмотрим на это графически на вспомогательном графике справа (три вспомогательных графика слева включены для параллельного сравнения с моделью ANOVA, обсуждавшейся сразу после этого):
Каждый двигатель цилиндра имеет цветовую кодировку, а расстояние между подобранными линиями с различными точками пересечения и облаком данных является эквивалентом внутригрупповых изменений в ANOVA. Обратите внимание, что перехваты в модели OLS с непрерывной переменной (
weight
) не являются математически такими же, как значения различных внутригрупповых средних в ANOVA, из-за эффектаweight
и различных матриц модели (см. Ниже): среднее значениеmpg
для 4-цилиндровые машины, например,mean(mtcars$mpg[mtcars$cyl==4]) #[1] 26.66364
, в то время как МНК «базовой линия» перехват (отражающий по соглашениюcyl==4
( от низкого к высоким цифрам упорядочения в R)) заметно отличаются:summary(fit)$coef[1] #[1] 33.99079
. Наклон линий - это коэффициент для непрерывной переменнойweight
.Если вы попытаетесь подавить эффект
weight
путем умственного выпрямления этих линий и возврата их к горизонтальной линии, вы получите график ANOVA моделиaov(mtcars$mpg ~ as.factor(mtcars$cyl))
на трех вспомогательных участках слева.weight
Регрессор теперь вне, но отношения от точек к различным перехватывает грубо сохраняется - мы просто вращается против часовой стрелки и разводя ранее перекрывающихся участков для каждого различного уровня (опять же , только в качестве визуального устройства «видеть» связь, а не как математическое равенство, так как мы сравниваем две разные модели!).Каждый уровень в коэффициенте20 x
cylinder
является отдельным, а вертикальные линии представляют остатки или ошибки внутри группы: расстояние от каждой точки в облаке и среднее значение для каждого уровня (горизонтальная линия с цветовой кодировкой). Цветовой градиент дает нам представление о том, насколько значимы уровни при проверке модели: чем больше кластеризованы точки данных вокруг их групповых значений, тем более вероятно, что модель ANOVA будет статистически значимой. Горизонтальная черная линия около на всех графиках является средним для всех факторов. Числа в оси являются просто номером / идентификатором-заполнителем для каждой точки на каждом уровне и не имеют никакой другой цели, кроме как разделять точки вдоль горизонтальной линии, чтобы обеспечить отображение графика, отличного от коробчатых.И именно через сумму этих вертикальных сегментов мы можем вручную вычислить невязки:
Результат:
SumSq = 301.2626
аTSS - SumSq = 824.7846
. По сравнению с:Точно такой же результат, как и при тестировании с помощью ANOVA линейной модели с использованием только категориального
cylinder
регрессора:Таким образом, мы видим, что остатки - часть общей дисперсии, не объясняемой моделью, - а также дисперсия одинаковы, независимо от того, вызываете ли вы OLS типа
lm(DV ~ factors)
или ANOVA (aov(DV ~ factors)
): когда мы удаляем Модель непрерывных переменных мы в конечном итоге с идентичной системой. Точно так же, когда мы оцениваем модели глобально или как совокупный ANOVA (не уровень за уровнем), мы, естественно, получаем одно и то же значение pF-statistic: 39.7 on 2 and 29 DF, p-value: 4.979e-09
.Это не означает, что тестирование отдельных уровней даст одинаковые p-значения. В случае OLS мы можем вызвать
summary(fit)
и получить:Это невозможно в ANOVA, которая является скорее сводным тестом. Чтобы получить эти типы оценок значения, нам нужно выполнить тест достоверной разницы Tukey Honest, который попытается уменьшить вероятность ошибки типа I в результате выполнения нескольких парных сравнений (следовательно, " "), что приведет к совершенно другой вывод:p
p adjusted
В конечном счете, нет ничего более обнадеживающего, чем взглянуть на двигатель под капотом, который является не чем иным, как матрицами моделей и проекциями в пространстве колонн. На самом деле это довольно просто в случае ANOVA:
Это было бы односторонний ANOVA модель матрицы с тремя уровнями (напримерyij=μi+ϵij μi j i yij
cyl 4
,cyl 6
,cyl 8
), суммированы , где является средним на каждом уровне или группы: когда добавляется ошибка или остаток для наблюдения группы или уровня , мы получаем фактическое наблюдение DV .С другой стороны, модельная матрица для регрессии OLS:
Это имеет вид с одним и двумя наклонами ( и ) каждый для различные непрерывные переменные, скажем, и .yi=β0+β1xi1+β2xi2+ϵi β0 β1 β2
weight
displacement
Теперь уловка состоит в том, чтобы увидеть, как мы можем создавать различные перехваты, как в первоначальном примере,β0 β1 1 1 1 находится в матрице модели ANOVA которая выбирает только примеры с 4 цилиндрами. Перехват будет смещен посредством фиктивного кодирования, чтобы объяснить эффект и следующим образом:(1),
lm(mpg ~ wt + as.factor(cyl), data = mtcars)
- поэтому давайте избавимся от второго наклона и придерживаемся исходной единственной непрерывной переменнойweight
(другими словами, один столбец, кроме столбца единиц матрица модели, отсекаемый отрезок и наклон для , ). Столбец по умолчанию будет соответствовать перехвату. Опять же, его значение не идентично среднему значению ANOVA для группы , наблюдение, которое не должно удивлять, сравнивая столбец в матрице модели OLS (ниже) с первым столбцомweight
cyl 4
cyl 4
cyl 6
cyl 8
Теперь, когда третий столбец равен мы будем систематически на указывает на то, что, как и в случае с «базовой линии» перехвата в модели МНК не быть идентична группе среднего 4-цилиндровых автомобилей, но отражает его, различия между уровнями в модели МНК не являются математически межгрупповые различия в значении:1 μ~2. ⋅~
Аналогичным образом, когда четвертый столбец равен , фиксированное значение будет добавлено к перехвату. Следовательно, матричное уравнение будет . Следовательно, переход с этой модели на модель ANOVA - это всего лишь вопрос избавления от непрерывных переменных и понимания того, что перехват по умолчанию в OLS отражает первый уровень в ANOVA.1 μ~3 yi=β0+β1xi+μ~i+ϵi
источник
Антони Пареллада и usεr11852 дали очень хороший ответ. Я рассмотрю ваш вопрос для перспективы кодирования с
R
.На самом деле, мы можем
aov
работатьR
так же, как иlm
. Вот несколько примеров.Как видите, мы можем получить коэффициент не только из модели ANOVA, но и использовать его для прогнозирования, как линейную модель.
Если мы проверим файл справки для
aov
функции, он говоритисточник
Если мы возьмем все записи данных и расположим их в одном столбце Y, а остальные столбцы будут переменными-индикаторами 1 {i-ые данные - это элемент j-го столбца в исходной компоновке anova}, то с помощью простой линейной регрессии Y на В любом другом столбце (скажем, в столбце B) вы должны получить те же статистические данные теста DF, SS, MS и F, что и в задаче ANOVA.
Таким образом, ANOVA может рассматриваться как линейная регрессия путем записи данных с помощью двоичных переменных. Также обратите внимание, что коэффициент регрессии, скажем, для регрессии Y на B должен быть таким же, как среднее значение. столбца B, рассчитывается с использованием исходных данных.
источник