例題:
「A,B 薬の治療効果を比較した結果が表 3 のように与えれれている。2 群の母代表値の差を有意水準 5% で両側検定しなさい。」
| 不変 | やや有効 | 有効 | 著効 | 合計 | |
|---|---|---|---|---|---|
| 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))