2013-04-30 25 views
6

Tôi muốn thực hiện kiểm tra xếp hạng một mặt wilcoxon cho dữ liệu được ghép nối của mình, vì tôi quan tâm nếu một mẫu lớn hơn đáng kể so với mẫu kia.Kiểm tra xếp hạng Wilcoxon một mặt bằng scipy

scipy cung cấp

scipy.stats.wilcoxon(x,y) 

để thực hiện một thử nghiệm hai mặt với cặp mẫu x và y. Vì tôi không thể giả định một phân phối bình thường (đối xứng), tôi không thể lấy giá trị p một mặt từ giá trị p hai mặt.

Hiện giờ có ai là một cách trăn để lấy các giá trị p cho thử nghiệm một chiều không?

Cảm ơn!

Trả lời

8

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 xy.

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 
+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

+0

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

1

Nếu bạn có đủ quan sát (và giả thuyết khác), tôi nhớ lại rằng kiểm định Mann-Withney scipy là một chiều: Giá trị http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.mannwhitneyu.html

+0

Thanks for the tip ! Tôi đã không nhận ra sự khác biệt nhỏ giữa các bài kiểm tra này. Bây giờ tôi chỉ cần tìm ra thử nghiệm nào phù hợp hơn cho dữ liệu của tôi. – Lisa

+4

mannwhitneyu dành cho các mẫu độc lập, wilcoxon dành cho các mẫu được ghép nối, vì vậy bạn không thể chuyển đổi giữa chúng. – user333700

+0

Thực tế bạn có thể: Bạn có thể sử dụng thử nghiệm mẫu hai độc lập trên các mẫu được ghép nối, nhưng bạn không thể thực hiện theo cách khác. Cho dù đó là thông minh, là một điều hoàn toàn khác nhau. – fabee

Các vấn đề liên quan