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:
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)
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.
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.
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ą.
efekty losowe lub modele szeregów czasowych mogą być przydatne w przypadkach, w których występują szczególne formy zależności
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:
# 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)