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
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
'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. –