多重比較

臨床データの解析、特に経時データの解析をする際に気を付けなければいけないのが検定の多重性です。

検定のαエラーは「ほんとうは差が無い(帰無仮説が真)データなのに間違って差があるといってしまう確率」です。

5%の有意水準(α=0.05)の下で帰無仮説が真のデータを100個検定すると、5個は有意になります。

例1.例えば5時点の経時データで、全ての時点で差がないとします。

その5時点全てを対比較すると、5C2の10通りあります。

この10通りを検定すると期待的に0.5個は有意になり、αエラーに換算すると1-(0.95)^10=0.4になります(つまり40%の確率で第一種の過誤が起こる)。

例2.さらに、変数(検査値)が10個あれば、10検査値×経時10通り=100(回)検定することになりますので、期待的に5個は有意になります。

αエラーは1-0.95^100=0.99、つまり99%の確率で...(ry

このような現象をαエラーの増大などと言いますが、それを解消するのが多重性の調整です。


多重性の調整方法は大きく分けて2種類あります。

  • FWERの調整(Family Wise Error Rate)
  • FDRの調整(False Discovery Rate)

FWERはさっきの例でいうと、例1の5時点の対比較のなかでαエラーを名義水準(5%)に保つということ。

方法としては以下のようなものがあります。

    • Bonferroni法
      • P値を検定した回数でかけて、有意水準(5%)と比較する、簡単に手計算でできるけど他の方法より有意になりにくい
    • Tukey法
      • 対比較のときに利用する方法
    • Dunnett法
      • 対照群と他の群の比較に利用、経時データなどで第1時点とその後を比較したいときなど
    • Williams法
      • 対照群と他の群の比較だが、単調変化しているという仮定が入る。第1時点と比較して、第○時点以降は全て差がある場合なと

FDRはBenjaminiとHockbergが1995年に提唱した新しい概念で、主に遺伝子の分野で利用されている方法です。

定義は「有意になった仮説のうち、間違って検出された仮説の割合の期待値が有意水準以下になるようにする」というものです。

例えば10,000回FDR=0.05水準で検定して100個有意になったとしたら、期待的に5個は間違っているのです(これをFWER=0.05で調整しようとすると、有意になる変数はほとんど無いでしょう)。


Rで解析する場合はFWERではmultcompというパッケージがあります。

以下解析例です。

breaksという変数をtensionで説明したいので、まず箱ひげ図を確認。

f:id:isseing333:20100921143422j:image

水準Lを対照として、Dunnett法で調整したP値は次のようになる。

M - L == 0   -10.00       3.96  -2.525 0.027536 *  
H - L == 0   -14.72       3.96  -3.718 0.000978 ***

この場合は、調整しても両方とも有意に下がっているようです。

対比較の場合はTukeyにすれば良くて、結果は次のようになります。

M - L == 0  -10.000      3.960  -2.525  0.03847 * 
H - L == 0  -14.722      3.960  -3.718  0.00144 **
H - M == 0   -4.722      3.960  -1.192  0.46311   

HとMはそんなに統計的には差があるといえないみたい。


Rプログラムはこちら↓

library("multcomp")

#breaks変数をtensionで説明したい
plot(warpbreaks[,c(3,1)])

#モデルの指定
amod <- aov(breaks ~ tension, data = warpbreaks)

#多重性の調整をしたP値の算出
amod.du <- glht(amod, linfct = mcp(tension = "Dunnett"))
summary(amod.du)

amod.tu <- glht(amod, linfct = mcp(tension = "Tukey"))
summary(amod.tu)

ページTOPへ