14

1 つのサンプルが他のサンプルよりも有意に大きいかどうかに関心があるため、ペア データに対して片側ウィルコクソン順位検定を実行したいと考えています。

Scipy オファー

scipy.stats.wilcoxon(x,y)

ペアのサンプル x と y を使用して両側検定を実行します。正規 (対称) 分布を想定できないため、両側 p 値から片側 p 値を導き出すことはできません。

片側検定の p 値を取得する Python の方法はありますか?

ありがとう!

4

2 に答える 2

17

によって返される P 値は、またはscipy.stats.wilcoxonの分布とも関係なく、それらの差とも関係ありません。これは、ウィルコクソン検定統計量 ( http://en.wikipedia.org/wiki/Wilcoxon_signed-rank_testの場合は W 、または の場合は T ) によって決定され、正規分布に従うと想定されます。ソース ( ~python_directory\site-packages\scipy\stats\morestats.py 内) を確認すると、次の最後の数行が見つかります。xyscipydef 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
于 2013-09-23T18:30:14.997 に答える
2

十分な観察結果 (および他の仮説) がある場合は、scipy Mann-Withney 検定が片側であることを思い出してください

于 2013-04-30T09:22:17.667 に答える