第08回 検定の多重性問題¶
11/24(火)Ⅲ講 13:00〜14:40・B402教室
たくさん試せば、偶然の「有意」はいくらでも出る
今日のリンク
- 📊 スライドを開く
- 📓 Colabノートを開く(08_multiple.ipynb)
- 📝 課題を提出する(Moodle・第8回)
- 課題の本文はこのページの末尾にあります
考え方をガイドで確かめる
この回の考え方は、統計の考え方ガイドの「仮説検定と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回は偽陽性が出る 確率は:
| 検定回数 \(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\) 回すべてで偽陽性を出さない確率は掛け算でよい。
知りたいのは「少なくとも1回は偽陽性」なので、余事象を取る。
\(\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)\) である。
ここでブールの不等式(和事象の確率は、各事象の確率の和を超えない)を使う。
これは「重なっている分だけ、単純な足し算は数えすぎになる」というだけの事実で、\(A_i\) どうしの関係を何も仮定していない。
各検定の有意水準を \(\alpha/m\) にすれば \(\Pr(A_i)=\alpha/m\) なので、
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\) は試した回数である。
裏で何回試していたかで、本当の値はこう変わる。
| 裏で試した回数 \(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 になる」 ―― 有意であることと、重要であることは、まったく別の話だ。