No.17433 Re: マンホイットニ解析 【青木繁伸】 2012/09/11(Tue) 18:16
そのプログラムがダメなんですね。棄ててしまいましょう。
同値があっても,ちゃんと計算できるべきです。
R なら,計算できますよ。
自分で,紙と鉛筆で計算しても,ちゃんと計算できてしかるべきということがわかるでしょう。
以下のようなデータがあるとき,> xまあ,これは仕方ないが,coin ライブラリの,wilcox_test をつかえば,ちゃんと正確な値が出る。
[1] 20 20 20 20 20 20 20 20 20 20
> y
[1] 19.013 20.179 19.214 18.485 20.052 20.574 21.092 20.624 19.018 21.754
> (z <- c(x, y)) # データを一緒にして
[1] 20.000 20.000 20.000 20.000 20.000 20.000 20.000 20.000 20.000 20.000 19.013
[12] 20.179 19.214 18.485 20.052 20.574 21.092 20.624 19.018 21.754
> (r <- rank(z)) # 平均順位を付ける
[1] 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 2.0 16.0 4.0 1.0 15.0 17.0
[17] 19.0 18.0 3.0 20.0
> (r1 <- sum(r[1:10])) # 群ごとに順位の和を計算する
[1] 95
> (r2 <- sum(r[11:20]))
[1] 115
> n1 <- n2 <- 10
> (u1 <- n1*n2+n1*(n1+1)/2-r1) # マン・ホイットニーの U 検定統計量に変換
[1] 60
> (u2 <- n1*n2+n2*(n2+1)/2-r2)
[1] 40
> (u0 <- min(u1, u2)) # 小さい方を検定統計量とする
[1] 40 <<<<<<< この値と
> wilcox.test(x, y, correct=FALSE) # R の wilcox.test 関数を使う
Wilcoxon rank sum test
data: x and y
W = 40, p-value = 0.4193 <<<<<< この W の値が等しい
alternative hypothesis: true location shift is not equal to 0
警告メッセージ:
In wilcox.test.default(x, y, correct = FALSE) :
タイがあるため,正確な p 値を計算することができません
> wilcox_test(z~g, data=d)
Asymptotic Wilcoxon Mann-Whitney Rank Sum Test
data: z by g (1, 2)
Z = -0.8077, p-value = 0.4193 # これは漸近検定の p 値
alternative hypothesis: true mu is not equal to 0
> wilcox_test(z~g, data=d, distribution="exact")
Exact Wilcoxon Mann-Whitney Rank Sum Test
data: z by g (1, 2)
Z = -0.8077, p-value = 0.4445 # これが正確な p 値!!!
alternative hypothesis: true mu is not equal to 0
● 「統計学関連なんでもあり」の過去ログ--- 045 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る