1
我試圖在R和python的scipy.stats包中運行Wilcoxon測試。但是我得到不同的結果任何人都可以解釋?R和Python中Wilcoxon測試的區別
test = [6.2151308, 4.7956451, 4.7473738, 5.4695828, 6.3181463, 2.8617239, -0.8105824, 3.9456856, 4.6735000, 4.1067193, 5.7656002, 2.2237666, 1.0354143, 4.9547707, 5.3156348, 4.8163154, 3.4024776, 4.2876854, 6.1227500]
z_statistic, p_value = wilcoxon(np.array(test) - np.log(1.0))
print "one-sample wilcoxon-test", p_value
one-sample wilcoxon-test 0.000155095772796
即使他們兩人的p值足夠低,以拒絕零假設,p值:
我的R中
> des2
[1] 6.2151308 4.7956451 4.7473738 5.4695828 6.3181463 2.8617239
[7] -0.8105824 3.9456856 4.6735000 4.1067193 5.7656002 2.2237666
[13] 1.0354143 4.9547707 5.3156348 4.8163154 3.4024776 4.2876854
[19] 6.1227500
> wilcox.test(des2, mu=0, conf.int = T)
Wilcoxon signed rank test
data: des2
V = 189, p-value = 7.629e-06
alternative hypothesis: true location is not equal to 0
95 percent confidence interval:
3.485570 5.160925
sample estimates:
(pseudo)median
4.504883
我的代碼在Python代碼有3個數量級的差異,我不明白爲什麼
scipy的文檔告訴我們:'因爲正常的近似值用於計算,所用的樣本應該很大 - 'wilcox.test'的文檔說:'默認情況下(如果確切沒有指定),如果樣本包含少於50個有限值並且沒有關係,則計算精確的p值。否則,會使用正常的近似值。「不過,不確定這是否唯一的區別。 – cel
我使用Wilcox,因爲我不想要一個正常的近似...因此我應該使用R版本嗎? – user1871528
R的測試不接近p值。這對小樣本量至關重要。 – cel