Temat: Pomoc statystyczna do doktoratu, proszę o wskazówki
Rada dr Błażejowskiego jest rozsądna. Ze swej strony polecam prof. Stanisza (autora słynnej "trylogii" o statystyce medycznej z zastosowaniem pakietu Statistica), kolejnego guru statystyki medycznej, również z Krakowa. Może także krakowski StatSoft (prof. Stanisz z nimi współpracuje) coś pomoże, w rozsądnej kwocie, w ramach wsparcia młodych doktorantów, a Pani praca trafi do sprzedawanego przez nich zbiorku :)
Spróbuję jednak nieco pomóc. No to jedziemy.
kiedy Kołmogorowa-Smirnova. Podobno z powodu złego zastosowania tego testu wiele prac jest odrzucanych.
Jest, bo to "very common problem", gdy początkujący analitycy nagminnie stosują MWW (Mann-Whitney-Wilcoxon) wtedy, gdy powinno się testy interwałowe*. MWW to takie panaceum -
"hmmm, czy mogę zastosować test t-Studenta? Nie? Aha, no to użyję MWW".
/ * testów interwałowych jest więcej. K-S jest już archaiczny. Nowsze to test Cramera-von Misesa, jego ulepszenie - test Andersona-Darlinga, test Shapiro-Wilka. /
Oba testy stosuje się do odpowiedzi na jedno z dwóch pytań:
1. czy, mówiąc obrazowo - istnieją statystycznie znamienne różnice między dwiema próbami?
2. czy obie próby pochodzą z takiego samego rozkładu, a więc z tej samej populacji?
Można to sprawdzić na kilka sposobów, ale każdy sposób ma swoje wady i zalety.
Ważne: każdy rozkład charakteryzują pewne parametry:
położenia,
skali (dyspersji) i - dla niektórych rozkładów -
kształtu. I teraz, posługując się tymi terminami, można powiedzieć, że:
*
Test K-S, ponieważ bada różnice w rozkładach (konkretnie bada "odległości" między dystrybuantami - stąd nazwa "interwałowy"), jest czuły na zmiany kształtu dystrybuanty. A zatem "zareaguje" na zmian wszystkich powyższych parametrów: skali, położenia i kształtu. Co ważne, test K-S
nie zakłada niczego o rozkładach. Co z tego wynika? Oczywiście, jeśli dwie dystrybuanty są stochastycznie równe, to oba rozkłady "mają taki sam kształt, tak samo wyglądają" i w dodatku "leżą na sobie" (zerowe przesunięcie). Jeśli nie są - to próby pochodzą z różnych populacji. Proste i intuicyjne. Wniosek? K-S zbada "wszystko na raz" - przesunięcie i skalę (i ew. kształt) poprzez badanie odległości obu dystrybuant.
EDIT: K-S ma sens wtedy, gdy obie dystrybuanty mają w relatywnie podobny kształt, ponieważ dokonuje pomiaru punktowego (największa różnica). Nie mają tej wady testy takie jak Cramera-von Misesa albo jego nowsza wersja - Andersona-Darlinga (całki, więc "patrzą całościowo" na krzywe).
*
Test MWW bada jedynie różnice w "przesunięciu" (położenie) rozkładów obu prób
ALE JUŻ przy założeniu, że pochodzą one z rozkładu o takim samym kształcie. Jeśli kształty nie będą identyczne, to test może tego nie wykryć, gdyż skupia się tylko na położeniu. Okaże się wtedy, że chociaż próby wcale nie pochodzą z tej samej populacji, ale mają znikomo przesunięte rozkłady, to test tego nie wykrył.
A dlaczego tak się dzieje? Ponieważ MWW opiera się o porównanie sum rang w obu próbach, których wartości wynikają z wzajemnego położenia elementów tych prób względem siebie. Jeśli rozkłady są w miarę symetryczne i "wycentrowane" (zerowe przesunięcie, podobny kształt rozkładu), to sumy rang będą podobne; polecam zagłębić się w formułę testu MWW, jest prosta.
Nie ważne, jak bardzo zwiększy się dyspersję jednego z rozkładów, "wzajemny układ rang" dla obu prób pozostanie taki sam (elementy będą się dość symetrycznie przeplatać).
Trzeba pamiętać, co daje nam rangowanie - niweluje różnice ("zrównuje jedności i miliony") i linearyzuje zależności. Proszę spojrzeć:
Próba 1: -3, -2, -1, 0, 1, 2, 3
Próba 2: -300, -200, -100, 100, 200, 300
Czy te próby się różnią? Dla mnie tak, ponieważ chociaż są "wycentrowane", to jednak jedna ma dyspersję rzędu jednostek, a druga setek. Ale sprawdźmy.
Niech ranga danej wartości z danej próby to R_próba(wartość), np. ranga wartości "-3" z pierwszej próby to R1(-3). Uporządkujmy te rangi i nadajmy im wartości:
R2(-300)=1, R2(-200)=2, R2(-100)=3, R1(-3)=4, R1(-2)=5, R1(-1)=6, R1(0)=7, R1(1)=8, R1(2)=9, R1(3)=10, R2(100)=11, R2(200)=12, R3(300)=13
Jak się ułożyły rangi? (X - rangi dużych wartości, o - małych wartości):
XXX ooooooo XXX - piękna symetria. Zwiększenie wariancji 2 próby nawet trylionkrotnie kompletnie nic tu nie zmieni.
Policzmy sumy rang:
Próba 1: 4+5+6+7+8+9+10 = 49
Próba 2: 1+2+3+11+12+13 = 42
Bierzemy tabele wartości krytycznych testu U dla n1=6, n2=7, R1=42. Otrzymujemy p-value = 1.0
Oczywiście, jeśli dwa rozkłady różnią się znacznie w odstępach i kształtach, to oba testy "dadzą radę". Ale zawsze trzeba pamiętać, kiedy Wilcoxon może nas wprowadzić w błąd.
Równość skal dwóch prób mierzy np. test Ansariego-Bradleya. Mamy ładną analogię do zagadnienia Berensa-Fishera z dziedziny testów parametrycznych, czyli porównania odległości między dwoma rozkładami o różnej dyspersji.
Mamy takie oto odpowiedniki testów (nieparam.-param.)
- test Ansariego-Bradleya równości dyspersji = test F na równość wariancji
- test MWW zerowego przesunięcia = test t na równość średnich.
- test Kołmogorowa-Smirnova gdy różne dyspersje = test t-Welscha różnych wariancji
Chociaż trzeba
wyraźnie podkreślić, że test K-S to
nie jest "skorygowany" test MWW (jak test t-Welscha jest skorygowanym pod względem wariancji testem t-Studenta), tylko zupełnie innym testem.
A teraz dość teorii - pora na przykład (w języku "R") na to, jak brak sprawdzenia założenia o równości parametru skali może diametralnie wpłynąć na różnice w określeniu istotności różnic dwóch prób.
# dwa rozkłady normalne, ta sama średnia, różne rozproszenia (wariancje)
> x <- rnorm(50, 10, 1)
> y <- rnorm(50, 10, 10)
> ansari.test(x,y)
Ansari-Bradley test
data: x and y
AB = 1845, p-value = 3.775e-15
alternative hypothesis: true ratio of scales is not equal to 1
> wilcox.test(x,y)
Wilcoxon rank sum test with continuity correction
data: x and y
W = 1090, p-value = 0.2715
alternative hypothesis: true location shift is not equal to 0
> ks.test(x,y)
Two-sample Kolmogorov-Smirnov test
data: x and y
D = 0.54, p-value = 4.929e-07
alternative hypothesis: two-sided
Jeśli zna Pani pakiet obliczeniowy "R", to proszę poeksperymentować. Podaję funkcję, która w "iter" iteracjach generuje próby z rozkładu normalnego o różnych parametrach - przesunięciu (średnia) i skali (odch. std.) i "traktuje" je testem K-S i MWW.
Testy <- function(iter, dif, disp) {
testW <- array(iter, 0)
testKS <- array(iter, 0)
for(i in 1:iter) {
x <- rnorm(50, 0, 1)
y <- rnorm(50, 0 + dif, 1+disp)
testW[i] <- wilcox.test(x,y)$p.value
testKS[i] <- ks.test(x,y)$p.value
}
pvalW = 1-length(testW[testW<0.05]) / iter
pvalKS = 1-length(testKS[testKS<0.05]) / iter
layout(c(1,2))
hist(testW, main=sprintf("dif=%.1f, disp=%.1f, pval_Wilcox=%.5f", dif, disp, pvalW))
hist(testKS, main=sprintf("dif=%.1f, disp=%.1f, pval_KS=%.5f", dif, disp, pvalKS))
}
U mnie wyniki symulacji były takie:
it. śr. dysp. pv KS pv Wilcox
----------------------------------------
1. Brak przesunięcia, coraz większa dyspersja
Testy( 100, 0, 0) 0.96 0.94
Testy( 100, 0, 1) 0.60 0.89
Testy( 100, 0, 2) 0.16 0.88
Testy( 100, 0, 3) 0.01 0.96
Testy( 100, 0, 100) 0.0000 0.89
2. stała dyspersja, coraz większe, ale minimalne przesunięcie
Testy( 100, 0.1, 0) 0.93 0.91
Testy( 100, 0.3, 0) 0.75 0.70
Testy( 100, 0.5, 0) 0.54 0.40
Testy( 100, 0.7, 0) 0.20 0.10
Testy( 100, 0.8, 0) 0.08 0.02
Testy( 100, 1.0, 0) 0.02 0.0000
Na pozostałe pytania odpowiem po małej przewie :)
PS: zapomniałem o wniosku :) Najpierw proszę sprawdzać założenie o równości skali testem np. Ansariego-Bradleya. Jak odrzuci H0, to test K-S. Jak nie odrzuci - to MWW. I to wszystko :)
Adrian Olszewski edytował(a) ten post dnia 18.05.12 o godzinie 13:59