No.17431 マンホイットニ解析  【HH】 2012/09/11(Tue) 15:27

初心者です。プリズムでマンホイットニ解析をしようとしたところ,one of the column only has one repeated value. this prevents the mann whitney test from workingと出てきて解析できませんでした。たしかにコントロール群は値が同一なのです。このようなときに独立した2群の差の検定はどのようにしたら よいのでしょうか?

No.17433 Re: マンホイットニ解析  【青木繁伸】 2012/09/11(Tue) 18:16

そのプログラムがダメなんですね。棄ててしまいましょう。
同値があっても,ちゃんと計算できるべきです。
R なら,計算できますよ。

自分で,紙と鉛筆で計算しても,ちゃんと計算できてしかるべきということがわかるでしょう。

以下のようなデータがあるとき,
> x
[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 値を計算することができません
まあ,これは仕方ないが,coin ライブラリの,wilcox_test をつかえば,ちゃんと正確な値が出る。

> 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 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る