No.11680 Rでwilcoxonの順位和検定  【篠山】 2010/01/13(Wed) 10:24

Rでwilcoxonの順位和検定を行ったのですが,
「タイがあるため,正確なP値を計算することができません。」との表示がでます。
(2標本の間でサンプル数が異なること,同順位が存在します。)
この結果のP値を論文などで用いていいのでしょうか?

また,Wの分布を正規分布に近似させて検定を行う必要があるとのことを聞いたのですが,それはどうやったらいいのでしょうか。

よろしくお願いします。

No.11682 Re: Rでwilcoxonの順位和検定  【青木繁伸】 2010/01/13(Wed) 13:38

> Rでwilcoxonの順位和検定を行ったのですが,「タイがあるため,正確なP値を計算することができません。」との表示がでます。(2標本の間でサンプル数が異なること,同順位が存在します。)この結果のP値を論文などで用いていいのでしょうか?

この P 値は,「標準正規分布への漸近近似することで得られたもの」です。「用いていいのか」といわれれば,「使ってもよい」ということでしょう。
もっ とも,正確な P 値を得る方法はあるわけですから,正確な P 値を使えばよりよいということでしょう。正確な P 値を得るには coin ライブラリにある wilcox_test 関数を使えばよいでしょう。例として,以下のようなデータを使って説明しましょう。
第 1 群のデータ:1, 2, 3, 4, 1, 4, 3
第 2 群のデータ:4, 3, 2, 1, 3, 4
> x <- c(1,2,3,2,1,4,3, 4,3,2,1,3,4)
> g <- factor(c(1,1,1,1,1,1,1, 2,2,2,2,2,2))
> d <- data.frame(x, g)
coin ライブラリの wilcox_test を以下のように使います
> library(coin)
> wilcox_test(x ~ g, data=d, distribution="exact")

Exact Wilcoxon Mann-Whitney Rank Sum Test # 正確な P 値を計算したことを表しています

data: x by g (1, 2)
Z = -0.8843, p-value = 0.4446
alternative hypothesis: true mu is not equal to 0
distribution="exact" で,正確な P 値を計算することを指示しています。これがないと,以下のようになります。
> wilcox_test(x ~ g, data=d)

Asymptotic Wilcoxon Mann-Whitney Rank Sum Test # 漸近近似されたことを表しています

data: x by g (1, 2)
Z = -0.8843, p-value = 0.3765
alternative hypothesis: true mu is not equal to 0
P 値は,ここで計算された Z = -0.8843 を使って,pnorm(-0.8843)*2 = 0.3765343 と計算された近似値です。この Z は,http://aoki2.si.gunma-u.ac.jp/lecture/Average/U-test.html の「ケース数が大きい場合」の項に記された計算式で計算されます。ちなみに,stats にある wilcox.test 関数では,
> wilcox.test(x ~ g, data=d, correct=FALSE)

Wilcoxon rank sum test

data: x by g
W = 15, p-value = 0.3765
alternative hypothesis: true location shift is not equal to 0

警告メッセージ:
In wilcox.test.default(x = c(1, 2, 3, 2, 1, 4, 3), y = c(4, 3, 2, :
タイがあるため,正確な p 値を計算することができません
となります。P 値は wilcox_test を使った場合と同じ値(近似値)になっています。表示される統計量は W ですが,ケース数が n1 = 7, n2 = 6 のとき,統計量の平均値は n1*n2/2 = 21,分散は n1*n2*(n1+n2+1)/12 ではなく,同順位を補正するややこしい式で計算される 46.0385 ですから,W = 15 に対する標準化得点は Z = (15-21)/sqrt(46.0385) = -0.8842818 になります。この値は,wilcox_test で計算される Z と同じであることがわかりますね。wilcox.test で,W に対する P 値は pnorm(-0.8842818)*2 で計算された値(近似値)であることもわかります。

> また,Wの分布を正規分布に近似させて検定を行う必要があるとのことを聞いたのですが,それはどうやったらいいのでしょうか。

上に書いたとおりです。wilcox.test をやって,exact でないよといわれたら,そのときの検定結果は W を正規分布に近似したものであるということです。

No.11750 Re: Rでwilcoxonの順位和検定  【篠山】 2010/01/19(Tue) 18:17

青木先生,ありがとうございます。
試してみます。

● 「統計学関連なんでもあり」の過去ログ--- 043 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る