ダネット検定は、比較対照群といくつかの実験群を多重比較する方法。
Rでダネット検定をするにはどうしたらよいか?
Rでダネット検定をするには?
まずmultcompパッケージをインストール。
インストールは一回だけでOK。
install.packages("multcomp")
次にmultcompを呼び出す。
library(multcomp)
今回、例としてwarpbreaksというデータを使う。
機織りにおいて、tension(緊張、張り、テンション)の違いによって、warpbreaksがいくつ起きるかというデータを分析する。
ちなみにWarpは縦糸。横糸はWeftという。
手順としては、まず、一元配置分散分析ANOVAを行う。
次に、ANOVAのオブジェクトを使ってダネット検定をする。
この流れになる。
amodがANOVAのオブジェクトだ。
General Linear Hypothesesを分析するglht()で、ダネット検定を実行する。
linfct=のあとにmcp()の中に、多重比較する変数と方法を書く。
今回はtensionをDunnettで比較する。
boxplot(breaks ~ tension, data = warpbreaks) amod <- aov(breaks ~ tension, data = warpbreaks) glht.res <- glht(amod, linfct = mcp(tension = "Dunnett")) summary(glht.res)
tension(緊張、張り)はL(Low)、M(Middle)、H(High)の三種類。
箱ひげ図にしてみると、Lが多くて、M、Hへtensionが高くなると数が減る傾向がある。
ダネット検定の結果は、MもHもLに比べて統計学的有意で、breaksの数はどちらもLに比べて少ない。
MはLに比べて平均10個少ない。
HはLに比べて平均約15個少ない。
warpbreaksを予防するなら、Lはやめておいたほうがよい。
> summary(glht.res) Simultaneous Tests for General Linear Hypotheses Multiple Comparisons of Means: Dunnett Contrasts Fit: aov(formula = breaks ~ tension, data = warpbreaks) Linear Hypotheses: Estimate Std. Error t value Pr(>|t|) M - L == 0 -10.00 3.96 -2.525 0.027536 * H - L == 0 -14.72 3.96 -3.718 0.000978 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Adjusted p values reported -- single-step method)
Rでダネット比較の差の信頼区間を求めるには?
confint()で求められる。
MとLの差は、平均がー10で、95%信頼区間下限がー19.0094、上限が-0.9906。
HとLの差は、平均がー14.7222で、信頼区間下限がー23.7316、上限がー5.712。
ともに信頼区間の上限が0を下回っていて、統計学的有意に異なることと一致している。
> confint(glht.res) Simultaneous Confidence Intervals Multiple Comparisons of Means: Dunnett Contrasts Fit: aov(formula = breaks ~ tension, data = warpbreaks) Quantile = 2.275 95% family-wise confidence level Linear Hypotheses: Estimate lwr upr M - L == 0 -10.0000 -19.0094 -0.9906 H - L == 0 -14.7222 -23.7316 -5.7129
まとめ
Rでは、multcomp パッケージの glht() を使えば、簡単にダネット検定ができる。
confint()で群間差の信頼区間も求められる。
コメント