二群の代表値の差の検定
 マン・ホィットニーの U 検定
     Last modified: Aug 25, 2015

例題

 「A,B 薬の治療効果を比較した結果が表 3 のように与えれれている。2 群の母代表値の差を有意水準 5% で両側検定しなさい。」

表 3.列間に順序関係があるクロス集計表形式で与えられた場合の代表値の差の検定

不変 やや有効 有効 著効 合計
A薬投与群 9 12 6 3 30
B薬投与群 4 9 11 5 29


R による解析:

> A <- rep(1:4, c(9, 12, 6, 3)) # A 薬
> B <- rep(1:4, c(4, 9, 11, 5)) # B 薬

> wilcox.test(A, B, correct=FALSE) # correct=FALSE は連続性の修正を行わないことを指示している。

	Wilcoxon rank sum test # 名前が違う別の検定のように見えるが,マン・ホイットニーの $U$ 検定と等価な検定である。

data:  A and B 
W = 310.5, p-value = 0.04883
alternative hypothesis: true mu is not equal to 0 

 警告メッセージ: 
 wilcox.test.default(A, B, correct = FALSE) で: 
   タイがあるため、正確な p 値を計算することができません 

このような警告メッセージが出る場合には,exactRankTests パッケージの wilcox.exact 関数を使用すればよい。

> library(exactRankTests)
> wilcox.exact(A, B, correct=FALSE)

	Exact Wilcoxon rank sum test

data:  A and B
W = 310.5, p-value = 0.04965
alternative hypothesis: true mu is not equal to 0

なお,これらの関数では,$U$ の分散や,$Z$ 値が表示されないので,自分で定義した関数を使ってみる

> U.test(A, B, correct=FALSE)
           U         E(U)         V(U)            Z      P value 
3.105000e+02 4.350000e+02 3.993559e+03 1.970105e+00 4.882639e-02 

> chisq.test(matrix(c(9,12,6,3,4,9,11,5),ncol=4,byrow=TRUE)) # 分布の差の検定(独立性の検定)を行ってみる。

	Pearson's Chi-squared test

data:  matrix(c(9, 12, 6, 3, 4, 9, 11, 5), ncol = 4, byrow = TRUE) 
X-squared = 4.3065, df = 3, p-value = 0.2302

Warning message: 
Chi-squared approximation may be incorrect in: chisq.test(matrix(c(9, 12, 6, 3, 4, 9, 11, 5), ncol = 4, byrow = TRUE)) 


・ 手法の解説ページ
・ 直前のページへ戻る  ・ E-mail to Shigenobu AOKI