2013-04-30 11 views
6

1組のデータに対して片側wilcoxonランクテストを実行したいと思います。一方のサンプルが他のサンプルよりも大幅に大きい場合は興味があります。scipyを使用した片側Wilcoxon符号付きランクテスト

scipyのダウンロードは、対になったサンプルxとyとの両側検定を実行するために

scipy.stats.wilcoxon(x,y) 

を提供します。私は通常(対称)分布を仮定することができないので、私は片側のp値を両側のp値から導出できません。

誰かが片側テストでp値を取得するためのPythonの方法はまだありますか?

ありがとうございます!

答えて

8

P値はxまたはyの分布とは何の関係もありません、それらの違いもありません。これは、ウィルコクソン検定統計量(http://en.wikipedia.org/wiki/Wilcoxon_signed-rank_testのW、またはscipyのようなT)によって決定され、正規分布に従うと仮定される。

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.) 

あなたが(〜python_directoryの\サイト・パッケージで\ scipyのダウンロード\統計\ morestats.py)のソースを確認した場合、あなたはdef wilcoxon()の最後の数行を検索しますcountは、xyの間の非ゼロ差の数です。 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 
+0

私はそれの周りに私の頭をかなり包んでいない(wilcoxonテストを再検討する必要がある..)しかし、数字は自分自身のために話す。ありがとう! – Lisa

+0

'up vote 受け入れ scipy.stats.wilcoxonによって返されたP値は、xまたはyの分布やそれらの違いとは関係ありません。「私は混乱しています。私は2つの入力ベクトルが同じ分布のものであるかどうかをテストしていると確信していました。 –

1

あなたは十分な観察(および他の仮説)を持っている場合、私はscipyのダウンロードマン・ホイットニー検定が一方的であることを思い出してください:scipy.stats.wilcoxonによって返さhttp://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.mannwhitneyu.html

+0

おかげ

ので、片側p値を取得するには、あなただけのprob/2.または1-prob/2.

例を必要とします!私はこれらのテストのわずかな違いを認識していませんでした。今私は、どのテストが自分のデータに適しているかを把握するだけです。 – Lisa

+4

mannwhitneyuは独立したサンプルのため、wilcoxonはペアのサンプルのため、それらを切り替えることはできません。 – user333700

+0

実際には次のことができます。ペアになったサンプルに対して2つの独立したサンプル・テストを使用できますが、それ以外の方法で行うことはできません。それがスマートなのかどうかはまったく違うことです。 – fabee

関連する問題