【问题标题】:One-sided Wilcoxon signed-rank test using scipy使用 scipy 进行单边 Wilcoxon 符号秩检验
【发布时间】:2013-04-24 03:45:55
【问题描述】:

我想对我的配对数据执行单边 wilcoxon 秩检验,因为我感兴趣的是一个样本是否显着大于另一个样本。

Scipy 提供

scipy.stats.wilcoxon(x,y)

使用配对样本 x 和 y 执行双边测试。由于我无法假设正态(对称)分布,因此无法从两侧 p 值推导出一侧 p 值。

现在有人用 python 方法来获取单边测试的 p 值吗?

谢谢!

【问题讨论】:

  • 现在可以选择将alternative 设置为'greater''less'。因此,您不必自己计算。

标签: python statistics scipy


【解决方案1】:

scipy.stats.wilcoxon返回的P值与xy的分布无关,也与它们之间的区别无关。它由 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

和:

mn = count*(count + 1.) * 0.25
se = count*(count + 1.) * (2. * count + 1.)

其中countxy 之间的非零差数。

因此,要获得单侧 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)

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

【讨论】:

  • 我还没有完全理解它(需要重新研究 wilcoxon 测试..),但数字不言自明。谢谢!
  • up vote 3 down vote accepted P value returned by scipy.stats.wilcoxon has nothing to do with the distribution of x or y, nor the difference between them. 我很困惑。我认为测试是在说明 2 个输入向量是否来自相同分布的置信度。
【解决方案2】:

如果您有足够的观察结果(和其他假设),我记得 scipy Mann-Withney 测试是片面的:http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.mannwhitneyu.html

【讨论】:

  • 感谢您的提示!我没有意识到这些测试之间的细微差别。现在我只需要弄清楚哪种测试更适合我的数据。
  • mannwhitneyu 用于独立样本,wilcoxon 用于配对样本,因此不能在它们之间切换。
  • 其实你可以:你可以对成对的样本使用两个独立的样本检验,但你不能反过来做。这是否聪明,是完全不同的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-11
  • 2013-09-19
  • 1970-01-01
  • 2020-07-30
  • 2021-11-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多