(最終更新2025/5/5)
以前の記事で2種類の過誤について紹介した。1つは「帰無仮説は正しいのに、帰無仮説を棄却する過誤」であり、これを「第1種の過誤Type I error」と呼ぶ。2つ目は「帰無仮説は正しくないのに、帰無仮説を棄却できない過誤」であり、これを「第2種の過誤Type II error」と呼ぶ。以下にその関係性をまとめた表を再掲する。
私たちは真の状態を知りたいと願っているので、これらの過誤の可能性はできる限り小さくしたい。過誤の可能性を制御するために有意水準αと、検出力1-βを調整しているのだった。有意水準はα = 0.05、検出力は1-β = 0.8(β = 0.2)と慣習的に決められていることが多い。
上記のように過誤を起こさないように工夫が凝らされるわけだが、仮説を立てる人間が適切に仮説を立て、検証しない限り、厄介な問題が生じてしまう。この世にはたくさんの仮説がある。そのうち、割合rの帰無仮説(例:差のない仮説)は正しく、1-rの帰無仮説は間違っているとしよう。これらの仮説に対して、有意水準α、検出力1-βのもとですべて仮説検定を行うこととする。すると、検定の結果は以下のように、有意差が検出される仮説の個数が計算できる。
さて、ここで真の状態における帰無仮説の真/偽の比率r/(1-r)よりも、観測される帰無仮説の保留/棄却の比率が小さくなる状況を考える。つまり、真の状態での帰無仮説が偽である数以上に、仮説検定において帰無仮説が棄却される条件を考える。
すると、帰無仮説が真である割合がr > β/(α+β)を越えると、1-r以上の割合で、帰無仮説は棄却される。つまり、その分だけ過剰に危険率が高まることになる。
慣習に従い有意水準α = 0.05、検出力1-β = 0.8(β = 0.2)とする。すると、β/(α+β) = 0.8である。r > 0.8となると、棄却率は真の帰無仮説の割合を越えることになる。例えば、帰無仮説がr = 0.95の割合正しいとする。つまり、0.05の割合は帰無仮説が正しくなく、理想的には棄却率は5%になってほしい。棄却されるであろう帰無仮説の割合は、
0.05×0.95 + (1-0.2)×(1-0.95) = 0.0875
となる。つまり、棄却率は8.75%となり、過剰に棄却されることになる。
さらにこのとき、この棄却された仮説のうち、帰無仮説が正しい割合は
0.05×0.95/{0.05×0.95 + (1-0.2)×(1-0.95)} = 0.543
である。例えば、帰無仮説は2標本の平均値の差がない仮説であり、この帰無仮説が棄却されているにもかかわらず、54%程度の仮説は実際には差がないのである。上記の、有意水準と検出力から設定された値からかなりかけ離れた値に感じるのではないだろうか。この(帰無仮説が正しい数)/(棄却された仮説の数)は偽陽性率false positive rate(あるいはfalse discovery rate)と呼ばれる。
帰無仮説が真である割合が低ければ上記の偽陽性率が高くなる問題はかなり抑えられる。例えば、帰無仮説が真である割合が50%の時なら、
0.05×0.50/{0.05×0.50 + (1-0.2)×(1-0.50)} = 0.059
で、5%程度にまでなる。
もし、有意水準α = 0.05、検出力1-β = 0.8の下で、偽陽性率が5%以下になってほしいならば、以下の式より、帰無仮説が真である割合が43%より少ない必要がある。
α = 0.05 or 0.005、β = 0.2 or 0.02の4つの組み合わせで偽陽性率を図示したものが以下の図である。
------------------------------------------------------
r <- seq(0,1,length=200)
d <- data.frame(r)
alpha <- 0.05
beta <- 0.2
d$fdr1 <- alpha*r/(alpha*r + (1-beta)*(1-r))
alpha <- 0.05
beta <- 0.02
d$fdr2 <- alpha*r/(alpha*r + (1-beta)*(1-r))
alpha <- 0.005
beta <- 0.2
d$fdr3 <- alpha*r/(alpha*r + (1-beta)*(1-r))
alpha <- 0.005
beta <- 0.02
d$fdr4 <- alpha*r/(alpha*r + (1-beta)*(1-r))
plotn(d[,1], d[,2:5], mode = "m", type = "l", legend = T, line = T,
pch.leg = NA, lty = c(2,2,1,1),
leg.lab = c("α=0.05, β=0.2",
"α=0.05, β=0.02",
"α=0.005, β=0.2",
"α=0.005, β=0.02"),
xlab = "true null hypothesis rate",
ylab = "false positive rate",
leg.sp = 9)
------------------------------------------------------
図1 各α、βにおける偽陽性率
図1より、第2種の過誤の制御よりも、有意水準を厳しく制御することで偽陽性率を強く制御することができることがわかる。
ここで、実際には差がない仮説をたくさん立て、それをすべて検定していくとする。そして、検定結果に対して、有意水準以下になれば「効果あり」とし、そうでなければ「効果なし」と判断することを繰り返したらどうなってしまうだろうか。しばしば、有意水準をp値が下回った場合にのみ論文化され、そして「効果のあること」として報告される傾向にある(しばしば、p値主義と呼ばれる)。しかし、上記の議論から、ほとんどの帰無仮説が正しい場合、例えば95%の帰無仮説が正しいとき、偽陽性率が54%という高い値を示す。つまり、実際には「効果がある」とされたにもかかわらず、「効果がない」であろう結果がたくさん報告されてしまうことになる。先発の試験と、後発の試験の結果が一致することを再現性reproducibilityというが、上記のような現象は再現性を脅かす事柄である。筋の悪い検定を行い続けることは、再現性の危機reproducibility crisisをもたらすのである。
以上から、有意水準や検出力云々の前に、
(1)「筋の良い仮説」を立てることが非常に重要であることがわかる。「筋の悪い仮説」も、数うてばあたってしまうからだ。
続いて、(2)仮説検定のp値のみに依存して、「効果あり/なし」を判断するのは危険である。以前も話したが、p値が小さいことと、実際に(科学的に)効果があるかは別問題だ。どんなに小さい差でも、有意差が出ることもある。
そして、多重検定の話に関連するが、(3)たくさん検定をするのであれば、多重検定の補正が必須である。少なくとも、自分の仮説検定群では制御が必要である。ただし、自分以外が立てた帰無仮説もすべて制御することはできない。ゆえに、自分が検定をするときは、最低限、筋の良い仮説を立てる必要が出てくる。