P trả về bởi scipy.stats.wilcoxon
không có gì để làm với sự phân bố của x
hoặc y
, cũng không phải sự khác biệt giữa chúng. Nó được xác định bởi số liệu thống kê kiểm tra Wilcoxon (W như trong http://en.wikipedia.org/wiki/Wilcoxon_signed-rank_test, hoặc T như trong scipy
), được giả định theo một phân phối bình thường. Nếu bạn kiểm tra nguồn gốc (trong ~ python_directory \ site-packages \ scipy \ stats \ morestats.py), bạn sẽ tìm thấy một vài dòng cuối cùng của def wilcoxon()
:
se = sqrt(se/24)
z = (T - mn)/se
prob = 2. * distributions.norm.sf(abs(z))
return T, prob
và:
mn = count*(count + 1.) * 0.25
se = count*(count + 1.) * (2. * count + 1.)
đâu count
là số khác biệt không khác nhau giữa x
và y
.
Vì vậy, để có được giá trị p một bên, bạn chỉ cần prob/2.
hoặc 1-prob/2.
Ví dụ: Trong 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)
Trong 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
Tôi đã không hoàn toàn quấn đầu của tôi xung quanh nó (cần phải nghiên cứu lại các bài kiểm tra wilcoxon ..) nhưng các con số nói cho chính mình. Cảm ơn! – Lisa
'up vote phiếu bầu chấp nhận Giá trị P được trả về bởi scipy.stats.wilcoxon không liên quan gì đến việc phân phối x hoặc y, cũng không có sự khác biệt giữa chúng.' Tôi nhầm lẫn. Tôi nghĩ rằng các thử nghiệm là nói sự tự tin nếu 2 vectơ đầu vào là từ cùng một phân phối hay không. –