多重比較問題とは?セグメントを切るほど「有意差」が出る理由と補正の選び方
A/Bテストの結果が「全体では有意差なし」だったとき、次に起きることは、たいていどの現場でも同じです。デバイス別に切る。新規と既存で切る。流入チャネル別に切る。地域で切る。
そして数日後、「スマホの新規ユーザーでは有意差が出ました」という報告が上がってきます。
この報告は、正しいこともあります。しかし、真の差がまったく無かったとしても、かなりの確率で出てきます。 有意水準5%で20回検定すれば、期待される偽陽性の件数は1件です。セグメント10個 × 指標3個なら30回。ここで出た1〜2個の「有意差」は、分析の成果ではなく検定回数の副産物かもしれません。
この記事では、この構造がなぜ起きるのかと、補正手法を選ぶときに何を先に決めるべきかを整理します。
30秒で要点
- 検定の回数が増えるほど、真の差がなくても有意と判定される機会は増える
- Ioannidis(2005, PLOS Medicine, Essay)は Corollary 3 として「検証される関係の数が多く、その選別が弱いほど、研究結果が真である可能性は低くなる」と述べている
- 同論文の Corollary 4 は「デザイン・定義・アウトカム・解析方法の自由度が大きいほど、研究結果が真である可能性は低くなる」としている
- statsmodels の multipletests は bonferroni・fdr_bh を含む多数の補正手法を提供し、「収録されているすべての手続きは、独立な場合において FWER または FDR を制御する」と記している
- 補正は検定回数を織り込む手続きであり、実際に何回検定したかを記録していなければかけようがない
| 用語 | 意味 |
|---|---|
| 検定 | 観測された差が、偶然では起こりにくい大きさかどうかを判定する手続き |
| 有意水準 | 「偶然ではない」と判定する基準の厳しさ。5%なら、真の差が無くても20回に1回は有意と出る設定 |
| 偽陽性 | 実際には差が無いのに、有意差があると判定してしまうこと |
| FWER | family-wise error rate。一連の検定の中で、偽陽性を1つでも出してしまう確率 |
| FDR | false discovery rate。有意と判定したもののうち、偽物が占める割合 |
| A/Bテスト | 2つの案を実際に出し分けて、どちらが良い結果になるかを比べる検証方法 |
| p値 | 観測された差が、真の差が無いと仮定したときにどれくらい起こりやすいかを表す数値 |
| CVR | コンバージョン率。訪問のうち、申し込みや購入に至った割合 |
回数が増えると、何が起きるのか
まず、この問題の骨格を数字の形で押さえます。
有意水準5%とは、真の差が無い場合に、それでも「有意」と判定してしまう確率を5%に設定するという意味です。1回の検定なら、20回に1回の割合で誤ります。
分母と分子で言えば、分母が「実施した検定の回数」、分子が「そのうち偶然によって有意と出た回数」です。回数が増えれば分子の期待値も増えます。20回検定すれば期待値は1件、30回なら1.5件。分析者が何も不正をしなくても、この件数は出てきます。
厄介なのは、出てきた1件が「偶然の1件」なのか「本物の1件」なのかを、その1件だけを見ても区別できないことです。区別できないため、報告書には「有意差あり」とだけ書かれます。
「検証する数が多いほど、真である可能性が下がる」
この構造を、科学研究全体のスケールで論じたのが Ioannidis の論文です。
John P. A. Ioannidis「Why Most Published Research Findings Are False」(PLOS Medicine、2005年8月30日、DOI: 10.1371/journal.pmed.0020124)は、Corollary 3 としてこう述べています。「ある科学分野において、検証される関係の数が多く、その選別が弱いほど、研究結果が真である可能性は低くなる」。
出典はこちらです:https://journals.plos.org/plosmedicine/article?id=10.1371/journal.pmed.0020124
ここで注意しておきたいのは、この論文が Essay として掲載されていることです。著者が新たに実験を行って得た結果ではなく、シミュレーションに基づく理論的な論考です。この記事でも、実験結果ではなく構造を説明する枠組みとして参照します。
Corollary 3 が言っているのは、単に回数の話だけではありません。「選別が弱いほど」という条件が付いています。同じ100回の検定でも、事前に理由があって絞り込んだ100回と、手当たり次第の100回とでは、結果の意味が変わるということです。
サイト分析やマーケティング施策の評価は、まさに「手当たり次第に切れてしまう」領域です。ダッシュボードのセグメント機能は、切る理由がなくても切れるように作られています。
自由度そのものが、結果を動かす
同論文の Corollary 4 は、別の角度から同じ問題を捉えています。「ある科学分野において、デザイン・定義・アウトカム・解析方法の自由度が大きいほど、研究結果が真である可能性は低くなる」。
これは検定回数とは別の論点です。回数を数えていなくても、何を成果と呼ぶかを後から決められる状態であれば、同じことが起きます。
実務に置き換えると、こうなります。施策の評価指標として、CVR・クリック率・滞在時間・売上・再訪率が全部ダッシュボードに並んでいる。期間も、日次・週次・月次で切り替えられる。除外条件も、ボット除去のありなしを選べる。この状態で「効果があったかどうか」を後から判断すれば、判断する側に悪意がなくても、良く見える組み合わせが選ばれやすくなります。
Corollary 4 が指しているのは、この選べてしまう幅そのものです。
なぜ「セグメントを切って探す」をやめられないのか
構造が分かっていても、この行動はなかなか止まりません。理由がいくつかあります。
ひとつは、「差がなかった」という報告が受け入れられにくいことです。テストの実施にはコストがかかっています。何も出ませんでした、という報告は、費やした時間が無駄だったという話に聞こえます。報告する側には、何かを見つけて帰りたい動機が働きます。
もうひとつは、セグメント分析が正当な手法でもあることです。「全体では差がないが、特定の層には効いている」という現象は実在します。手法として間違っているわけではないため、やめる理由が見つかりません。問題は手法ではなく、探した回数を数えていないことにあります。
そして三つ目に、回数が記録に残らないという事情があります。ダッシュボードでセグメントを切り替えるたびに検定が行われているようなものですが、切り替えた回数はどこにも保存されません。最終的な報告書には、有意差が出た1つの組み合わせだけが載ります。探索の過程が消えるため、後から補正のかけようもありません。
補正手法は「何を守るか」で分かれる
では、回数を数えていた場合に何ができるか。ここで補正手法が出てきます。
statsmodels の multipletests は、複数の補正手法を提供しています。関数のシグネチャは multipletests(pvals, alpha=0.05, method='hs', maxiter=1, is_sorted=False, returnsorted=False) で、指定できる手法には一段階補正の bonferroni、Benjamini/Hochberg 法の fdr_bh のほか、sidak、holm、holm-sidak、simes-hochberg、hommel、fdr_by などが並びます。
同ドキュメントは、これらについてこう記しています。「収録されているすべての手続きは、独立な場合において FWER または FDR を制御し、大半は正の相関がある場合にも頑健である」。
出典はこちらです:https://www.statsmodels.org/stable/generated/statsmodels.stats.multitest.multipletests.html
ここで実務上の判断になるのが、FWER と FDR のどちらを守りたいのかです。
- FWER(family-wise error rate) は、一連の検定の中で偽陽性を1つでも出してしまう確率です。これを抑えるということは、「間違って何かを採用してしまうこと」を強く避ける立場になります
- FDR(false discovery rate) は、有意と判定したもののうち偽物が占める割合です。これを抑えるということは、「拾い上げたものの中に一定割合の外れが混ざるのは許容するが、その割合は抑えたい」という立場になります
どちらが正しいということはなく、その判断で何を失うかによって変わります。
施策の全社展開を決めるような、間違えたときの損失が大きく後戻りしにくい判断であれば、FWERを守る側に寄せる理由があります。一方、次に検証する候補を絞り込むための探索であれば、多少の外れを含んでもよいので取りこぼしを減らしたい、という判断もありえます。
なお、個々の手法がFWERとFDRのどちらを制御するのかについて、上記のドキュメントは手法ごとの明示的な対応表を示しているわけではありません。手法を選ぶ段階では、その手法が何を制御するものかを別途確認することをおすすめします。
確かなことと、まだ確かではないこと
確かなこと:Ioannidis の論文が PLOS Medicine に Essay として2005年8月30日に掲載されたものであること。Corollary 3 と Corollary 4 の記述内容。statsmodels の multipletests が bonferroni・fdr_bh を含む複数の手法を提供していること。同ドキュメントが「すべての手続きは独立な場合において FWER または FDR を制御する」と記していること。
まだ確かではないこと:Ioannidis の論文はシミュレーションに基づく Essay であり、実験による検証結果ではありません。また発行は2005年です。ボンフェローニ法・BH法の具体的な計算手順(調整p値の算出式やステップの順序)は、本記事が確認した範囲を超えるため扱っていません。個々の手法とFWER/FDRの対応についても、上記ドキュメントは明示していないため断定を避けています。なお、p値に関するASAの声明を参照する案もありましたが、本文を取得できなかったため本記事では一切用いていません。
判断軸の提示
補正の手法を選ぶ前に、「何回検定するつもりか」を先に宣言すること。
補正は、検定回数を計算に織り込む手続きです。したがって、回数が分からなければかけられません。 そして実務でいちばん多い失敗は、手法の選択を誤ることではなく、回数を数えていなかったために補正という選択肢自体が消えることです。
順序としては、次のようになります。
- 主指標を1つ決める — 勝ち負けを何で判定するかを、テスト開始前に1つに絞る
- 切るセグメントを事前に列挙する — 後から思いついた切り方は、探索であって検証ではない
- その回数を記録する — 実際に見た組み合わせの数を残す。これが補正の入力になる
- 何を守りたいかを決める — 誤って採用したくないのか、取りこぼしたくないのか
- 事後に見つかったものは「次の仮説」として扱う — 検証結果ではなく、次のテストの候補にする
5番目が、探索を止めずに済ませる方法でもあります。セグメントを切って何かを見つけること自体は禁じる必要がありません。見つけたものを、結論ではなく仮説として扱えばよいだけです。
自分でも試せる、最小の検証
直近で「有意差が出た」と報告されたセグメント分析を1つ選び、その結論に至るまでに、いくつの組み合わせを見たかを数えてみてください。 セグメントの数 × 指標の数 × 期間の切り方、で概算できます。
その数が20を超えているのに、報告書に検定回数の記載がないなら、その有意差は「探した中で最も良かったもの」である可能性を含んでいます。次の一歩は、その組み合わせだけをあらかじめ指定して、新しい期間のデータでもう一度検証することです。同じ条件で再現するかどうかが、偶然と本物を分ける最も実務的な方法になります。
この記事で扱ったような分析の判断を、自社の状況に照らして整理したい場合は、無料診断ツールで状況を言語化するところから始めることができます。
状況を整理する(15分)