はたの授業サイト(龍谷大学社会学部)

多重比較検定

本章で用いる実習用ファイル
CDEFG
1facultytime因子偏差平方残差偏差平方全体偏差平方
2science193379.70151.7851.35
3law166268.8511.82393.39
4science293379.707687.7811484.55
5social21524.841166.22850.66
μ国B大学スマートフォン利用時間調査データ
学部別利用時間平均値
sciencelawsocialliteratureagricultureeconomy
205.32169.4418085171.36194.70178.36

分散分析は複数グループの集合の中で、カテゴリにより(グループが「原因」となって)、平均が異なる、ということを示す(ex.血液型によって判定結果が変わる!)。マクロな視点。

その際(あるいはそれとは別に)複数カテゴリの集合の中で具体的にどの2グループの平均差が有意なのかを調べたくなる(A型とB型には差があるのだろうか?それ以外は?)。ミクロな視点。それには分散分析は役に立たず、さりとて通常の平均の差の検定は使えない(多重比較)。

2変数の比較を組み合せるのは「検定の繰り返し」となり、有意性が不当に出やすくなる。

多重検定

※分かりやすくするために有意水準α = 0.1とする。

集合A,B,Cの中から(対立)仮説「B ≠ C」を検定したい。

このとき「A ≠ B」「B ≠ C」「C ≠ A」、少なくともどれか一つを誤って有意判定する確率は1 - (1 - 0.1)^3→0.271である。つまり危険度0.271となり、有意水準0.1を上回ってしまう。

「いや、待て。おかしいやん。オレは「B ≠ C」だけしか言ってないがな。他の組合せの話なんてしてへんやん。なんでB,Cの話しかしてないのに他の組合せの確率関係あるねん」

「では君はA,B,C三つある中でなんでそのB,Cの組合せだけに着目したのかね?君はこっそりデータを見て、B ≠ Cに有意差が出ることを確認した上で、「B ≠ C」という仮説を立てたのであって、もしB ≠ Cには有意差が出ず、A ≠ Cに有意差が出たら今度はそれを仮説に立てて、君は有意性を主張するんじゃないのか?君は三つの組み合わせの中でどれか一つでも有意であればそれを持ち出して、有意性を主張することが出来る立場にいるのだから、逆にその三つの仮説の持つリスクをすべて背負う義務もあるのだよ」(超早口で)

「ひぃ!」

本当に仮説を立てる前にこっそりデータを確認したかどうかはこの際関係がない。当該組合せだけに着目する根拠をデータの外部で説明できれば2変数間の平均の差の検定で構わない。でも例えば「経済学部・法学部・理工学部・文学部・社会学部」があるなかで文学部と理工学部だけに着目する理由を説明するのは結構大変。というので、セットの中から二組を比較する場合、多重比較となるケースはかなりある。

というわけで多重比較なら結果を補正しなければならない。そのために様々な手法が開発されている。代表的な方法をかいつまんで紹介する。

p値を求めた後で修正する方法

検定を重ねれば、それだけ危険度が上がってしまうので、検定回数に応じてp値を修正する。

Bonferroniの調整
  • 検定統計量に何をおくかは定めていない
  • 「p値 * 検定回数」とする(=有意水準/検定回数)
    有意水準0.1の検定を3回繰り返す → (1-0.1/3)^3 = 0.9032963 ほぼ0.9となる。
  • 検定の回数が増えると有意性が出にくい(検出力が低い)
Holm法、Benjamini & Hochberg(BH)法
  • Bonferroni調整があまりに検出力が低いのを修正したもの。
p値を求める際の分布を変更する方法

p値を求める際、群数によって有意性が出にくくなるような分布を用いる。

Tukey-Kramer法
  • Studentのt検定を拡張して検定統計量を求める(分散分析の考え方を援用)
  • t分布の代わりにグループ数に影響される分布(スチューデント化した範囲(studentized range)の分布)を用いる
  • 等分散性を前提
Games-Howell法
  • Welchのt検定を用いて検定統計量を求める
  • t分布の代わりにスチューデント化した範囲の分布を用いる
  • 不等分散に対して頑健

なお上記検定はいずれも本質的には分散分析とは別の独立した検定である(検出力を上げるために、分散分析の結果を利用することもある)。分散分析の結果にかかわらず、この検定を行うことは可能である。ただ多重比較検定で有意であったとしても、検証群中のある二群の平均の差が有意であったということを論証するに過ぎず、その群を分割したカテゴリーによって(カテゴリーが「原因」で)平均が異なるという主張は分散分析から得られるものである。その意味で多重検定と分散分析はミクロとマクロで相互補完的な関係にあると言える。

分散分析
あるグループの集合のなかで、グループ間に平均差が生じるのはそのグループの分け方が原因である。
多重比較検定
あるグループの集合のなかで、特定の組み合わせにおいて平均差が異なっている。

t検定 + Bonferroni調整

通常のt検定を用いる。

t検定のp値(両側)に検定回数を掛けたものをp値とする。ただしp値が1を超える時には1とする。

  • p ← (1 - pt(t,自由度))*2*検定回数

まずは学部すべての組み合わせで独立した2グループ間での平均差の検定を行う。本来Welch法を用いるべきだが、Excelで何回もWelch検定をするのは面倒なので(!)、今回はBonferroni法理解のためと割り切って簡便にStudent法を用いる。

  • 共通分散 ← 各組み合わせグループの共通分散
  • 標準誤差 ← SQRT(共通分散 / 集団1のサンプルサイズ + 共通分散 / 集団2のサンプルサイズ)
  • 検定統計量t ← ABS(集団1の平均 - 集団2の平均)/標準誤差
  • 自由度 ← 各組み合わせグループの自由度の総和
IJKLM
1Ndfmeanu2
2=UNIQUE(faculty)150149205.323076.57
3law8079169.441222.63
4social6059180.855744.67
5literature8079171.364844.44
6agriculture5049194.703726.95
7economy8079178.36560.97
8全体500499185.833223.81
  1. グループ全部の組み合わせ分、検定を行わなければならない。グループ数(COUNTA(I$2#))から2グループを選び出す組み合わせを求める。
    O
    1検定回数
    2=COMBIN(COUNTA(I$2#),2)
  2. 全15個の組み合わせについてt検定を行う。
  3. t検定で求めたp値(調整前)検定回数を掛ける。ただしその値が1を超えたときには1にする
    IJKLMNOPQRS
    17faculty1N1faculty2N2平均差分散自由度標準誤差t調整前p調整後p
    18agriculture50economy8016.34 1772.95 128=SQRT(N18/J18+N18/L18)2.15 3.33%=MIN(1,R18*検定回数)
    19agriculture50law8025.26 2181.31 1288.42 3.00 0.32%4.86%
    20agriculture50literature8023.34 4416.65 12811.98 1.95 5.36%80.42%
    21agriculture50sicence150-10.62 3237.52 1989.29 -1.14 25.44%100.00%
    22agriculture50social6013.85 4829.22 10813.31 1.04 30.03%100.00%
    23economy80law808.93 891.80 1584.72 1.89 6.06%90.85%
    24economy80literature807.00 2702.70 1588.22 0.85 39.57%100.00%
    25economy80sicence150-26.96 2204.93 2286.50 -4.15 0.00%0.07%
    26economy80social60-2.49 2777.19 1389.00 -0.28 78.27%100.00%
    27law80literature80-1.93 3033.53 1588.71 -0.22 82.53%100.00%
    28law80sicence150-35.882434.19 2286.83-5.250.00%0.00%
    29law80social60-11.41 3155.97 1389.59 -1.19 23.63%100.00%
    30literature80sicence150-33.96 3689.12 2288.41 -4.04 0.01%0.11%
    31literature80social60-9.49 5229.32 13812.35 -0.77 44.37%100.00%
    32science150social6024.47 3833.39 2089.46 2.59 1.04%15.53%

Bonferroni法はそれ由来では第一種過誤を犯しづらい方法である。それだけに有意性の検出力が低く、使いづらい。

※ただし今回は前提となる検定でStudentのt検定を用いているため、それ由来の第一種過誤が出るリスクは十分にある。

t検定拡張 + Bonferroni調整

通常の2グループ間のt検定を修正し、全グループを対象として共通分散と自由度を計算する。

SPSSの「その後の多重比較」で「Bonferroni」を選択した時にはこの方法が用いられているようだ。

  • 共通分散 ← 全グループの「残差分散
  • 標準誤差 ← SQRT(共通分散 / 集団1のサンプルサイズ + 共通分散 / 集団2のサンプルサイズ)
  • 検定統計量t ← abs(集団1の平均 - 集団2の平均)/標準誤差
  • 自由度 ← 全グループの自由度の総和

Studetのt検定を用いるよりは非等分散に対して頑健であるようだ(ただし本来は等分散を前提とした検定である)。その一方で全体としての検出力は上がる。

分散分析
IJKLMNO
7要因偏差平方和自由度分散FP値(因子>残差)η2
8因子(因子間)56914.73156914.7318.270.00%0.04
9残差(因子内)1551768.494983116.00
10合計1608683.224993223.81
IJKLMNOPQ
17faculty1N1faculty2N2平均差標準誤差t調整前p調整後p
18agriculture50economy8016.34=SQRT($L$13/J18+$L$13/L18)1.64 10.11%100.00%
19agriculture50law8025.26 9.95 2.54 1.14%17.09%
20agriculture50literature8023.34 9.95 2.35 1.93%29.02%
21agriculture50science150-10.62 9.01 -1.18 23.90%100.00%
22agriculture50social6013.85 10.56 1.31 19.05%100.00%
23economy80law808.93 8.72 1.02 30.67%100.00%
24economy80literature807.00 8.72 0.80 42.27%100.00%
25economy80science150-26.96 7.64 -3.53 0.05%0.68%
26economy80social60-2.49 9.42 -0.26 79.19%100.00%
27law80literature80-1.93 8.72 -0.22 82.54%100.00%
28law80science150-35.88 7.64 -4.70 0.00%0.01%
29law80social60-11.41 9.42 -1.21 22.64%100.00%
30literature80science150-33.96 7.64 -4.45 0.00%0.02%
31literature80social60-9.49 9.42 -1.01 31.45%100.00%
32science150social6024.47 8.43 2.90 0.39%5.78%

Tukey-Kramer

先ほどの拡張t検定と同じやり方で検定統計量を求める。

  • 共通分散 ← 全グループの「残差分散
  • 標準誤差 ← SQRT(共通分散 / 集団1のサンプルサイズ + 共通分散 / 集団2のサンプルサイズ)
  • 検定統計量t ← abs(集団1の平均 - 集団2の平均)/標準誤差

このtに2の平方根(SQRT(2))を掛けたものはスチューデント化した範囲の分布(Q 分布)という確率分布に従う。

Q分布はグループの数と自由度(残差自由度)によって決まる(グループ数が増えれば同じ検定統計量のp値が大きくなる)。

  • 自由度 ← 全グループの自由度の総和
  • p ← 1 - Q.DIST(t*SQRT(2), グループの数, 自由度, TRUE)
    グループ数が2の時、1 - Q.DIST(t*SQRT(2), 2, df, TRUE) == (1 - T.DIST(t, df, TRUE))*2

Bonferroni法よりも検出力が上がる。

では例によって実際にExcelでやってみよう、としても出来ない。Q.DIST()なんて関数がExcelには用意されていないからである(!)。

この検定も等分散を前提とした検定である。

Games-Howell

Welchのt検定の検定統計量とTukey法の「スチューデント化した範囲の分布」を用いる。

  • 標準誤差 ← SQRT(集団1の分散 / 集団1のサンプルサイズ + 集団2の分散 / 集団2のサンプルサイズ)
  • 検定統計量t ← ABS(集団1の平均 - 集団2の平均)/標準誤差
  • 自由度 ← 集団1,2によるWelchの等価自由度
  • p ← 1 - Q.DIST(t*SQRT(2), グループの数, 自由度, TRUE)

等分散を前提としない検定である。Welchのt検定+Bonferroni法よりも検出力が高い。これが本命。が、こちらもQ.DIST()がExcelにない以上、Excelでは使えない。

といいうわけで多重比較検定を実用的に行う際にはRを用いるとよい(cf.Rを用いた分散分析と多重比較検定)