Rによるウィリアムズ検定
R にてウィリアムズ検定 (Williams test) を行う.ウィリアムズ検定はダネット検定同様に,ひとつの対照群と複数個の処置群の平均値を比較する検定法である.ダネット検定は対照群および複数個の処置群に対して何の制約も設けていないが,ウィリアムズ検定においては,対照群および処置群の平均値を μi (i=1, 2, ..., a) とした場合に,μ1 < μ2 < ... < μa または μ1 > μ2 > ... > μa で表される単調性が存在することを仮定する.基本的にウィリアムズ検定は片側検定を想定している.ウィリアムズ検定はパッケージ multcomp の関数 glht にて実行することができる.
最初に以下のコマンドでパッケージをインストールし,そのパッケージを読み込む.既にパッケージをインストールしている場合は1行目は不要.
$ install.packages("multcomp", repos="http://cran.ism.ac.jp/") $ library(multcomp)
以下のような,サンプルサイズが5からなる対照群,それぞれ,4,6,6からなるデータX,YおよびZが得られたとき,対照群であるデータCとそれらの平均値の比較をウィリアムズ検定で行なう.この場合の帰無仮説 (H0) は対象の各2群間の平均値に差がないこととなる.有意水準は0.05と決める.
データC | 56, 48, 72, 60, 55 |
データX | 60, 62, 76, 84 |
データY | 78, 53, 62, 44, 90, 57 |
データZ | 77, 72, 83, 81, 91, 83 |
最初にデータを適当な変数 vx に格納する.
$ vx=c(56, 48, 72, 60, 55, 60, 62, 76, 84, 78, 53, 62, 44, 90, 57, 77, 72, 83, 81, 91, 83)
これらのベクトルの値に対して,順に 5,4,6,6個ずつ各グループ名を付ける必要ある.そのためにグループ名が格納される変数 fx を以下のように作る.
$ fx=factor(rep(c("C", "X", "Y", "Z"), c(5, 4, 6, 6)))
以上で読み込んだデータをウィリアムズ検定する.ウィリアムズ検定は,従属変数 vx および独立変数 fx を用いて,summary(glht(aov(従属変数 ~ 独立変数), linfct=mcp(独立変数="Williams"))) とすることで実行できる.以下のように打つ.
$ summary(glht(aov(vx~fx), linfct=mcp(fx="Williams")))
結果は以下のようになる.
Simultaneous Tests for General Linear Hypotheses Multiple Comparisons of Means: Williams Contrasts Fit: aov(formula = vx ~ fx) Linear Hypotheses: Estimate Std. Error t value Pr(>|t|) C 1 == 0 22.967 7.132 3.220 0.00842 ** C 2 == 0 14.383 6.270 2.294 0.05682 . C 3 == 0 13.863 6.035 2.297 0.05689 . --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Adjusted p values reported -- single-step method)
結果の C 1 == 0 となっている表示は,対照群であるデータCと処置群のデータXの平均値の差が0であるという帰無仮説に対して検定を行ったということを示しており,この場合,p値はあらかじめ設定した有意水準である0.05を下回っているので帰無仮説を棄却し,対照群Cと処置群Xの平均値には差が有ると結論する.
信頼区間の計算
また confint() コマンドを用いると信頼区間を算出することができる.オプション level にて表示させる信頼区間の幅を変更できる.
$ confint(glht(aov(vx~fx), linfct=mcp(fx="Williams")))
これを実行した結果は以下のようになる.結果の lwr および upr はそれぞれ下方信頼限界および情報信頼限界,すなわち信頼区間の下限値と上限値を示す.
Simultaneous Confidence Intervals Multiple Comparisons of Means: Williams Contrasts Fit: aov(formula = vx ~ fx) Quantile = 2.3614 95% family-wise confidence level Linear Hypotheses: Estimate lwr upr C 1 == 0 22.9667 6.1239 39.8094 C 2 == 0 14.3833 -0.4223 29.1889 C 3 == 0 13.8625 -0.3884 28.1134