Czy doniesienia o śmierci testu t zostały znacznie przesadzone?

25

Czytając CV wszechczasów, znalazłem stwierdzenie, które chciałbym wyjaśnić. To jest post, a moje pytanie odnosi się do uwag końcowych: „Muszę zauważyć, że cała wiedza, którą właśnie przekazałem, jest nieco przestarzała; teraz, gdy mamy komputery, możemy zrobić coś więcej niż testy t. Jak zauważa Frank, ty prawdopodobnie zechcesz użyć testów Wilcoxona w dowolnym miejscu, w którym nauczono Cię przeprowadzać test t ”.

Ogromną zaletą jest oczywiście brak obaw o to, czy rozsądne jest założenie, że rozkład średnich próbek jest wystarczająco normalny do przeprowadzenia testu t . Widzę, że komputery potrafią błyskawicznie uporządkować długie listy różnic między dwoma wektorami danych ... Pamiętam, że robiłem to ręcznie wiele lat temu, ale dygresję ...

Czy test T naprawdę należy już do przeszłości? Co z testami permutacji? Czy są zbyt doraźne w tym sensie, że zazwyczaj wymagają napisania kilku wierszy kodu?

Antoni Parellada
źródło
3
Co sprawia, że ​​test permutacji jest ad hoc ? Fisher uznał testy t za odpowiednie, o ile ich zachowanie było zbliżone do testu permutacji (przepraszam, nie mam dokładnego cytatu, jeśli go znajdę, dam to), sugerując, że widział test permutacyjny jako bardziej podstawowy. Nie rozumiem też, co jest trudnego w dwustronnych testach permutacyjnych. Ale być może zbaczam do jakiejś odpowiedzi.
Glen_b
1
Być może coś na korzyść testu t równej wariancji jest jego związek z estymacją parametrów w dość prostym modelu, który możesz chcieć bawić.
Scortchi - Przywróć Monikę

Odpowiedzi:

22

Nie powiedziałbym, że klasyczne testy t dla jednej próbki (w tym sparowane) i dla dwóch próbek z równą wariancją są dokładnie przestarzałe, ale istnieje mnóstwo alternatyw, które mają doskonałe właściwości i w wielu przypadkach powinny być stosowane.

Nie powiedziałbym też, że zdolność do szybkiego wykonywania testów Wilcoxona-Manna-Whitneya na dużych próbkach - a nawet testów permutacyjnych - jest ostatnia, robiłem to zarówno rutynowo ponad 30 lat temu jako student, a zdolność do tego miała w tym momencie były dostępne przez długi czas.

Chociaż znacznie łatwiej jest napisać test permutacji - nawet od zera - niż kiedyś , nawet wtedy nie było to trudne (jeśli miałeś kod, aby to zrobić raz, modyfikacje, aby to zrobić w różnych okolicznościach - różne statystyki , różne dane itp. - były proste, na ogół nie wymagały doświadczenia w programowaniu).

Oto kilka alternatyw i dlaczego mogą pomóc:

  1. Welch-Satterthwaite - gdy nie masz pewności, wariancje będą bliskie równości (jeśli rozmiary próbek są takie same, założenie równości wariancji nie jest krytyczne)

  2. Wilcoxon-Mann-Whitney - Doskonały, jeśli ogony są normalne lub cięższe niż normalnie, szczególnie w przypadkach zbliżonych do symetrycznych. Jeśli ogony wydają się być bliskie normalności, test permutacji na środkach zaoferuje nieco więcej mocy.

  3. udoskonalone testy t - istnieje wiele takich, które mają dobrą moc w normalnych warunkach, ale również działają dobrze (i zachowują dobrą moc) w przypadku cięższych alternatywnych lub nieco wypaczonych alternatyw.

  4. GLM - przydatne na przykład do zliczania lub ciągłych przypadków przesunięcia w prawo (np. Gamma); przeznaczony do radzenia sobie w sytuacjach, w których wariancja jest powiązana ze średnią.

  5. efekty losowe lub modele szeregów czasowych mogą być przydatne w przypadkach, w których występują szczególne formy zależności

  6. Podejścia bayesowskie , bootstrapowanie i mnóstwo innych ważnych technik, które mogą oferować podobne zalety do powyższych pomysłów. Na przykład, stosując podejście bayesowskie, całkiem możliwe jest posiadanie modelu, który może uwzględniać proces zanieczyszczający, radzić sobie z liczeniem lub wypaczonymi danymi oraz radzić sobie z poszczególnymi formami zależności jednocześnie .

Podczas gdy istnieje mnóstwo przydatnych alternatyw, stary test standardowy dla dwóch próbek z równą wariancją dla dwóch próbek może często dobrze sprawdzać się w dużych próbkach o tej samej wielkości, o ile populacja nie jest bardzo odległa od normy (na przykład bardzo gruby ogon / skew) i mamy prawie niezależność.

Alternatywy są użyteczne w wielu sytuacjach, w których możemy nie być tak pewni zwykłego testu t ... a mimo to ogólnie dobrze się sprawdzają, gdy założenia testu t są spełnione lub bliskie spełnienia.

Welch jest rozsądnym rozwiązaniem domyślnym, jeśli rozkład nie odchodzi zbyt daleko od normalnego (przy większych próbkach daje większą swobodę).

Podczas gdy test permutacji jest doskonały, bez utraty mocy w porównaniu z testem t, gdy zachodzą jego założenia (i użyteczna korzyść polegająca na bezpośrednim wnioskowaniu o ilości odsetek), Wilcoxon-Mann-Whitney jest prawdopodobnie lepszym wyborem, jeśli ogony mogą być ciężkie; przy niewielkim dodatkowym założeniu WMW może sformułować wnioski dotyczące zmiany średniej. (Istnieją inne powody, dla których można go preferować od testu permutacji)

[Jeśli wiesz, że masz do czynienia z liczbą powiedzeń, czasem oczekiwania lub podobnymi danymi, trasa GLM jest często rozsądna. Jeśli wiesz trochę o potencjalnych formach zależności, to również łatwo sobie z tym poradzić i należy rozważyć potencjał zależności.]

Więc chociaż test t z pewnością nie będzie już przeszłością, prawie zawsze możesz zrobić tak samo dobrze lub prawie tak samo, gdy ma zastosowanie, i potencjalnie zyskać dużo, gdy nie ma, wybierając jedną z alternatyw . Innymi słowy, zasadniczo zgadzam się z sentymentem w tym poście dotyczącym testu t ... przez większość czasu powinieneś prawdopodobnie pomyśleć o swoich założeniach nawet przed zebraniem danych i jeśli któregokolwiek z nich naprawdę nie można się spodziewać aby wytrzymać, z testem t zwykle nie ma prawie nic do stracenia, po prostu nie przyjmując tego założenia, ponieważ alternatywy zwykle działają bardzo dobrze.

Jeśli ktoś ma problem z gromadzeniem danych, z pewnością nie ma powodu, aby nie poświęcać trochę czasu szczerze, rozważając najlepszy sposób podejścia do swoich wniosków.

Zauważ, że generalnie odradzam jawne testowanie założeń - nie tylko odpowiada ono na złe pytanie, ale robi to, a następnie wybór analizy opartej na odrzuceniu lub odrzuceniu założenia wpływa na właściwości obu wyborów testu; jeśli nie możesz racjonalnie bezpiecznie założyć (albo dlatego, że wiesz o procesie wystarczająco dobrze, że możesz go przyjąć, albo ponieważ procedura nie jest wrażliwa na to w twoich okolicznościach), ogólnie mówiąc, lepiej jest skorzystać z procedury to nie zakłada.


# set up some data
x <- c(53.4, 59.0, 40.4, 51.9, 43.8, 43.0, 57.6)
y <- c(49.1, 57.9, 74.8, 46.8, 48.8, 43.7)
xyv <- stack(list(x=x,y=y))$values
nx  <- length(x)

# do sample-x mean for all combinations for permutation test
permmean = combn(xyv,nx,mean)

# do the equivalent resampling for a randomization test
randmean <- replicate(100000,mean(sample(xyv,nx)))

# find p-value for permutation test
left  = mean(permmean<=mean(x))
# for the other tail, "at least as extreme" being as far above as the sample
# was below
right = mean(permmean>=(mean(xyv)*2-mean(x)))
pvalue_perm = left+right
"Permutation test p-value"; pvalue_perm

# this is easier: 
#      pvalue = mean(abs(permmean-mean(xyv))>=abs(mean(x)-mean(xyv))) 
# but I'd keep left and right above for adapting to other tests

# find p-value for randomization test
left  = mean(randmean<=mean(x))
right = mean(randmean>=(mean(xyv)*2-mean(x)))
pvalue_rand = left+right
"Randomization test p-value"; pvalue_rand

(Wynikowe wartości p wynoszą odpowiednio 0,538 i 0,539; odpowiedni zwykły test t dla dwóch próbek ma wartość p 0,504, a test t Welch-Satterthwaite ma wartość p 0,522.)

Zauważ, że kod do obliczeń to w każdym przypadku 1 linia dla kombinacji testu permutacji, a wartość p można również wykonać w 1 linii.

Dostosowanie tego do funkcji, która przeprowadziła test permutacji lub test randomizacji i dała wynik podobny do testu t, byłaby trywialna.

Oto wyświetlanie wyników:

wprowadź opis zdjęcia tutaj

# Draw a display to show distn & p-vale region for both 
opar <- par()
par(mfrow=c(2,1))
hist(permmean, n=100, xlim=c(45,58))
abline(v=mean(x), col=3)
abline(v=mean(xyv)*2-mean(x), col=3, lty=2)
abline(v=mean(xyv), col=4)
hist(randmean, n=100, xlim=c(45,58))
abline(v=mean(x), col=3)
abline(v=mean(xyv)*2-mean(x), col=3, lty=2)
abline(v=mean(xyv), col=4)

par(opar)
Glen_b - Przywróć Monikę
źródło
W wierszu 16 pierwszego bloku kodu znajduje się mała literówka. Uważam, że powinien on przeczytać: # pvalue = mean (abs (permmean-mean (xyv))> = abs (mean (x) -mean (xyv))). Ponadto, dlaczego badany jest prawy ogon jako prawo = średnia (permmean> = 2 * mean (xyv) - mean (x))?
Antoni Parellada,
Dobra odpowiedź (+1), ale generalnie nie zgadzam się ze stwierdzeniem, że zwykle nie ma wiele do stracenia przez nie przyjmowanie założeń, chyba że odnosi się to tylko do testu t. Nie jest jasne, czy ma to być stwierdzenie ogólne, czy nie. W przypadku bardziej skomplikowanych modeli i ograniczonej wielkości próby założenia często mają kluczowe znaczenie, np. W postaci słabo informujących priorytetów.
Erik,
1
@Erik To nie było zamierzone jako ogólne oświadczenie. Pozwól, że wyjaśnię
Glen_b
1
tt
2
@Stephan istnieje tak wiele innych rozważań (i nieco zredukowany zestaw szeroko stosowanych alternatyw, przynajmniej jeśli spojrzymy na regresję wielokrotną), na które odpowiedź w takim przypadku byłaby długa i miałaby pewne istotne różnice.
Glen_b