ダネット検定をするには?

にほんブログ村 科学ブログ 数学へ

ダネット検定 Dunnett testをするにはどうしたらよいか?

ダネット検定は、比較対照群といくつかの実験群を多重比較する方法。

比較対照群との比較を繰り返すのは不適切なので、ダネット検定が必要になる。

統計ソフト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()で群間差の信頼区間も求められる。