ANOVA i regresja liniowa są równoważne, gdy dwa modele testują te same hipotezy i stosują identyczne kodowanie. Modele różnią się podstawowym celem: ANOVA zajmuje się przede wszystkim prezentowaniem w danych różnic między średnimi kategorii, podczas gdy regresja liniowa dotyczy głównie oszacowania średniej odpowiedzi próbki i związanego z nią .σ2)
Nieco aforyzmicznie można opisać ANOVA jako regresję ze zmiennymi fikcyjnymi. Łatwo zauważyć, że dzieje się tak w prostej regresji ze zmiennymi kategorialnymi. Zmienna kategoryczna zostanie zakodowana jako matryca wskaźnikowa (matryca 0/1
zależna od tego, czy pacjent jest częścią danej grupy, czy nie), a następnie zastosowana bezpośrednio do rozwiązania układu liniowego opisanego regresją liniową. Zobaczmy przykład z 5 grupami. Dla celów argumentu przyjmuję, że średnia group1
równa 1, średnia group2
równa 2, ... i średnia group5
równa 5. (Używam MATLAB, ale dokładnie to samo jest równoważne w 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
Jak widać w tym scenariuszu, wyniki były dokładnie takie same. Drobna różnica liczbowa wynika z faktu, że projekt nie jest idealnie wyważony, a także z procedury szacowania podkładu; ANOVA kumuluje błędy numeryczne nieco bardziej agresywnie. W tym względzie pasujemy do punktu przecięcia LRbetas(1)
; moglibyśmy dopasować model bez przechwytywania, ale nie byłby to „standardowa” regresja liniowa. (W takim przypadku wyniki byłyby jeszcze bliższe ANOVA.)
fa
abs( fitObj.anova.F(1) - anovatab{2,5} )
% ans =
% 2.9132e-13
Wynika to z tego, że procedury sprawdzają tę samą hipotezę, ale używając różnych sformułowań: ANOVA sprawdzi jakościowo, czy „ stosunek jest wystarczająco wysoki, aby zasugerować, że żadne grupowanie jest niewiarygodne ”, podczas gdy regresja liniowa sprawdzi jakościowo, czy „ stosunek jest wystarczająco wysoki, aby sugerować jedynie przechwycenie model jest prawdopodobnie nieodpowiedni ”.
(Jest to dość dowolna interpretacja „ możliwości zobaczenia wartości równej lub większej niż ta obserwowana w ramach hipotezy zerowej ” i nie jest to definicja podręcznika).
β, itd. Oczywiście, gdy zaczyna się dodawanie wielu zmiennych towarzyszących w jego modelu regresji, prosta jednokierunkowa ANOVA nie ma bezpośredniej równoważności. W takim przypadku powiększa się informacje wykorzystane do obliczenia średniej odpowiedzi regresji liniowej o informacje, które nie są bezpośrednio dostępne dla jednoczynnikowej ANOVA. Wierzę, że można ponownie wyrazić rzeczy w kategoriach ANOVA, ale jest to w większości ćwiczenie akademickie.
Interesującym artykułem na ten temat jest artykuł Gelmana z 2005 r. Zatytułowany: Analiza wariancji - dlaczego jest ważniejszy niż kiedykolwiek . Podniesiono kilka ważnych kwestii; Nie w pełni popieram ten artykuł (myślę, że osobiście dużo bardziej zgadzam się z poglądem McCullacha), ale może to być konstruktywna lektura.
Na koniec: fabuła gęstnieje, gdy masz mieszane modele efektów . Istnieją różne koncepcje dotyczące tego, co można uznać za uciążliwe lub aktualne informacje dotyczące grupowania danych. Te kwestie są poza zakresem tego pytania, ale myślę, że warto je skinąć.
Pozwól, że dodam trochę koloru do idei, że OLS z kategorycznymi ( sztucznie kodowanymi ) regresorami jest równoważny czynnikom z ANOVA. W obu przypadkach istnieją poziomy (lub grupy w przypadku ANOVA).
W regresji OLS najczęściej regresory mają również ciągłe zmienne. Logicznie modyfikują one związek w modelu dopasowania między zmiennymi kategorialnymi a zmienną zależną (DC). Ale nie do tego stopnia, że równolegle nie można go rozpoznać.
Na podstawie
mtcars
zestawu danych możemy najpierw wizualizować modellm(mpg ~ wt + as.factor(cyl), data = mtcars)
jako nachylenie określone przez zmienną ciągłąwt
(wagę), a różne punkty przecięcia rzutują efekt zmiennej jakościowejcylinder
(cztery, sześć lub osiem cylindrów). Jest to ostatnia część, która tworzy równoległość z jednokierunkową ANOVA.Zobaczmy to graficznie na wykresie po prawej stronie (trzy wykresy po lewej stronie są uwzględnione w celu porównania bocznego z modelem ANOVA omówionym natychmiast potem):
Każdy silnik cylindrowy jest oznaczony kolorami, a odległość między dopasowanymi liniami z różnymi punktami przechwytywania a chmurą danych jest równoważna wariacji wewnątrzgrupowej w analizie ANOVA. Zauważ, że przecięcia w modelu OLS ze zmienną ciągłą (
weight
) nie są matematycznie takie same, jak wartość różnych średnich wewnątrzgrupowych w ANOVA, ze względu na wpływweight
i różne macierze modelu (patrz poniżej): średniampg
dla samochodów 4-cylinder, jest na przykładmean(mtcars$mpg[mtcars$cyl==4]) #[1] 26.66364
, podczas gdy OLS „bazowy” osią (odzwierciedlające umowniecyl==4
(od najniższego do najwyższego cyframi porządkuje R)) jest znacząco odmienne:summary(fit)$coef[1] #[1] 33.99079
. Nachylenie linii jest współczynnikiem zmiennej ciągłejweight
.Jeśli spróbujesz stłumić efekt
weight
mentalnego prostowania tych linii i przywrócenia ich do linii poziomej, skończysz na wykresie ANOVA modeluaov(mtcars$mpg ~ as.factor(mtcars$cyl))
na trzech wykresach podrzędnych po lewej stronie.weight
REGRESSOR jest obecnie na zewnątrz, ale związek z punktami do różnych przechwytuje jest grubsza zachowane - jesteśmy po prostu obraca się w kierunku przeciwnym do ruchu wskazówek zegara i rozkładanie wcześniej nakładających się wykresy dla każdego innego poziomu (ponownie, tylko jako urządzenie wizualnej „zobaczyć” związek; nie jako matematyczna równość, ponieważ porównujemy dwa różne modele!).cylinder
I poprzez sumę tych pionowych segmentów możemy ręcznie obliczyć resztki:
Wynik:
SumSq = 301.2626
iTSS - SumSq = 824.7846
. Porównać do:Dokładnie taki sam wynik jak testowanie za pomocą ANOVA modelu liniowego z jedynie kategorialnym
cylinder
regresorem:Widzimy zatem, że reszty - część całkowitej wariancji nie wyjaśniona przez model - a także wariancja są takie same, niezależnie od tego, czy wywołasz OLS typu
lm(DV ~ factors)
, czy ANOVA (aov(DV ~ factors)
): kiedy usuwamy model zmiennych ciągłych kończy się na tym samym systemie. Podobnie, gdy oceniamy modele globalnie lub jako zbiorczą ANOVA (nie poziom po poziomie), naturalnie otrzymujemy tę samą wartość pF-statistic: 39.7 on 2 and 29 DF, p-value: 4.979e-09
.Nie oznacza to, że testowanie poszczególnych poziomów da identyczne wartości p. W przypadku OLS możemy wywołać
summary(fit)
i uzyskać:p adjusted
Ostatecznie nic nie jest bardziej uspokajające niż zerknięcie na silnik pod maską, który jest niczym innym jak matrycami modelu i rzutami w przestrzeni kolumny. Są to w rzeczywistości dość proste w przypadku ANOVA:
cyl 4
cyl 6
cyl 8
Z drugiej strony matryca modelu dla regresji OLS to:
weight
displacement
lm(mpg ~ wt + as.factor(cyl), data = mtcars)
weight
weight
cyl 4
cyl 4
cyl 6
cyl 8
źródło
Antoni Parellada i usεr11852 mieli bardzo dobrą odpowiedź. Odpowiem na twoje pytanie dotyczące kodowania perspektywy
R
.W rzeczywistości możemy
aov
działać wR
może być używany tak samo jaklm
. Oto kilka przykładów.Jak widać, nie tylko możemy uzyskać współczynnik z modelu ANOVA, ale także możemy go wykorzystać do przewidywania, podobnie jak model liniowy.
Jeśli sprawdzimy plik pomocy pod kątem
aov
funkcji, wyświetli się komunikatźródło
Jeśli weźmiemy wszystkie wpisy danych i ułożymy je w jedną kolumnę Y, a pozostałe kolumny będą zmiennymi wskaźnikowymi 1 {i dane są elementem j-tej kolumny w oryginalnym układzie anova}, wówczas przyjmując prostą regresję liniową Y na w dowolnej innej kolumnie (powiedzmy kolumnie B), powinieneś uzyskać taką samą statystykę testową DF, SS, MS i F, jak w twoim problemie ANOVA.
Zatem ANOVA można „traktować jak” regresję liniową, zapisując dane ze zmiennymi binarnymi. Zauważ też, że współczynnik regresji dla, powiedzmy, regresji Y na B powinien być taki sam jak średnia. kolumny B, obliczonej na podstawie oryginalnych danych.
źródło