Односторонний тест со знаком Wilcoxon с использованием scipy
Я хотел бы выполнить односторонний тест ранга уилкоксона для моих парных данных, поскольку мне интересно, если один образец значительно больше другого.
предложения Scipy
scipy.stats.wilcoxon(x,y)
выполнить двусторонний тест с парными образцами x и y. Поскольку я не могу принять нормальное (симметричное) распределение, я не могу вывести одностороннее p-значение из двухстороннего p-значения.
кто-нибудь теперь способ python получить p-значения для одностороннего тест?
спасибо!
2 ответов
значение P, возвращенные scipy.stats.wilcoxon
не имеет ничего общего с распределением x
или y
, ни разница между ними. Он определяется статистикой теста Уилкоксона (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.)
здесь count
- это число ненулевой разницы между x
и y
.
Итак, чтобы получить одностороннее значение 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
Если у вас достаточно наблюдений (и другой гипотезы) , я вспоминаю, что тест сципи Манна-Уитни односторонний: http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.mannwhitneyu.html