★ ウィルコクソンの順位和検定とマン・ホイットニーのU検定のP値 ★

9493. ウィルコクソンの順位和検定とマン・ホイットニーのU検定のP値 あかぎ 2006/02/24 (金) 13:53
└9494. Re: ウィルコクソンの順位和検定とマン・ホイットニーのU検定のP値 青木繁伸 2006/02/24 (金) 14:44
 └9495. Re^2: ウィルコクソンの順位和検定とマン・ホイットニーのU検定のP値 青木繁伸 2006/02/24 (金) 14:49
  └9497. Re^3: ウィルコクソンの順位和検定とマン・ホイットニーのU検定のP値 青木繁伸 2006/02/24 (金) 14:55
   └9498. Re^4: ウィルコクソンの順位和検定とマン・ホイットニーのU検定のP値 あかぎ 2006/02/24 (金) 15:49


9493. ウィルコクソンの順位和検定とマン・ホイットニーのU検定のP値 あかぎ  2006/02/24 (金) 13:53
Rを用いて,下記2つの観測値ベクトルについて,ウィルコクソンの順位和検定とマン・ホイットニーのU検定を行いました.求まるP値は,一致するはずだと考えていましたが,一致しませんでした.「一致するはず」という認識が間違っているのでしょうか.あるいは,Rの使い方が間違っているのでしょうか.ご教示いただければ幸いです.

観測値ベクトル
x <- c(0.334120,0.334488,0.380486,0.397146)
y <- c(0.502068,0.534535,0.408725,0.357106)

使用した関数と計算結果
ウィルコクソンの順位和検定では,Rに用意されていた関数をそのまま使用しました.また,マン・ホイットニーのU検定では,青木先生が定義された関数(http://aoki2.si.gunma-u.ac.jp/R/u-test.html)を使用しました.それぞれの関数と計算結果は以下のとおりです.

ウィルコクソンの順位和検定
関数:wilcox.test(x,y,correct=F)
結果:W = 2, p-value = 0.1143

マン・ホイットニーのU検定
関数:U.test(x,y,correct=F)
結果:
U E(U) V(U) Z P value
2.00000000 8.00000000 12.00000000 1.73205081 0.08326452

     [このページのトップへ]


9494. Re: ウィルコクソンの順位和検定とマン・ホイットニーのU検定のP値 青木繁伸  2006/02/24 (金) 14:44
> 「一致するはず」という認識が間違っているのでしょうか.あるいは,Rの使い方が間違っているのでしょうか.

両者の結果は一致しません。
U.test(x,y,correct=F) は,「正規近似」で P 値を出していますから。。。

wilcox.test は,データ数が少ない間は正確な P 値を返します。

正確な P 値を得るための私が作った関数は
http://aoki2.si.gunma-u.ac.jp/R/exact-mw.html
です。
分割表から計算をスタートします。
あかぎさんのデータだと,
> d <- matrix(c(1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1), 2, 8)
> exact.mw(d)
U = 2, Z = 1.73205, P 値 = 0.0832645
正確な P 値 = 0.1142857143
査察した分割表の個数は 70 個

     [このページのトップへ]


9495. Re^2: ウィルコクソンの順位和検定とマン・ホイットニーのU検定のP値 青木繁伸  2006/02/24 (金) 14:49
蛇足ですが,元データから分割表を求めるところも含めると

> xy <- c(x,y)
> g <- rep(1:2, each=4)
> d <- table(g,xy)
> exact.mw(d)
U = 2, Z = 1.73205, P 値 = 0.0832645
正確な P 値 = 0.1142857143
査察した分割表の個数は 70 個

     [このページのトップへ]


9497. Re^3: ウィルコクソンの順位和検定とマン・ホイットニーのU検定のP値 青木繁伸  2006/02/24 (金) 14:55
ちなみに,同値があるとき,wilcox.test は「タイがあるため,正確な p 値を計算することができません」などとつぶやいて,こっそりと正規近似による P 値を出力するが,exact.mw は 正確な P 値を計算する。

> x <- c(0.334120,0.334488,0.380486,0.397146)
> y <- c(0.502068,0.534535,0.408725,0.357106)
> y[1]=x[1]
> wilcox.test(x,y,correct=F)
ウィルコクソンの順位和検定(マン・ホイットニーのU検定)

データ: x と y
W = 5.5, P値 = 0.4678
対立仮説: 母平均は,0ではない

Warning message:
タイがあるため,正確な p 値を計算することができません in: wilcox.test.default(x, y, correct = F)
> xy <- c(x,y)
> g <- rep(1:2, each=4)
>
> d <- table(g,xy)
>
> exact.mw(d)
U = 5.5, Z = 0.726022, P 値 = 0.467825
正確な P 値 = 0.5428571429
査察した分割表の個数は 50 個
>
>
> d
xy
g 0.33412 0.334488 0.357106 0.380486 0.397146 0.408725 0.534535
1 1 1 0 1 1 0 0
2 1 0 1 0 0 1 1

     [このページのトップへ]


9498. Re^4: ウィルコクソンの順位和検定とマン・ホイットニーのU検定のP値 あかぎ  2006/02/24 (金) 15:49
青木先生>

正確なP値を求めるためには,分割表からスタートしなければいけなかったのですね.計算したP値の不一致についても,納得しました.ありがとうございました.

     [このページのトップへ]


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