戻る     次へ     目次へ

9.5. 多重比較法
医学と統計(32)〜(34), (40,41), (50,51) 投稿から。

一元分散分析(ANOVA)は 2つ以上の群(水準)での母平均について差があるかどうかを検定しますが,どの水準間に差があるかは 分かりません。そこで多重比較(multiple comparison)を行うのですが、
多重比較には、
・事前比較(planned comparisons)としてア・プリオな比較(a ptiori comparisons)と呼ばれるもの、
・事後比較(post-hoc comparisons)としてア・ポステリオリな比較(a posteriori comparisons)と呼ばれるもの、

があり、
ANOVA が有意であれば事後比較を行うとする考え方が一般に言われています。しかし、ANOVA と事後比較は異なる分析であるので、 ANOVA が有意かどうかに関係なく事後比較を行うという考え方もあります 。
多くは、シェフェ法(Sheffe)を除き、ANOVA で有意でなければ多重比較も有意でないとは言えません。

例題で統計解析環境「R」の方法を見てみましょう。

「血清コレステロール値の時系列変化」、医学と統計(34)は脱コレステロール剤投与による被験者6名の効果を見たものです。 (t0=投与前、t1〜t4=投与1ヶ月〜4ヶ月後)

「R」でデータフレームを次により作ります。

dat<- data.frame(
time=factor(c(rep(1,5),rep(2,5),rep(3,5),rep(4,5),rep(5,5),rep(6,5)),
labels=c("t0","t1","t2","t3","t4","t5")),
value=c(
220 , 219 , 235 , 217 , 205,
224 , 230 , 186 , 179 , 172,
235 , 209 , 190 , 190 , 142,
200 , 195 , 180 , 160 , 155,
265 , 245 , 252 , 225 , 208,
180 , 184 , 155 , 136 , 138))
dat

dat.frame を確認して下さい。

このデータフレームで多重比較を行ってみます。
以下の方法( Dunnett , Williams , Tukey's HSD , Holm )は”Holm” を除き、いずれも正規分布と等分散を仮定して行います。

9.5.1. ダネットの方法(Dunnett)
データフレームの「time = t0」を対照として、他群との母平均の大きさの違いをみる手法です。

「R」コマンド
dun1 <- aov(value ~ time, data=dat)
summary(dun1)

「R」の出力結果は次の通りです。
> summary(dun1)
.....Df Sum Sq Mean Sq F valuePr(>F)
time 5 20527 4105.37.1941 0.0003067
Residuals 24 13696 570.6 ..........

上記の一元配置分散分析表の結果から、「time」は高度に有意(p=0.0003)であると言えます。
よって、
事後比較(post-hoc comparisons)として、投与前(t0)と他群を比較し有意な他群を調べる必要があります。
そこで、
引き続き、次の「R」コマンドを実行します。

library(multcomp)
dun2 <- glht(dun1, linfct = mcp(time = "Dunnett"))
summary(dun2)

Dunnnettの結果は次の通りです。

Simultaneous Tests for General Linear Hypotheses
Multiple Comparisons of Means: Dunnett Contrasts
Fit: aov(formula = value ~ time, data = dat)
Linear Hypotheses:
..........Estimate Std. Error t value Pr(>|t|)
t1 - t0 == 0 -21.00 15.11 -1.390 0.51065
t2 - t0 == 0 -26.00 15.11 -1.721 0.31698
t3 - t0 == 0 -41.20 15.11 -2.727 0.04654
t4 - t0 == 0 19.80 15.11 1.311 0.56385
t5 - t0 == 0 -60.60 15.11 -4.011 0.00226

(Adjusted p values reported -- single-step method)

「Estimate」の95%信頼限界は、
confint(dun2, level=0.95)

として、次の様になります。

Linear Hypotheses:
..........Estimate lwrupr
t1 - t0 == 0 -21.0000 -61.7186 19.7186
t2 - t0 == 0 -26.0000 -66.7186 14.7186
t3 - t0 == 0 -41.2000 -81.9186 -0.4814
t4 - t0 == 0 19.8000 -20.9186 60.5186
t5 - t0 == 0 -60.6000 -101.3186 -19.8814

この出力結果から、投与前(t0)に比べて3ヶ月後(t3)と5ヶ月後(t5)が有意(両側検定)となっています。
95%信頼限界(lwr , upr)で"0"を含まないこと。
よって、
5ヶ月後(t5)が高度に有意であり、脱コレステロール剤は5ヶ月で効果が見られたと判断されます。

..........Estimate lwrupr
t1 - t0 == 0 -21.0000 -61.7186 19.7186
t2 - t0 == 0 -26.0000 -66.7186 14.7186
t3 - t0 == 0 -41.2000 -81.9186 -0.4814
t4 - t0 == 0 19.8000 -20.9186 60.5186
t5 - t0 == 0 -60.6000 -101.3186 -19.8814

この出力結果から、投与前(t0)に比べて3ヶ月後(t3)と5ヶ月後(t5)が有意(両側検定)となっています。
95%信頼限界(lwr , upr)で"0"を含まないこと。
よって、
5ヶ月後(t5)が高度に有意であり、脱コレステロール剤は5ヶ月で効果が見られたと判断されます。

9.5.2. ウイリアムス(Williams) の方法
Dannettでのデータを見ると、血中コレステロール値は時系列的に減少の傾向が見られます。
この様に、一定の減少あるいは増加の傾向が見られるときは、ここでの方法を検討すると良いでしょう。
使用するデータは Dunnett の Williams では投与時(t0)より減少していることを検定しますので片側検定(alternative="less")とします。
もし、漸増なら片側検定(alternative="greater")とします。

library(multcomp)
wila1 <- aov(value ~ time, data=dat)
wila2 <- glht(wila1, alternative="less", linfct=mcp(time = "Williams"))
summary(wila2)

Williams の結果は次の通りです。

Simultaneous Tests for General Linear Hypotheses
Multiple Comparisons of Means: Williams Contrasts
Fit: aov(formula = value ~ time, data = dat)
Linear Hypotheses:
..........Estimate Std. Error t value Pr(<t)
C 1 >= 0 -60.60 15.11 -4.011 <0.001
C 2 >= 0 -20.40 13.08 -1.559 0.1174
C 3 >= 0 -27.33 12.34 -2.216 0.0366
C 4 >= 0 -27.00 11.94 -2.261 0.0328
C 5 >= 0 -25.80 11.70 -2.205 0.0376

(Adjusted p values reported -- single-step method)

この結果から、血中コレステロール値は投与3ヶ月後より減少しており、 脱コレステロール剤の効果が見られると判断されます。
この様に、一定の傾向で漸減漸増しているデータには Dunnett よりも検出力が高い方法です。

9.5.3. チューキーのHSD(Tukey's HSD:Tukey's Honestly Significant Difference)
ANOVAで有意差が認められたとき、どの組合せで有意な差があったかを判断するのなら、 ここでのTukey's HSD を用いることが出来る(Tukey-Cramer と言う)。
標本数が不揃いでも適用できる。

ANOVA で有意にならなくても Tukey's HSD で有意になれば、この方法を採用しても良いと言われている。

使用する例題は前節と同じ「dat」(data.frame)です。

「R」コマンド
Tuk1<- aov(value~ time, data=dat)
Tuk2<- TukeyHSD(Tuk1)
Tuk2

Tukey's HSD の結果は次の通りです。

Tukey multiple comparisons of means 95% family-wise confidence level

Fit: aov(formula = value ~ time, data = dat)

$time
..........diff lwruprp adj
t1-t0 -21.0 -67.7137474 25.713747 0.7323975
t2-t0 -26.0 -72.7137474 20.713747 0.5320201
t3-t0 -41.2 -87.9137474 5.513747 0.1062979
t4-t0 19.8 -26.9137474 66.513747 0.7765088
t5-t0 -60.6 -107.3137474 -13.886253 0.0060336
t2-t1 -5.0 -51.7137474 41.713747 0.9994007
t3-t1 -20.2 -66.9137474 26.513747 0.7621188
t4-t1 40.8 -5.9137474 87.513747 0.1119705
t5-t1 -39.6 -86.3137474 7.113747 0.1305433
t3-t2 -15.2 -61.9137474 31.513747 0.9113747
t4-t2 45.8 -0.9137474 92.513747 0.0569079
t5-t2 -34.6 -81.3137474 12.113747 0.2365345
t4-t3 61.0 14.2862526 107.713747 0.0056606
t5-t3 -19.4 -66.1137474 27.313747 0.7905486
t5-t4 -80.4 -127.1137474 -33.686253 0.0002407

次により、
グラフにして、95% 信頼限界で"0"を含まない組合せを見ると良いでしょう。

library(graphics)
plot(Tuk2)

9.5.4. Holmの方法
前節までの方法はいずれも正規分布と等分散を仮定して行いました。
ここでは、ノンパラメトリックにも適用できる「Holm」(Bonferroni の改良版) の方法を紹介します。
しかし、正規分布からは外れているが不等分散を保障するものではありません。

使用する例題は前節までと同じ「dat」(data.frame)です。

「R」コマンド
dat<- data.frame(
time=factor(c(rep(1,5),rep(2,5),rep(3,5),rep(4,5),rep(5,5),rep(6,5)),
labels=c("t0","t1","t2","t3","t4","t5")),
value=c(
220 , 219 , 235 , 217 , 205,
224 , 230 , 186 , 179 , 172,
235 , 209 , 190 , 190 , 142,
200 , 195 , 180 , 160 , 155,
265 , 245 , 252 , 225 , 208,
180 , 184 , 155 , 136 , 138))
dat
attach(dat)
pairwise.t.test ( value, time, p.adjust.method="holm" , data=dat)

出力結果は次の通りです。

Pairwise comparisons using t tests with pooled SD
data: value and time

..... t0 t1 t2 t3 t4
t1 1.00000 - - - -
t2 0.68695 1.00000 - - -
t3 0.12931 1.00000 1.00000 - -
t4 1.00000 0.12931 0.06910 0.00671 -
t5 0.00671 0.13475 0.24881 1.00000 0.00028

P value adjustment method: holm

ボンフェロローニ(Bonferroni )なら、次の様になります。

pairwise.t.test ( value, time, p.adjust.method="bonferroni" , data=dat)
Pairwise comparisons using t tests with pooled SD
data: value and time

..... t0 t1 t2 t3 t4
t1 1.00000 - - - -
t2 1.00000 1.00000 - - -
t3 0.17633 1.00000 1.00000 - -
t4 1.00000 0.18738 0.08637 0.00719 -
t5 0.00769 0.22459 0.46653 1.00000 0.00028

P value adjustment method: bonferroni

「Holm」と「Bonferroni」の出力結果を見ても分かるように、「Bonferroni」の検出力が低いようです。
通常は「Holm」の使用をおすすめします。

「注釈」
  1. ANOVA後の多重比較には多くの方法が開発されているが、ここで紹介した方法が基本になると思われる。
  2. ノンパラメトリック法も開発されているが極端な不等分散には注意が必要である。
  3. 新たな多重比較が次々に開発されているので、新たな情報に注意すべきである。

戻る     次へ      目次へ     TOPへ