コンテンツにスキップ

第08回 検定の多重性問題

11/24(火)Ⅲ講 13:00〜14:40・B402教室

たくさん試せば、偶然の「有意」はいくらでも出る


考え方をガイドで確かめる

この回の考え方は、統計の考え方ガイドの「仮説検定とp値」でも解説しています。霊長類のデータを動かしながら確かめられます。

この回のゴール

  • 検定を繰り返すと 偽陽性(第一種の誤り)が累積 することを理解する
  • ファミリーワイズ・エラー率 \(1-(1-\alpha)^m\) を説明できる
  • p-hacking(有意が出るまで試す・有意なものだけ報告)の危うさを見抜く
  • 多重比較補正(ボンフェローニ)と 事前登録 という対策を知る
  • 発展:\(1-(1-\alpha)^m\) を導き、ボンフェローニ補正が 独立を仮定せずに 効く理由を説明できる

到達目標との対応:G2(p値の限界・統計的誤用の批判的検証) の中核。


1. 効果ゼロでも、20色のうち1つは「有意」になる

有名な風刺漫画(xkcd "Significant"):「緑のゼリービーンズはニキビの原因だ!(p<0.05)」。20色を1つずつ調べたら、緑だけ偶然 p<0.05 になった、というオチだ。

Colabで再現する。20色すべて 本当は効果ゼロ(食べた群と食べない群が同じ分布)なのに、t検定すると 有意な色が出てしまう。これを「緑が原因だ」と報告したら完全な誤りだ。

なぜか。1回の検定で偶然有意になる確率は5%。だが 20回もやれば、どれか1つが偶然5%を引く確率はぐっと上がる。

先に定義 ―― 検定の言葉

  • 帰無仮説 \( H_0 \):「差がない」「効果がゼロ」という、棄却したいほうの仮説。
  • 対立仮説 \( H_1 \):「差がある」という、本当に主張したいほうの仮説。
  • 有意水準 \( \alpha \):帰無仮説が正しいのに棄却してしまう確率の上限。ふつう 0.05。
  • 有意である:検定統計量が、帰無仮説のもとではめったに出ない領域(棄却域)に入った、ということ。

なぜ「差がない」のほうを立てるのか

主張したいのは「差がある」なのに、立てるのは「差がない」。わざわざ回りくどい。理由は2つある。

理由1:仮説は、偽であることは示せても、真であることは示しにくい。

「朝顔が咲くのは、周りが明るくなるからだ」が正しいと示すには、気温のせいではない・暗い時間の長さのせいではない……と、あらゆる対抗仮説を潰さなければならない。しかも潰し切れたかどうかが分からない。 一方「暗いままでも咲く」が1例でも見つかれば、正しくないことは示せる。反証のほうが、はるかに易しい。 だから「差がない」のほうを立てて、それを壊しにいく。

理由2:2種類ある間違いのうち、片方だけを自分で決めたいから。

2つを対置する形にすると、有意水準 \( \alpha \) が「無い差を『あった』と言ってしまう確率」そのものになる。つまり 自分で決め打てるほうの間違いを、帰無仮説の側に寄せている。 もう一方(ある差を見逃す確率)は決め打てない ―― これが第9回の検出力の話になる。

だから、言えることは限られている

帰無仮説を棄却できても、言えるのは「帰無仮説は採用できない」までである。対立仮説が正しいと積極的に証明したわけではない。 そして棄却できなかったときに言えるのは「差があるとは言えない」であって、「差がない」ではない(→第9回)。

この「言えることの狭さ」を忘れると、本節以降の多重比較の問題がなぜ深刻なのかも見えなくなる。もともと1回の検定で言えることは、それほど強くない。


2. 偽陽性が積み上がる ―― ファミリーワイズ・エラー

効果ゼロのとき、1回の検定で有意になる確率は \(\alpha=0.05\)。独立に \(m\) 回検定して 少なくとも1回は偽陽性が出る 確率は:

\[1-(1-\alpha)^{m}\]
検定回数 \(m\) 少なくとも1つ偽陽性(実測 / 理論)
1 5% / 5%
5 23% / 23%
10 40% / 40%
20 65% / 64%

20回検定すれば、効果ゼロでも6割超で「有意」が出る。「たくさん調べて、有意だったものだけ報告する」のは発見ではなく、偶然を拾っているだけ。これを p-hacking と呼ぶ。

導出①:ファミリーワイズ・エラー率 \(1-(1-\alpha)^m\) はどこから来るか

効果がゼロ(帰無仮説が正しい)のとき、1回の検定で有意になってしまう確率は \(\alpha\)。裏を返せば、偽陽性を出さない確率は \(1-\alpha\) である。

\(m\) 回の検定が互いに独立なら、\(m\) 回すべてで偽陽性を出さない確率は掛け算でよい。

\[\Pr(\text{1回も偽陽性なし}) = (1-\alpha)^{m}\]

知りたいのは「少なくとも1回は偽陽性」なので、余事象を取る。

\[\mathrm{FWER} = 1-(1-\alpha)^{m}\]

\(\alpha=0.05\) なら \(m=5\) で \(0.226\)、\(m=10\) で \(0.401\)、\(m=20\) で \(0.642\)。上の表の理論値はこれである。

数値で確かめる:帰無仮説の下では p 値は 0 から 1 の一様分布に従う。20個の一様乱数を20万組つくり「少なくとも1つが 0.05 未満」の割合を数えると 0.6433(理論値 0.6415)。

\(m\) 乗にできるのは『独立』のときだけ

掛け算で \((1-\alpha)^m\) とできるのは、\(m\) 回の検定が互いに独立なときに限る。実際の多重比較は同じデータを共有しているので、ふつう独立ではない。

極端な例として、20個の検定が完全に連動していれば、どれか1つが有意になる確率は \(m\) によらず \(\alpha=0.05\) のままである(実際に試すと 0.0501)。

つまりこの式は上限に近い目安であって、どんな場面でも成り立つ等式ではない。本当の FWER は、相関の強さに応じて \(\alpha\) と \(1-(1-\alpha)^m\) の間のどこかに来る。

使った数学:独立な事象の確率の積、余事象(高校の確率)。


3. 対策 ―― 多重比較補正(ボンフェローニ)

\(m\) 回検定するなら基準を厳しくする。最も簡単な ボンフェローニ補正 は有意水準を \(\alpha/m\) にする(20回なら \(0.05/20=0.0025\))。

20回検定での偽陽性率
補正なし(各回 α=0.05) 64%
ボンフェローニ補正(α=0.0025) 5%(目標に戻る)

補正すれば偽陽性率は5%前後に戻る(より緩やかな FDR 制御などもある)。だがもっと大事なのは、そもそも有意が出るまで検定を繰り返さないこと。

導出②:ボンフェローニ補正が効く理由 ―― こちらは独立を仮定しない

\(A_i\) を「\(i\) 番目の検定が偽陽性になる」という事象とする。知りたいのは、どれか1つでも起きる確率 \(\Pr(A_1\cup\cdots\cup A_m)\) である。

ここでブールの不等式(和事象の確率は、各事象の確率の和を超えない)を使う。

\[\Pr\!\left(\bigcup_{i=1}^{m} A_i\right) \;\le\; \sum_{i=1}^{m}\Pr(A_i)\]

これは「重なっている分だけ、単純な足し算は数えすぎになる」というだけの事実で、\(A_i\) どうしの関係を何も仮定していない。

各検定の有意水準を \(\alpha/m\) にすれば \(\Pr(A_i)=\alpha/m\) なので、

\[\mathrm{FWER} \;\le\; m\cdot\frac{\alpha}{m} \;=\; \alpha\]

20回なら \(0.05/20=0.0025\)。これで FWER は 5% 以下に抑えられる。

導出①との違いが、ここにある

導出①は独立を仮定して等式を出した。導出②は何も仮定せずに不等式を出している。検定どうしがどれだけ絡み合っていても、ボンフェローニは必ず \(\alpha\) 以下を保証する。簡単な割に強いのはこのためである。

代償は保守的になること。不等式なので、実際の FWER は \(\alpha\) よりかなり小さくなることが多い。基準を厳しくしすぎた分、本当にある差を見逃しやすくなる(検出力が下がる)。より緩やかな FDR 制御などが使われるのは、この代償を軽くするためである。

数値で確かめる:20個の検定を3通りの相関構造でつくり、それぞれ20万回試した。

検定どうしの関係 補正なしの FWER ボンフェローニ後
完全に独立 0.6400 0.0488
相関あり(\(\rho=0.5\)) 0.4192 0.0356
完全に連動 0.0501 0.0028

補正なしの列は相関の有無で 0.05 から 0.64 まで大きく動くのに、補正後はどの場合も 0.05 を超えていない。同時に、下の行ほど 0.05 から遠い ―― これが「保守的」ということである。

使った数学:ブールの不等式(確率の劣加法性)。集合の和と包含関係(高校の集合)。

導出③:p-hacking は、式の中の \(m\) を見えなくする操作である

導出①の \(m\) は「実際に行った検定の回数」であって、「報告した回数」ではない。ここがすべての鍵になる。

有意が出るまで条件を変えて試し、当たった1つだけを報告したとする。読み手には \(m=1\) に見えるが、真の \(m\) は試した回数である。

\[\text{読み手が思う FWER}=1-(1-0.05)^{1}=0.05 \qquad \text{本当の FWER}=1-(1-0.05)^{m}\]

裏で何回試していたかで、本当の値はこう変わる。

裏で試した回数 \(m\) 本当の FWER
1 0.050
3 0.143
5 0.226
10 0.401
20 0.642
50 0.923

50回試して1つだけ報告すれば、効果がまったくなくても9割方「有意」が手に入る。

HARKing・チェリーピッキング・optional stopping は、どれも \(m\) を増やしながら、読み手からは \(m\) を隠す操作である。補正しようにも、補正する側が真の \(m\) を知らない。だからボンフェローニでは防げない。

ここから次節の対策が出てくる。データを取る前に仮説と方法を固定して公開すれば、\(m\) が事前に確定し、後から隠せなくなる。

使った数学:導出①と同じで、新しい数学は使っていない。効いているのは、式の \(m\) が何を指しているかという読み方である。


4. もっと根本の対策 ―― 事前登録

p-hacking には補正だけでは防げない巧妙な形がある。

  • HARKing:結果を見てから「最初からこの仮説でした」と後付けする
  • チェリーピッキング:有意だったサブグループ・指標だけを報告する
  • optional stopping:有意になるまでデータを足し続ける

これらの根本対策が 事前登録(pre-registration) ―― データを取る 前に「どの仮説を・どの方法で検定するか」を公開して固定し、後出しを封じる。

統計的誤用を見抜く目

「有意差が出ました(p<0.05)」と聞いたら、まず問う ―― 『それ、何回検定したうちの1つ?』『仮説は先に決めてあった?』。多くの“発見”は、たくさん試した中のまぐれ当たりだ。これを疑えることが、第9回(効果量とp値批判)へとつながる。


今日のまとめ

ポイント 中身
多重性問題 検定を \(m\) 回繰り返すと、偽陽性確率は \(1-(1-\alpha)^m\)(20回で約64%)
p-hacking 有意が出るまで試す/有意なものだけ報告する。偶然を発見と偽る
ボンフェローニ補正 有意水準を \(\alpha/m\) に厳しくして偽陽性を抑える
事前登録 データを取る前に仮説と方法を固定し、後出しを封じる

今日の課題(Moodle提出)

配点:100点(選択40点 + 記述60点)/ 提出先:Moodle / 提出期限:次回授業の開始時刻まで

第8回のColabノート 08_multiple.ipynb を上から実行し、結果を見たうえで答えること。


パートA:選択問題(各10点 ×4=40点)

A1. 本当は効果がゼロのとき、有意水準5%で 独立に20回 検定すると、「少なくとも1回は有意(偽陽性)になる」確率に 最も近い のは?

  • (ア) 約 5% (イ) 約 36% (ウ) 約 64%

A2. 「p-hacking」の説明として 最も適切 なのは?

  • (ア) データを取る前に仮説と分析方法を公開して固定すること
  • (イ) 有意な結果が出るまで検定を繰り返したり、有意だったものだけを選んで報告したりすること
  • (ウ) サンプルサイズを大きくして検定の精度を上げること

A3. 20回の検定をまとめて行うとき、ボンフェローニ補正で使う有意水準は?

  • (ア) 0.05 のまま
  • (イ) 0.05 × 20 = 1.0
  • (ウ) 0.05 ÷ 20 = 0.0025

A4. 結果を見てから「最初からこの仮説を検証するつもりだった」と後付けすることを何と呼ぶか。また、その根本的な対策は?

  • (ア) HARKing。対策は事前登録(データ取得前に仮説・方法を固定)
  • (イ) ボンフェローニ補正。対策は多重比較
  • (ウ) 第二種の誤り。対策はサンプル増加

パートB:記述問題(AIフィードバック対象・60点)

B1.(30点) 「20色のゼリービーンズを調べたら、緑だけがニキビと有意に関連していた(p<0.05)」という主張は、なぜ信用できないのか。多重性の問題を使って150〜250字程度で説明しなさい。「1回あたり5%」「20回」という数字に触れること。

B2.(30点) ある研究者が「新しい教育法で成績が上がった(p=0.04)」と発表した。この主張を鵜呑みにする前に、あなたが確認すべきことを2つ挙げ、それぞれ なぜ確認が必要か を説明しなさい。

ヒント:今日学んだ「何回検定したか」「仮説は先に決めてあったか(事前登録)」「有意なサブグループだけ報告していないか」などの観点を使う。

文字数の目安:B1・B2あわせて 300〜500字。コピペ・引き写しは評価しない。自分の言葉で書くこと。

字数は目安です。多少の過不足で減点はしません。見るのは、設問が挙げた要素(上の箇条書き)が書けているかどうかです。ただし要素が抜けていれば、その分は引きます。

次回予告

第9回「効果量とp値批判」。今度は逆に「n=100万なら、無意味な差でも p<0.001 になる」 ―― 有意であることと、重要であることは、まったく別の話だ。