例題:
「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))