2013-04-30 18 views
6

Chciałbym przeprowadzić jednostronny test rang Wilcoxona dla moich sparowanych danych, ponieważ jestem zainteresowany, jeśli jedna próbka jest znacznie większa od drugiej.Jednostronny test rangowanych znaków Wilcoxona z użyciem scipy

scipy oferuje

scipy.stats.wilcoxon(x,y) 

wykonać dwustronny test na dwóch próbkach x i y. Ponieważ nie mogę założyć normalnego (symetrycznego) rozkładu, nie mogę wyprowadzić jednostronnej wartości p z dwustronnej wartości p.

Czy ktoś teraz jest sposobem python, aby uzyskać wartości p dla jednostronnego testu?

Dzięki!

Odpowiedz

8

P zwrócony przez scipy.stats.wilcoxon ma nic wspólnego z dystrybucją x lub y ani różnica między nimi. Jest określana przez statystykę testową Wilcoxona (W jak w http://en.wikipedia.org/wiki/Wilcoxon_signed-rank_test, lub T jak w scipy), która zakłada, że ​​podąża normalnym rozkładem. Jeśli zaznaczysz źródła (w ~ \ Site python_directory opakowań \ scipy \ statystyki \ morestats.py) znajdziesz kilka ostatnich wierszy def wilcoxon():

se = sqrt(se/24) 
z = (T - mn)/se 
prob = 2. * distributions.norm.sf(abs(z)) 
return T, prob 

oraz:

mn = count*(count + 1.) * 0.25 
se = count*(count + 1.) * (2. * count + 1.) 

Gdzie count to liczba różna od zera między x i y.

Tak więc, aby dostać jedną boczną wartość p, wystarczy prob/2. lub 1-prob/2.

Przykłady: W Python:

>>> y1=[125,115,130,140,140,115,140,125,140,135] 
>>> y2=[110,122,125,120,140,124,123,137,135,145] 
>>> ss.wilcoxon(y1, y2) 
(18.0, 0.5936305914425295) 

W R:

> wilcox.test(y1, y2, paired=TRUE, exact=FALSE, correct=FALSE) 

     Wilcoxon signed rank test 

data: y1 and y2 
V = 27, p-value = 0.5936 
alternative hypothesis: true location shift is not equal to 0 

> wilcox.test(y1, y2, paired=TRUE, exact=FALSE, correct=FALSE, alt='greater') 

     Wilcoxon signed rank test 

data: y1 and y2 
V = 27, p-value = 0.2968 
alternative hypothesis: true location shift is greater than 0 
+0

Nie całkiem owinąłem się wokół niego głową (muszę ponownie przestudiować test Wilcoxona ...), ale liczby mówią same za siebie. Dzięki! – Lisa

+0

'do głosowania dół głos zaakceptowane Wartość P zwrócona przez scipy.stats.wilcoxon nie ma nic wspólnego z rozkładem x lub y, ani różnica między nimi. Jestem zdezorientowany. Myślałem, że test mówi o pewności, czy 2 wektory wejściowe pochodzą z tej samej dystrybucji, czy nie. –

1

Jeśli masz wystarczająco dużo uwagi (i inne hipotezy), przypominam, że scipy test Manna-Whitneya jest jednostronna: wartość http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.mannwhitneyu.html

+0

Dzięki za cynk ! Nie zdawałem sobie sprawy z niewielkiej różnicy między tymi testami. Teraz muszę tylko dowiedzieć się, który test jest bardziej odpowiedni dla moich danych. – Lisa

+4

mannwhitneyu jest dla niezależnych próbek, Wilcoxon jest dla sparowanych próbek, więc nie można przełączać się między nimi. – user333700

+0

W rzeczywistości możesz: Możesz użyć dwu-niezależnego testu próbki na sparowanych próbkach, ale nie możesz tego zrobić na odwrót. Czy to jest inteligentne, to zupełnie inna sprawa. – fabee

Powiązane problemy