W praktyce, w jaki sposób ludzie obsługują ANOVA, gdy dane nie spełniają założeń?


19

To nie jest pytanie ściśle statystyczne - mogę przeczytać wszystkie podręczniki dotyczące założeń ANOVA - Staram się dowiedzieć, jak prawdziwi pracujący analitycy radzą sobie z danymi, które nie do końca spełniają założenia. Przeszedłem wiele pytań na tej stronie w poszukiwaniu odpowiedzi i ciągle znajduję posty o tym, kiedy nie używać ANOVA (w abstrakcyjnym, wyidealizowanym kontekście matematycznym) lub jak zrobić niektóre z rzeczy, które opisuję poniżej w R. Naprawdę próbuję dowiedzieć się, jakie decyzje podejmują ludzie i dlaczego.

Analizuję zgrupowane dane z drzew (rzeczywiste drzewa, a nie drzewa statystyczne) w czterech grupach. Mam dane dla około 35 atrybutów dla każdego drzewa i przeglądam każdy atrybut, aby ustalić, czy grupy różnią się znacznie w tym atrybucie. Jednak w kilku przypadkach założenia ANOVA są nieco naruszone, ponieważ wariancje nie są równe (zgodnie z testem Levene'a, przy użyciu alfa = 0,05).

Według mnie, moimi opcjami są: 1. Moc przekształcić dane i zobaczyć, czy to zmieni wartość p Leva. 2. Użyj testu nieparametrycznego, takiego jak Wilcoxon (jeśli tak, to który?). 3. Wykonaj jakąś korektę wyniku ANOVA, na przykład Bonferroni (tak naprawdę nie jestem pewien, czy coś takiego istnieje?). Wypróbowałem pierwsze dwie opcje i uzyskałem nieco inne wyniki - w niektórych przypadkach jedno podejście jest znaczące, a drugie nie. Boję się wpaść w pułapkę połowową o wartości p i szukam porady, która pomoże mi uzasadnić, które podejście zastosować.

Przeczytałem również kilka rzeczy, które sugerują, że heteroscedastyczność nie jest tak naprawdę wielkim problemem dla ANOVA, chyba że średnie i wariancje są skorelowane (tj. Oba rosną razem), więc może mogę po prostu zignorować wynik Levene'a, chyba że zobaczę taki wzór? Jeśli tak, czy istnieje na to test?

Na koniec powinienem dodać, że robię tę analizę w celu publikacji w czasopiśmie recenzowanym, więc każde podejście, na które się zdecyduję, musi przejść z recenzentami. Jeśli ktoś może podać linki do podobnych, opublikowanych przykładów, byłoby to fantastyczne.


3
Niezależnie od tego, czy używasz R, czy nie , skorzystaj z mojej odpowiedzi tutaj: alternatywy dla jednostronnej ANOVA dla danych heteroscedastycznych , która omawia niektóre z tych problemów.
gung - Przywróć Monikę

Odpowiedzi:


18

Próbuję dowiedzieć się, jak faktyczni pracujący analitycy radzą sobie z danymi, które nie do końca spełniają założenia.

Zależy to od moich potrzeb, które założenia są naruszane, w jaki sposób, jak bardzo, jak bardzo wpływa to na wnioskowanie, a czasem na wielkość próby.

Analizuję zgrupowane dane z drzew w czterech grupach. Mam dane dla około 35 atrybutów dla każdego drzewa i przeglądam każdy atrybut, aby ustalić, czy grupy różnią się znacznie w tym atrybucie. Jednak w kilku przypadkach założenia ANOVA są nieco naruszone, ponieważ wariancje nie są równe (zgodnie z testem Levene'a, przy użyciu alfa = 0,05).

1) Jeśli rozmiary próbek są równe, nie masz większego problemu. ANOVA jest dość (poziomowa) odporna na różne wariancje, jeśli n są równe.

2) testowanie równości wariancji przed podjęciem decyzji, czy założyć, że jest to zalecane przez szereg badań. Jeśli masz jakiekolwiek wątpliwości, że będą one prawie równe, lepiej po prostu założyć, że są nierówne.

Niektóre referencje:

Zimmerman, DW (2004),
„Uwaga na temat wstępnych testów równości wariancji”.
Br. J. Math. Stat. Psychol. , Maj ; 57 (Pt 1): 173–81.
http://www.ncbi.nlm.nih.gov/pubmed/15171807

Henrik podaje tutaj trzy referencje

3) Liczy się rozmiar efektu, a nie to, czy próbka jest wystarczająco duża, aby powiedzieć, że różnią się znacznie. Tak więc w dużych próbkach niewielka różnica wariancji okaże się bardzo istotna w teście Levene'a, ale zasadniczo nie będzie miała żadnego wpływu na jej wpływ. Jeśli próbki są duże, a wielkość efektu - stosunek wariancji lub różnice w wariancjach - są dość bliskie temu, czym powinny być, to wartość p nie ma znaczenia. (Z drugiej strony, w małych próbkach, ładna, duża wartość p ma niewielki komfort. W każdym razie test nie odpowiada na właściwe pytanie.)

Zauważ, że istnieje korekta typu Welch-Satterthwaite do oszacowania resztkowego błędu standardowego i df w ANOVA, tak jak ma to miejsce w testach t dla dwóch próbek.

  1. Użyj testu nieparametrycznego, takiego jak Wilcoxon (jeśli tak, to który?).

Jeśli interesują Cię alternatywy zmiany lokalizacji, nadal zakładasz stały zasięg. Jeśli interesują Cię znacznie bardziej ogólne alternatywy, być może warto to rozważyć; próbka k równoważna testowi Wilcoxona to test Kruskala-Wallisa.

Dokonaj jakiejś korekty wyniku ANOVA

Zobacz moją powyższą propozycję rozważenia Welch-Satterthwaite, to „rodzaj korekty”.

(Alternatywnie możesz rzucić ANOVA jako zestaw par t-testów typu Welcha, w którym to przypadku prawdopodobnie chciałbyś spojrzeć na Bonferroni lub coś podobnego)

Przeczytałem również kilka rzeczy, które sugerują, że heteroscedastyczność nie jest tak naprawdę wielkim problemem dla ANOVA, chyba że średnie i wariancje są skorelowane (tj. Oba rosną razem)

Będziesz musiał zacytować coś takiego. Po przyjrzeniu się wielu sytuacjom z testami t, nie sądzę, żeby to była prawda, więc chciałbym zobaczyć, dlaczego tak uważają; być może sytuacja jest w jakiś sposób ograniczona. Byłoby miło, gdyby tak było, ponieważ dość często uogólnione modele liniowe mogą pomóc w tej sytuacji.

Na koniec powinienem dodać, że robię tę analizę w celu publikacji w czasopiśmie recenzowanym, więc każde podejście, na które się zdecyduję, musi przejść z recenzentami.

Bardzo trudno jest przewidzieć, co może zadowolić recenzentów. Większość z nas nie pracuje z drzewami.


12

W rzeczywistości nie jest bardzo trudno poradzić sobie z heteroscedastycznością w prostych modelach liniowych (np. Jedno- lub dwukierunkowych modelach typu ANOVA).

Solidność ANOVA

Po pierwsze, jak zauważają inni, ANOVA jest niezwykle odporna na odchylenia od założenia równych wariancji, szczególnie jeśli masz w przybliżeniu zbalansowane dane (taka sama liczba obserwacji w każdej grupie). Z drugiej strony, wstępne testy na równe wariancje nie są (chociaż test Levene'a jest znacznie lepszy niż test F powszechnie nauczany w podręcznikach). Jak ujął to George Box:

Wykonanie wstępnego testu wariancji jest raczej jak wypłynięcie w morze łodzią wiosłową, aby dowiedzieć się, czy warunki są wystarczająco spokojne, aby liniowiec mógł opuścić port!

Mimo że ANOVA jest bardzo solidna, ponieważ bardzo łatwo jest wziąć pod uwagę heteroscedyczność, nie ma powodu, aby tego nie robić.

Testy nieparametryczne

Jeśli naprawdę interesują Cię różnice w środkach , testy nieparametryczne (np. Test Kruskala – Wallisa) naprawdę nie mają żadnego zastosowania. Robią badania różnic między grupami, ale robią nie w ogólnych różnic w badanych środków.

Przykładowe dane

Wygenerujmy prosty przykład danych, w których chcielibyśmy użyć ANOVA, ale gdzie założenie równych wariancji nie jest prawdziwe.

set.seed(1232)
pop = data.frame(group=c("A","B","C"),
                 mean=c(1,2,5),
                 sd=c(1,3,4))
d = do.call(rbind, rep(list(pop),13))
d$x = rnorm(nrow(d), d$mean, d$sd)

Mamy trzy grupy, z (wyraźnymi) różnicami zarówno pod względem średnich, jak i wariancji:

stripchart(x ~ group, data=d)

Stripchart pokazujący przykładowe dane.

ANOVA

Nic dziwnego, że normalna ANOVA radzi sobie z tym całkiem dobrze:

> mod.aov = aov(x ~ group, data=d)
> summary(mod.aov)
            Df Sum Sq Mean Sq F value  Pr(>F)    
group        2  199.4   99.69   13.01 5.6e-05 ***
Residuals   36  275.9    7.66                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Które grupy się różnią? Użyjmy metody HSD Tukeya:

> TukeyHSD(mod.aov)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = x ~ group, data = d)

$group
        diff        lwr      upr     p adj
B-A 1.736692 -0.9173128 4.390698 0.2589215
C-A 5.422838  2.7688327 8.076843 0.0000447
C-B 3.686146  1.0321403 6.340151 0.0046867

Przy wartości P wynoszącej 0,26 nie możemy twierdzić żadnej różnicy (w środkach) między grupą A i B. I nawet gdybyśmy nie wzięli pod uwagę, że dokonaliśmy trzech porównań, nie uzyskalibyśmy niskiego P - wartość ( P  = 0,12):

> summary.lm(mod.aov)
[…]
Coefficients:
            Estimate Std. Error t value  Pr(>|t|)    
(Intercept)   0.5098     0.7678   0.664     0.511    
groupB        1.7367     1.0858   1.599     0.118    
groupC        5.4228     1.0858   4.994 0.0000153 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.768 on 36 degrees of freedom

Dlaczego? Opierając się na działce, nie jest całkiem wyraźna różnica. Powodem jest to, że ANOVA zakłada równe wariancje w każdej grupie i szacuje wspólne odchylenie standardowe na 2,77 (przedstawione w summary.lmtabeli jako „resztkowy błąd standardowy” lub można go uzyskać, przyjmując pierwiastek kwadratowy z resztkowego średniego kwadratu (7,66) w tabeli ANOVA).

Ale grupa A ma odchylenie standardowe (populacyjne) wynoszące 1, a to przeszacowanie 2,77 utrudnia (niepotrzebnie) uzyskanie statystycznie istotnych wyników, tj. Mamy test z (zbyt) niską mocą.

„ANOVA” z nierównymi wariancjami

Jak więc dopasować odpowiedni model, który bierze pod uwagę różnice w wariancjach? To proste w R:

> oneway.test(x ~ group, data=d, var.equal=FALSE)
    One-way analysis of means (not assuming equal variances)

data:  x and group
F = 12.7127, num df = 2.000, denom df = 19.055, p-value = 0.0003107

Jeśli więc chcesz uruchomić prostą jednokierunkową „ANOVA” w R bez zakładania równych wariancji, użyj tej funkcji. Jest to w zasadzie rozszerzenie (Welch) t.test()dla dwóch próbek z nierównymi wariancjami.

Niestety nie działa TukeyHSD()(lub z większością innych funkcji używanych na aovobiektach), więc nawet jeśli jesteśmy całkiem pewni, że istnieją różnice grupowe, nie wiemy, gdzie one są.

Modelowanie heteroscedastyczności

Najlepszym rozwiązaniem jest jawne modelowanie wariancji. I to jest bardzo łatwe w R:

> library(nlme)
> mod.gls = gls(x ~ group, data=d,
                weights=varIdent(form= ~ 1 | group))
> anova(mod.gls)
Denom. DF: 36 
            numDF  F-value p-value
(Intercept)     1 16.57316  0.0002
group           2 13.15743  0.0001

Oczywiście wciąż znaczne różnice. Ale teraz różnice między grupą A i B również stały się istotne statystycznie ( P  = 0,025):

> summary(mod.gls)
Generalized least squares fit by REML
  Model: x ~ group
  […]
Variance function:
 Structure: Different standard
            deviations per stratum
 Formula: ~1 | group 
 Parameter estimates:
       A        B        C 
1.000000 2.444532 3.913382 

Coefficients:
               Value Std.Error  t-value p-value
(Intercept) 0.509768 0.2816667 1.809829  0.0787
groupB      1.736692 0.7439273 2.334492  0.0253
groupC      5.422838 1.1376880 4.766542  0.0000
[…]
Residual standard error: 1.015564 
Degrees of freedom: 39 total; 36 residual

Tak więc zastosowanie odpowiedniego modelu pomaga! Zauważ również, że otrzymujemy szacunki (względnych) odchyleń standardowych. Oszacowane odchylenie standardowe dla grupy A można znaleźć na dole wyników 1,02. Oszacowane odchylenie standardowe grupy B jest 2,44 razy większe lub 2,48, a oszacowane odchylenie standardowe grupy C wynosi podobnie 3,97 (typ, intervals(mod.gls)aby uzyskać przedziały ufności dla względnych odchyleń standardowych grup B i C).

Korekta do wielokrotnych testów

Jednak naprawdę powinniśmy poprawić wiele testów. Jest to łatwe przy użyciu biblioteki „multcomp”. Niestety nie ma wbudowanej obsługi obiektów „gls”, dlatego najpierw musimy dodać kilka funkcji pomocniczych:

model.matrix.gls <- function(object, ...)
    model.matrix(terms(object), data = getData(object), ...)
model.frame.gls <- function(object, ...)
  model.frame(formula(object), data = getData(object), ...)
terms.gls <- function(object, ...)
  terms(model.frame(object),...)

Teraz przejdźmy do pracy:

> library(multcomp)
> mod.gls.mc = glht(mod.gls, linfct = mcp(group = "Tukey"))
> summary(mod.gls.mc)
[…]
Linear Hypotheses:
           Estimate Std. Error z value Pr(>|z|)    
B - A == 0   1.7367     0.7439   2.334   0.0480 *  
C - A == 0   5.4228     1.1377   4.767   <0.001 ***
C - B == 0   3.6861     1.2996   2.836   0.0118 *  

Nadal istotna statystycznie różnica między grupą A i grupą B! ☺ I możemy nawet uzyskać (równoczesne) przedziały ufności dla różnic między grupami oznacza:

> confint(mod.gls.mc)
[…]
Linear Hypotheses:
           Estimate lwr     upr    
B - A == 0 1.73669  0.01014 3.46324
C - A == 0 5.42284  2.78242 8.06325
C - B == 0 3.68615  0.66984 6.70245

Używając w przybliżeniu (tutaj dokładnie) poprawnego modelu, możemy ufać tym wynikom!

Zauważ, że w tym prostym przykładzie dane dla grupy C tak naprawdę nie dodają żadnych informacji na temat różnic między grupami A i B, ponieważ modelujemy zarówno oddzielne średnie, jak i odchylenia standardowe dla każdej grupy. Moglibyśmy właśnie zastosować parowe testy t poprawione dla wielu porównań:

> pairwise.t.test(d$x, d$group, pool.sd=FALSE)
    Pairwise comparisons using t tests with non-pooled SD 

data:  d$x and d$group 

  A       B      
B 0.03301 -      
C 0.00098 0.02032

P value adjustment method: holm 

Jednak w przypadku bardziej skomplikowanych modeli, np. Modeli dwukierunkowych lub modeli liniowych z wieloma predyktorami, najlepszym rozwiązaniem jest użycie GLS (uogólnione najmniejsze kwadraty) i jawne modelowanie funkcji wariancji.

A funkcja wariancji nie musi być po prostu inną stałą w każdej grupie; możemy narzucić jej strukturę. Na przykład możemy modelować wariancję jako potęgę średniej z każdej grupy (a zatem potrzebujemy tylko oszacować jeden parametr, wykładnik) lub być może jako logarytm jednego z predyktorów w modelu. Wszystko to jest bardzo łatwe z GLS (i gls()R).

Uogólnione najmniejsze kwadraty to IMHO bardzo niewykorzystana technika modelowania statystycznego. Zamiast martwić się odchyleniami od założeń modelu , modeluj te odchylenia!


1
Dziękuję za Twoją odpowiedź! Nie rozumiem wyniku z oneway.test () i gls () dla nierównej wariancji ANOVA (ANOVA Welcha). Wartość p parametru oneway.test () to wartość p = 0,0003107. Ale wartość p z gls (grupa x ~, dane = d, wagi = varIdent (forma = ~ 1 | grupa)) wynosi 0,0001. Dlaczego te dwa wyniki są różne?
WCMC

2
Rośnie obawa o poprawki do wielokrotnych testów, myślę, że zgłaszanie nieskorygowanych wartości p wraz z liczbą dokonanych porównań jest bardziej przejrzyste. Zwłaszcza, że ​​możesz nie być zainteresowany każdym porównaniem par podczas testowania ich w R, więc korekta zostanie dokonana z uwzględnieniem porównań, które nie są interesujące.
Nakx

7
  1. Rzeczywiście może istnieć pewna transformacja danych, która spowoduje akceptowalny rozkład normalny. Oczywiście teraz twoje wnioskowanie dotyczy transformowanych danych, a nie nieprzetworzonych danych.

  2. Zakładając, że mówisz o jednokierunkowej ANOVA, test Kruskala-Wallisa jest odpowiednim nieparametrycznym analogiem do jednokierunkowej ANOVA. Test Dunna (nie test sumy rang odmiany ogrodniczej) jest być może najczęstszym testem nieparametrycznym odpowiednim do wielokrotnych porównań parami post hoc , chociaż istnieją inne testy, takie jak test Conover-Iman (ściśle potężniejszy niż test Dunna po odrzuceniu Kruskala-Wallisa) oraz test Dwass-Steele-Crichtlow-Fligner.

  3. α

ANOVA opiera się na stosunku w obrębie grupy i między wariancjami grupy. Nie jestem do końca pewien, co rozumiesz przez heteroscedastyczność w tym kontekście, ale jeśli masz na myśli nierówne rozbieżności między grupami, wydaje mi się, że zasadniczo łamią logikę hipotezy zerowej testu.

Proste zapytanie Google Scholar dla „testu Dunna” wraz z ogólnym terminem z Twojej dyscypliny powinno zwrócić wiele opublikowanych przykładów.


Bibliografia

Conover, WJ i Iman, RL (1979). W sprawie procedur wielokrotnego porównywania . Raport techniczny LA-7677-MS, Los Alamos Scientific Laboratory.

Crichtlow, DE i Fligner, MA (1991). W przypadku wielokrotnych porównań bez dystrybucji w jednokierunkowej analizie wariancji . Komunikacja w statystyce - teoria i metody , 20 (1): 127.

Dunn, Dz.U. (1964). Wiele porównań przy użyciu sum rang . Technometrics , 6 (3): 241–252.


2
Ok, dziękuję za tę odpowiedź, ale nie jestem całkowicie pewien, co mówisz. Jeśli chodzi o „heteroscedastyczność”, myślałem, że używam tego słowa w zwykłym znaczeniu: „zbiór zmiennych losowych jest heteroscedastyczny, jeśli istnieją subpopulacje, które mają inne zmienności od innych. Tutaj„ zmienność ”można określić ilościowo na podstawie wariancji lub każda inna miara rozproszenia statystycznego. ”- Wikipedia. W moich danych wariancje podgrup są nierówne (zgodnie z testem Levene'a), więc opisałem je jako heteroscedastyczne. Czy to nie w porządku?
Jas Max

1
To, co naprawdę próbuję omówić, to przepaść między statystykami podręcznika a światem rzeczywistym. Każdy podręcznik mówi „wariancje muszą być równe dla ANOVA”, ale oczywiście nigdy nie są. Czy zatem arbitralnie odcinamy w danym punkcie i przechodzimy do innego testu - jeśli tak, to w którym momencie? W mojej dziedzinie (biologia roślin) większość ludzi po prostu korzysta z dowolnego testu, do jakiego zostali przeszkoleni, bez zastanowienia. Nie jestem z tego naprawdę zadowolony. Chciałbym uzyskać sugestie dotyczące książek / stron internetowych, które omawiają „praktyczne” wykorzystanie statystyk - tj. Który test zastosować, kiedy i dlaczego. Dzięki za sugestię Dunna, to pomaga.
Jas Max

2
Ach, założeniem równości wariancji jest wariancja populacji, a nie wariancja próby . Możesz wnioskować, że wariancje populacji są równe ... za pomocą testu gałki ocznej lub innego, powiedzmy, testu statystycznego.
Alexis

1
Skąd wiesz coś o wariancji populacji, jeśli nie, oceniając wariancję próby? P-val interpretuję testu Levene'a jako „zakładając, że wariancje populacji są równe, jakie są szanse, że wariancje twojej próby będą się tak bardzo różnić”. Jeśli otrzymam niską wartość p, odrzucam hipotezę, że wariancje populacji są równe i nie mogę użyć ANOVA. Kruskal-Wallace wydaje się dobrą alternatywą, ale czy lepiej jest przekształcać dane, aby spełnić założenia ANOVA, a jeśli tak, to dlaczego?
Jas Max

1
Ponadto, czy test Levene'a, p <.05 jest odpowiednim testem i punktem odcięcia dla tej decyzji? A co z O'Briena, Bartletta ... wyniki tych testów mogą się znacznie różnić i tak naprawdę nie wiem, którego użyć - więc wybieram Levene, ponieważ wydaje się być najbardziej konserwatywny. Ale może to przesada - może dlatego, że zbyt szybko porzucam ANOVA, przechodzę na test, który niepotrzebnie zmniejsza moc statystyczną mojej analizy.
Jas Max

1

Wydaje mi się, że wykonujesz pracę nóg i starasz się jak najlepiej, ale martwisz się, że twoje wysiłki nie będą wystarczające, aby przejść przez recenzentów. Problem w bardzo realnym świecie. Myślę, że wszyscy badacze zmagają się z analizami, które od czasu do czasu wydają się być granicą, a nawet szczerze naruszają założenia. W końcu istnieją miliony artykułów oceniających np. Efekty leczenia w 3 małych grupach myszy z czymś w rodzaju 6-7 myszy w każdej grupie. Jak się dowiedzieć, czy założenia Anova są spełnione w takim dokumencie!

Przejrzałem wiele artykułów, zwłaszcza z zakresu patofizjologii sercowo-naczyniowej, i tak naprawdę nigdy nie mam 100% pewności, czy mogę ufać danym, czy nie w artykule, który czytam. Ale dla mnie jako recenzenta mam tendencję do myślenia, że ​​problemy mogą pojawić się na tak wielu poziomach naukowych, że prawdopodobnie nie ma sensu wnikać zbyt głęboko w statystyki - w końcu cały zestaw danych mógłby zostać sfabrykowany i nigdy bym nie zrobił za milion lat będę w stanie powiedzieć. W związku z tym w tej dziedzinie pracy zawsze będzie element zaufania, którego badacze nigdy nie mogą nadużywać.

Najbardziej realistyczną sugestią, jaką dałbym, jest to, że musisz dokładnie wszystko przemyśleć przed przesłaniem i upewnić się, że będziesz w stanie odpowiedzieć zgodnie z prawdą na wszelkie pytania zadane przez recenzentów. Tak długo, jak dasz z siebie wszystko, twoje intencje są uczciwe i dobrze śpisz w nocy, myślę, że powinieneś być w porządku.


2
Nie jestem pewien, czy zgadzam się z tym, że nie jestem w stanie dostrzec podróbek: zauważyłem już wcześniej.
Alexis
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.