Lis*_*isa 14 python statistics scipy
我想对我的配对数据执行单侧wilcoxon秩检验,因为我感兴趣的是一个样本明显大于另一个样本.
Scipy提供
scipy.stats.wilcoxon(x,y)
Run Code Online (Sandbox Code Playgroud)
使用配对样本x和y执行双侧测试.由于我不能假设正常(对称)分布,我不能从双侧p值导出单侧p值.
现在有人以python的方式获得单侧测试的p值吗?
谢谢!
CT *_*Zhu 16
返回的P值scipy.stats.wilcoxon与xor 的分布无关y,也与它们之间的差异无关.它由Wilcoxon检验统计量(W在http://en.wikipedia.org/wiki/Wilcoxon_signed-rank_test中,或T在中scipy)确定,假设它遵循正态分布.如果你检查源代码(在~python_directory\site-packages\scipy\stats\morestats.py中),你会发现最后几行def wilcoxon():
se = sqrt(se / 24)
z = (T - mn) / se
prob = 2. * distributions.norm.sf(abs(z))
return T, prob
Run Code Online (Sandbox Code Playgroud)
和:
mn = count*(count + 1.) * 0.25
se = count*(count + 1.) * (2. * count + 1.)
Run Code Online (Sandbox Code Playgroud)
和count之间的非零差异的数量在哪里.xy
因此,要获得单侧p值,您只需要prob/2.或1-prob/2.
示例:在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)
Run Code Online (Sandbox Code Playgroud)
在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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10714 次 |
| 最近记录: |