本文へスキップ

多重検定と選択後推論の入口

多重検定と選択後推論の入口 のヒーロー画像
このヒーロー画像はAIで生成しています。
Part 10 / 10
  1. 1 情報幾何から検定へ進むための全体地図
  2. 2 情報幾何学は確率の地図を描く考え方
  3. 3 推定から検定へ進む前に
  4. 4 収束の違いを情報幾何で見る
  5. 5 尤度比検定を情報幾何の地図で見る
  6. 6 Wald・Score・尤度比検定を同じ地図で見る
  7. 7 信頼区間と検定は同じ不確実性を見ている
  8. 8 平均差検定と A/B テストを地図で見る
  9. 9 検出力とサンプルサイズを情報量で考える
  10. 10 多重検定と選択後推論の入口

前の記事では、検出力とサンプルサイズを、分布のずれと標本の揺れとして見ました。

今回は、その次に出てくる大事な問題を扱います。

検定を 1 回だけするなら、p 値は比較的まっすぐ読めます。

でも実際には、研究でも分析でも、次のようなことがよくあります。

  1. たくさんの仮説を同時に試す。
  2. 良さそうな特徴量だけを残す。
  3. データを見てからモデルを選ぶ。
  4. 有意になった結果だけを報告する。

このとき、p 値の読み方は変わります。

なぜなら p 値は、「どの検定をするか」が先に決まっているときの値だからです。

この記事では、多重検定と選択後推論の入口を、できるだけゆっくり整理します。

キーワードは「選んだことを無視しない」です。

p 値は 1 回の決められた検定のもとで読む

まず、p 値の基本を思い出します。

p 値は、

「帰無仮説 H0H_0 が正しいとしたら、今のデータと同じくらい、またはそれ以上に極端な結果が出る確率」

でした。

ここで大事なのは、「どの結果を極端と呼ぶか」が先に決まっていることです。

たとえば、コインを 20 回投げて、表が出すぎているかを調べるとします。

このとき、検定の前に次のことを決めます。

  1. 帰無仮説は「表の確率は 0.50.5」。
  2. 統計量は「表の回数」。
  3. 片側検定か、両側検定か。
  4. 有意水準をいくつにするか。

これらを決めてからデータを見れば、p 値はその検定の中で読めます。

逆に言えば、データを見たあとで「この見方なら有意になりそうだ」と検定を選ぶと、p 値は最初に考えていた確率ではなくなります。

ここが多重検定と選択後推論の入口です。

たくさん試すと偶然の有意が増える

有意水準を 5%5\% にするとは、かなり大まかに言えば、帰無仮説が正しいときでも 100 回に 5 回くらいは有意と判断する設定です。

1 回だけ検定するなら、この失敗の確率は 5%5\% です。

でも、同じような検定を 100 個したらどうでしょうか。

全部の帰無仮説が本当だったとしても、その中のいくつかは偶然に有意になる可能性があります。

これは、くじを 1 回引く話と 100 回引く話の違いに似ています。

1 回だけなら当たりにくいくじでも、100 回引けば当たりを見る可能性は上がります。

統計でも同じです。

「この 1 個の検定で p 値が小さい」ことと、「100 個の中から一番小さい p 値を見つけた」ことは、同じ重さでは読めません。

多重検定の偶然を手で動かす

値を動かして、検定統計量・p 値・標準誤差・情報量の見え方を確認できます。

たくさん試したときの偶然

検定を増やすと偶然の有意は急に増える

1 回ごとの有意水準が 5% でも、検定を何度も行うと少なくとも 1 つ誤って有意になる確率は大きくなります。

0 0.25 0.50 0.75 1.0 1.0 26 51 75 100 検定数 m 少なくとも 1 つ誤検出
誤検出確率 1 - (1 - 0.05)^m 50%

FWER と Bonferroni の直感

多重検定でまず出てくる考え方が FWER です。

FWER は Family-Wise Error Rate の略です。

複数の検定をひとまとまりの家族として見て、その中で「少なくとも 1 つ間違って有意と言ってしまう確率」を考えます。

FWER を抑える代表的な方法が Bonferroni 補正です。

検定が mm 個あるとします。

全体として有意水準を α\alpha にしたいなら、1 個ずつの検定では

αm\frac{\alpha}{m}

を基準にします。

たとえば、20 個の検定をして、全体の有意水準を 5%5\% にしたいなら、1 個ずつは

0.0520=0.0025\frac{0.05}{20} = 0.0025

を基準にします。

かなり厳しい基準になります。

Bonferroni の直感は、「たくさん見たぶんだけ、1 個ずつの判定を慎重にする」です。

長所は、考え方が単純で、かなり広い場面で使えることです。

短所は、検定の数が多いと厳しくなりすぎて、本当にある効果も見つけにくくなることです。

FDR と BH 法の直感

FWER は、「1 個でも間違えるのを強く避けたい」考え方です。

一方で、遺伝子解析や大量の特徴量探索のように、何千、何万もの検定をする場面があります。

そのような場面では、1 個の偽陽性も許さない基準にすると、ほとんど何も見つからなくなることがあります。

そこで出てくるのが FDR です。

FDR は False Discovery Rate の略です。

有意と判断したものの中に、どれくらい偽陽性が混ざるかを考えます。

FDR を制御する有名な方法が BH 法です。

BH は Benjamini-Hochberg の略です。

直感だけ言うと、BH 法は次のように動きます。

  1. すべての p 値を小さい順に並べる。
  2. 順位に応じて、だんだん緩くなる基準線を引く。
  3. その基準を満たすところまでを発見として採用する。

小さい p 値ほど有意になりやすいのは普通の検定と同じです。

ただし BH 法では、「何番目に小さい p 値か」も見ます。

たくさん発見がありそうなデータでは、ある程度まとめて採用できます。

反対に、小さい p 値が少ししかないデータでは、慎重になります。

FWER は「家族全体で 1 個でも間違えたくない」考え方です。

FDR は「発見リストの中に混ざる間違いの割合を抑えたい」考え方です。

どちらが正しいというより、何を守りたいかが違います。

データを見てから選ぶと何が起こるか

次に、もっと見落としやすい問題を考えます。

多重検定では、「たくさん検定した」ことが表に出ています。

しかし実務では、もっと静かな形で同じ問題が起こります。

たとえば、次のような分析をしたとします。

  1. たくさんの特徴量を眺める。
  2. 目的変数と関係が強そうな特徴量を 1 つ選ぶ。
  3. その特徴量だけで回帰モデルを作る。
  4. 係数の p 値を報告する。

このとき、最後の p 値は「最初からその特徴量を使うと決めていた」場合の p 値とは違います。

なぜなら、その特徴量はデータを見て選ばれているからです。

もし本当はどの特徴量にも効果がなくても、たくさん見れば、偶然に強そうに見える特徴量は出てきます。

その特徴量だけを取り出して普通の検定をすると、「選ばれた理由」を忘れてしまいます。

この問題は、特徴量選択だけではありません。

外れ値を見てから除外する、いくつかの変換を試して良いものを選ぶ、複数のモデルから一番きれいな結果を選ぶ、という場合にも起こります。

大事なのは、データを見たあとで分析の道を選ぶと、その道に入ったデータだけを見ていることになる、という点です。

標本分布が変わる

検定では、統計量の標本分布を使います。

標本分布とは、同じ条件でデータを何度も取り直したら、統計量がどのように揺れるかを表す分布です。

普通の検定では、「最初からこの統計量を見る」と決めて、その統計量の揺れを考えます。

しかし、データを見てから選ぶと、話が変わります。

選ばれた統計量は、もともとの標本分布からそのまま出てきた値ではありません。

「選ばれるほど目立っていた」という条件を通過した値です。

つまり、見るべき分布は

統計量の分布\text{統計量の分布}

ではなく、

選ばれたという条件のもとでの統計量の分布\text{選ばれたという条件のもとでの統計量の分布}

になります。

この違いを無視すると、実際よりも珍しい結果に見えてしまいます。

Selective Inference は「選んだ」を条件に入れる

Selective Inference は、日本語では選択後推論と呼ばれます。

名前のとおり、「選んだあとで推論する」ための考え方です。

ただし、単に選んだあとで普通に検定する、という意味ではありません。

Selective Inference の中心にあるのは、

「この仮説や特徴量やモデルが選ばれた」

という事実を、条件として推論に入れることです。

式で雰囲気だけ書くと、普通は

P(極端な結果H0)P(\text{極端な結果} \mid H_0)

を見ます。

選択後推論では、これを

P(極端な結果H0, 選ばれた)P(\text{極端な結果} \mid H_0,\ \text{選ばれた})

のように考えます。

「選ばれた世界」の中で、その結果がどれくらい珍しいかを見るわけです。

これは、少し面倒です。

なぜなら、どのような選択をしたかによって、条件付き分布の形が変わるからです。

たとえば、最大の相関を持つ特徴量を選んだのか、Lasso で変数を選んだのか、AIC でモデルを選んだのかで、選択の条件は違います。

だから Selective Inference では、「どんな選択手順だったか」を数学的に書くことが重要になります。

情報幾何で見る選択領域

情報幾何の言葉でも、この話は整理できます。

通常の検定では、確率分布の多様体全体を考えます。

帰無仮説の点や部分多様体を基準にして、データから得られる推定値がどの方向にどれくらい揺れるかを見ます。

大標本では、その揺れを接空間の中の正規分布のような形で近似しました。

つまり、普通は「多様体全体の近くで、どのように揺れるか」を見ています。

選択後は、ここに「選択領域」が入ります。

選択領域とは、その仮説や特徴量やモデルが選ばれるデータの範囲です。

データ空間の中で言えば、「この範囲に入ったデータだけが、今の分析結果として表に出てくる」という領域です。

情報幾何のイメージでは、通常の揺れをそのまま見るのではなく、選択領域で切られた分布を見ることになります。

これは、地図全体で人の移動を見るのと、ある門を通った人だけの移動を見るのとの違いに似ています。

門を通った人だけを集めれば、その人たちの位置や進む方向は、全員の分布とは違って見えます。

選択後推論で起こることも同じです。

「選ばれた」という門を通った結果だけを見ているので、分布をその門で条件付ける必要があります。

事前登録、探索、確認

では、実際の分析ではどうすればよいのでしょうか。

いつでも Selective Inference を完全に実装しなければならない、というわけではありません。

しかし、少なくとも次の注意は重要です。

  1. 事前に検定計画を決める。
  2. 探索と確認を分ける。
  3. 同じデータで二度見た結果を、確認済みの結果として扱わない。
  4. 多重検定をしたなら、FWER や FDR の補正を考える。
  5. データを見て選んだなら、その選択を報告する。

事前登録は、検定のルールを先に固定するための方法です。

「どの仮説を見るか」「どのデータを使うか」「どの統計量を使うか」「どの補正をするか」を先に書いておくと、あとから都合よくルールを変える危険を減らせます。

探索と確認を分けることも大切です。

探索では、データから面白い構造を見つけます。

確認では、その構造が偶然ではなさそうかを、別のデータや決められた検定計画で調べます。

同じデータで「見つける」と「確かめる」を両方やると、どうしても結果はよく見えます。

まとめ

p 値は、1 回の決められた検定のもとで読む数です。

たくさん試せば、偶然の有意は増えます。

FWER は、検定の家族全体で少なくとも 1 つ偽陽性が出る確率を抑える考え方です。Bonferroni 補正は、検定の数に応じて 1 個ずつの基準を厳しくします。

FDR は、発見したものの中に混ざる偽陽性の割合を抑える考え方です。BH 法は、p 値を小さい順に並べ、順位に応じた基準で発見を決めます。

データを見てから仮説、特徴量、モデルを選ぶと、統計量の標本分布は変わります。

Selective Inference は、「選んだ」という条件を入れて、選択領域で切られた条件付き分布のもとで推論します。

情報幾何で言えば、通常は多様体全体の近くで揺れを見ます。選択後は、その揺れを選択領域で切って見ます。

次は、この入口を土台にして、回帰、GLM、Selective Inference の詳細へ進みます。回帰係数の検定、変数選択、モデル選択を、同じ「分布の揺れ」と「選択領域」の言葉でつないでいきます。

次に読む

この記事の前提や続きを確認したい場合は、関連する記事と用語集をあわせて読むと全体像を追いやすくなります。