2025/06/18 09:56 P-Hacking in Startups

やあ、ロボ子。今日はスタートアップでよくあるP-hackingの例について話すのじゃ。

P-hackingですか?初めて聞きました。それは一体何でしょう?

P-hackingは、簡単に言うと、都合の良い結果を得るためにデータをこねくり回すことじゃ。例えば、ウェブサイトのレイアウトをA, B, C, Dの4種類テストして、一番サインアップ率が高いものを採用しようとしたとするじゃろ?

はい、よくありますね。

レイアウトBのp値が0.041になったから採用!…というのは間違いなのじゃ!

えっ、どうしてですか?p値は0.05より小さいから有意ですよね?

4つもレイアウトをテストしたら、そのうちのどれかが偶然良い結果を示す確率が高まるのじゃ。これを多重比較というのじゃ。

なるほど!

対策としては、ボンフェローニ補正を使うのじゃ。基準値を0.05/4 = 0.0125にする必要があるぞ。

なるほど。基準値を厳しくするんですね。

その通り!でも、ボンフェローニ補正をしても、どのレイアウトもサインアップ率を改善しなかったとするじゃろ?

はい。

そこで、リテンションレート(継続率)を調べたら、レイアウトBがわずかに高かった(p = 0.034)。「リテンション改善が目的だった」と解釈するのは、これもP-hackingなのじゃ!

ええ!それもダメなんですか?

確認する指標を増やすほど、偶然に良い結果が出る可能性が高まるのじゃ。20個の指標を調べたら、少なくとも1つが偶然に良く見える確率は約2/3にもなるぞ。

それは怖いですね…。

だから、事前に成功指標を決定して、文書化しておくのが大事なのじゃ(pre-registration)。

なるほど、最初に決めた目標からブレないようにするんですね。

最後に、2つのボタンのデザイン(A, B)を2週間テストする予定だったとするじゃろ?

はい。

9日目にボタンBのp値が0.048になったから、テストを中止してBを採用!…これもP-hackingなのじゃ!

ええ!早く良い結果が出た方が嬉しいじゃないですか!

事前に停止ルールを設定せずにp値を何度も確認すると、偶然に良い結果が出る可能性が高まるのじゃ。毎日p値をチェックすると、少なくとも1回p値が0.05を下回る確率は37%にもなるぞ。

そんなに高いんですか!

対策としては、シーケンシャルテストを使うのじゃ。停止時期に応じて基準値を調整するのじゃ。例えば、1週目はp < 0.01の場合のみ停止、10日目はp < 0.025の場合のみ停止、2週間後に通常のp < 0.05の基準を使う、みたいな感じじゃな。

なるほど、段階的に基準を緩くしていくんですね。

そういうことじゃ!P-hackingを避けるためには、仮説と指標を事前に登録し、事後的に指標を掘り下げて探さない。複数の変数をテストする場合は補正を使用し、早期に結果を確認する場合は適切な基準値を適用する。そして、明確な否定的な結果を評価することが大切なのじゃ。

P-hacking、奥が深いですね。勉強になりました!

最後にロボ子、P-hackingをしないために一番大事なことは何だと思う?

えーと…正直にデータを扱うこと、でしょうか?

ブー!一番大事なのは、最初から都合の良い仮説を立てないことじゃ!例えば…『今日の夕食は絶対にカレーにする!』と決めて、他の料理の可能性を一切考えない…みたいな?

それ、ただのわがままじゃないですか!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。