世界を動かす技術を、日本語で。

スタートアップにおけるPハッキング

2025年6月18日原文(briefer.cloud)

概要

  • スタートアップ の高速な実験が p-hacking の罠に陥るリスク
  • 多重比較指標の後付け途中での打ち切り による誤った意思決定
  • Bonferroni補正事前登録逐次検定 によるリスク回避方法
  • 正しい統計手法で本当に信頼できる学びを得る重要性
  • スピードと厳密さ のバランスの必要性

スタートアップのアジャイル実験がp-hackingの罠になる瞬間

  • スタートアップ では高速なリリース圧力から、見かけ上の改善でも成果と誤認しやすい
  • p-hacking とは、統計的に有意な結果が出るまで試行錯誤し、偶然の産物を成果とする行為
  • 代表的な3つの罠とその回避策を解説

事例01:多重比較の補正なし

  • 例:ダッシュボード最適化で4種類(A/B/C/D)のレイアウトをA/B/nテスト
  • 1つのレイアウト(B)がp=0.041で有意に見えるため採用
  • しかし p値0.05 の閾値は「1回の検定」を前提
  • 4回独立検定を行うと、少なくとも1回偽陽性が出る確率は 約18.5% に上昇
  • バリアント数が増えるほど、偶然による“勝者”が出やすくなる
  • Bonferroni補正 :有意水準を「0.05÷バリアント数」に補正
    • 例:4パターンなら 0.0125 未満のみ有意と判断
  • 補正により通過する結果は減るが、信頼性は向上

事例02:結果後に指標をすり替える

  • 例:事前登録した「サインアップ率」では有意差なし
  • 焦って「リテンション率」など他指標を探索、p=0.034で有意に見える結果を発見
  • しかし、複数指標を探索するほど偶然の有意差が現れる確率が急増
    • 例:20指標探索で約 2/3 の確率で偽陽性
  • 事前登録(Pre-registration) が解決策
    • 検証する指標・仮説を事前に明記・固定
    • p値の意味が正しく保たれる
  • 医学研究でも必須の手法、スタートアップにも応用推奨

事例03:有意になるまで途中で打ち切る

  • 2週間のA/Bテストを予定しつつ、毎日p値をチェック
  • 9日目にp=0.048で有意に見え、そこで実装してしまう誘惑
  • しかし、毎日チェックすることで「9回分の検定」を無意識に実施
    • 9回のうち1回でも偽陽性が出る確率は 約37%
  • p値は「検定のストップルール」を事前に決めてこそ意味を持つ
  • 逐次検定(Sequential Testing) で途中打ち切りも正しく管理可能
    • 例:1週目はp<0.01、10日目はp<0.025、14日目はp<0.05など閾値を厳格化
  • ほとんどのチームでは「予定通り最後まで待つ」が最も安全

適切な実験運用のために

  • 仮説・指標の事前登録 を徹底
  • 多重検定補正 を忘れず実施
  • 途中経過での意思決定 には逐次検定や厳格なルール適用
  • ネガティブ結果 も正当に評価
  • 正しい統計運用で“本物の学び”を得て、無駄な施策サイクルを減少

結論

  • スピード重視 の現場ほど、 統計的厳密さ が学びの質を左右
  • 急がば回れ、 信頼できる意思決定 が長期的な成長の鍵

Hackerたちの意見

一方で、これは統計的に有意なA/Bスタイルのテストを実施する方法についての非常に良い説明だね。ただ、スタートアップがプロダクトマーケットフィットを達成していないなら、こういうことは時間の無駄だってことを強調したい!機能を作って、実際に人が使うかどうか見てみよう。

「このようなこと」とは、A/Bテストを実施すること全般を指している。正しく行わないなら、A/B / MVTテストを実施する理由は全くないよ。

A/Bテストは、マイクロ最適化を含む必要はないよ。うまくやれば、試すことのリスクやコストを減らせるからね。例えば、フルプロダクト開発に投資する前にA/Bテストを行うことができるし。MLベースの改善(新しいランキングアルゴリズムとか)を進める時にも使いたいよね。これが、プロダクト開発の参考書の表紙にカバが描かれている理由だよ。A/Bテストは、ただ「一番お金をもらっている人の意見」に従うことに対して役立つんだ。実際はもっと複雑だけど、それは組織や政治の問題だね。

「これは学術的なこだわりじゃない。命がかかっているときの医療研究のやり方だ。スタートアップの成長も同じ厳密さが必要だ。でも、本当にそうなのか?多くの企業は…まあ、「重要じゃない」ものを売ってるよね。間違っても人の命が奪われるわけじゃない。ウィジェットを売るスタートアップのユーザーサインアップをA/Bテストしても、その結果で人が生きるか死ぬかは関係ない。間違った結果の影響は…ウィジェットが少なく売れるだけ?投稿の全体的なポイントは理解できるし、同意するけど、この特定の点には異論がある。多くの企業は、テストに関して言えば、_厳しすぎる_と言えるかも。前の会社では、統計的有意性を待つのに6週間かかった。でも、48時間以内にポジティブな信号が出たんだ。コンバージョンが上がった!統計的には有意じゃなかったけど、望んでいた方向にトレンドが出てた。でも「厳密さを保つため」に、6週間待ってから結果を出したら、最終的な数字は48時間の数字とほぼ同じだった。注意:何かが良い方向にトレンドを示したらすぐにテストを止めろって言ってるわけじゃない。投稿の3つ目のシナリオがそれを欠点として指摘してる!彼らの「のぞき見」とその後のテストの提案は好きだけど、本当に、どの程度の「厳密さ」が決定を下すのに必要か、現実的に考えよう。ロケットを宇宙に打ち上げてるわけじゃない。ソフトウェアを出荷してるんだ。間違ったら修正できるし、大丈夫。世界が終わるわけじゃない。私の意見では、ここでの正しいフレーミングは、スタートアップは目標を達成するために必要な厳密さを持つべきだってこと。目標が「すべてのテストで統計的有意性」なら、確かに、間違ったら誰かが死ぬかもしれないと思って扱うべきだ。(この場合、目標が間違ってると言いたいけど、脱線しちゃった…)でも、目標が「害を及ぼさない、正しいベクトルに向かっているか確認する、そして誤ってポジティブな結果が出た場合にはピボットできると信じる」なら、医療テストと同じ厳密さで扱う必要はないよ。

それは、結果の妥当性や、成果を改善するための変更に気を使っていると仮定した場合だよ。重要度が低い状況では注意の度合いが異なるかもしれないけど、どれだけ気にしているか自分に嘘をついてはいけない。

でも、実際には改善されていない可能性もあるよね。もう一つの理由として、ただ出荷することの重要性があると思う。スタートアップは常に動き続ける必要がある。みんなを忙しく保ち、成長が遅いとか高い離脱率について心配させないために、車輪を回し続ける必要がある。スタートアップにはたくさんの闘志が必要だよ。だから、負けを認めて悪い雰囲気に悩まされるよりは、出荷する方がいいかもしれない。

完全に同意する。スタートアップのサインアップフローは、医療研究と同じ厳密さを必要としないよ。製品のパッケージングに交通工学の基準も必要ない。リスクのレベルが全く違うからね。これについては何ページでも書けるし(何時間も話したことがある)、科学的な研究のマインドセットを採用することはA/Bテストにとって非常に制限的だと思う。帰無仮説テストの既存のバイアスを持つ必要はない。同時に、人々が適応する能力には感心するよ。A/Bテストに慣れた組織は、頭の中で多変量補正を始めるようになる。これを始める人には、最初からベイジアンでやることを勧めるよ。気づいていなくても、結局そこにたどり着くから。(人々は以前の証拠を考慮してp値を見るだろう)。0.05(または任意のベイジアンの同等物)は魔法の数字じゃない。デフォルトとしてはかなり高い。より厳しい科学(再現危機にないもの)は、デフォルトでずっと厳しい値を使っている。変更のコストと害のリスクに応じて必要な信頼度を調整するべきだ。テストの段階にいるなら、変更のコストはゼロかもしれない(コンテンツ)。本当に高いかもしれないし、ネットでマイナスかもしれない!でも、ほとんどの場合、スタートアップでは、影響力のある勝利を追求するべきで、p値が0.05未満になることが多いよ。これは言うのは簡単だけど、もっと信号を引き出す方法を考える時間を無駄にしないで。単に(ただ笑)製品を改善する変更をして、方法が重要でないようにすればいい。p=0.00001なら、この記事のどの補正よりも良い信号になるよ。最初から何か特別なことを選ぶなら(ベイジアン以外で)、いつでも有効な方法を選んで。あなたはすでにのぞき見をしているだろうし(そうあるべきだ)、データがそれを反映するようにしよう。

p=0.50に設定すれば解決できるかな?期待値を暗黙的じゃなくて明示的に示してみて。0.05は完全に恣意的だよ。もし50/50の確率で正しいと思えるなら、基準をもう少し緩くしてもいいんじゃない?

医療の文脈では、選択肢が「この特定の治療法を使うか、何もしない(つまり、既存の治療法を使う)」ってことが多いよね。もしどのウェブサイトのレイアウトがベストかの統計的に有意な結果が得られなかったら、スタートアップを畳むつもりの人っているのかな?「害を与えない」という別の言い方は、無結果は「今やってることを変える理由がない」ってことだよ。

我々はロケットを宇宙に打ち上げているわけじゃない。確かにほとんどの人はそうじゃないよね。だから、今やっていることやその影響を考慮するのはいいことだと思う。ただ、時にはその境界が明確じゃないこともあるよね。もし我々があまり重要でない結果に特化していないライブラリやフレームワークを設計したら、どの方針がより理にかなっているのかが分からなくなる。

間違ったらどうなるかって…ウィジェットが売れなくなる?それが成功と失敗の境目なら、ビジネスオーナーとしてはかなり重要だよね。 > 害を与えないようにして、正しい方向に進んでいるか確認して、もし誤ってポジティブな結果が出たら方向転換できると信じる。それは合理的で、たくさんの文脈では絶対にベストなアプローチだと思う。でも、それをA/Bテストと呼ぶのはやめてほしい、だってそうじゃないから。

ほとんどの会社は、間違ったら人の命が奪われるわけじゃない。確かにそうだけど、修正するのにはお金がかかるよね。「命がかかっているときだけ重要」や「厳しすぎる」というテーマは、ストローマンだと思う。リソースは限られてるから、時間やお金、人もね。リソースを無駄に使いたくないんだ。統計的推論は、リソースを無駄に使わないための情報を得る一つの方法だけど、君が指摘したように、統計的推論にもコストがかかる。推論に必要なデータを得るためにリソースを使わなきゃいけないし、他のコストもある。サンプルサイズ推定法を使って、十分なデータを得るためのコストを見積もることができる。ゴー/ノーゴーの意思決定では、間違った決定を下すコストが統計的推論のコストの少なくとも10倍以上じゃない限り、推論を行う価値はないと思う。別の理由で推論を行う価値があるかもしれないけど、それは範囲外の話だね。例えば、医療研究での統計的推論の一般的な使い方は、治療法の効果をプラセボと比較することだよ。その動機の一つは、治療法の開発にもっとリソースを投資するかどうかを決めるためであって、間違って効果があるとされる場合に人が死ぬからではない。 > 多くの企業は、テストに関しては、過剰に厳しいと言えるかもしれない。私の業界での経験は逆だよ。企業はデータ駆動の意思決定のアイデアが好きだけど、痛点を発見するんだ。彼らは、どれくらいの変化を検出したいのか(つまり、効果量)をある程度理解しているべきだし、テストを実行するために必要なデータ量を見積もるべきだよ(つまり、サンプルサイズ推定)。モデルの不適合、キャリブレーション、複数テストの修正など、他の問題も考慮しなきゃいけない。さらに、テストを実施してデータを収集し、結果を分析して内部のステークホルダーに伝えるためのインフラを整える必要もある。これらの痛点が、EppoやStatSigのような企業が存在する理由なんだ。A/Bテストは、開発者が期待するよりも高いタッチになることが多いよ。これらの問題のどれかを間違えると、「フレークなテスト」が生じることがあって、開発者はそれを嫌うんだ。特定の効果量に対して十分なサンプルサイズを集められないのは、かなり一般的な失敗パターンだよ。 > でも「厳密さを維持する」ために、6週間待ってから結果を出したら、最終的な数字はほぼ48時間の数字と同じだった。ここで「厳密さを維持する」とは具体的に何を意味するのか、正確には分からないよ。私が理解できる唯一の文脈は、君が使っていた手続きが、テストの名目設計基準、通常は名目の偽陽性率を満たすために、もっとデータが必要だったということだと思う。これは厳密さの問題じゃなくて、統計モデルと正確さの問題だよ。時には、異なる方法を使って、より多くの(または異なる)モデルの仮定を犠牲にして、少ないデータで済むこともある。テストの仮定を満たさないと、偽陽性率が上がることがある。それが重要かどうかは、本当に君次第だよ。 > 彼らの「のぞき見」とその後のテストの提案は好きだよ。投稿が提案しているのは、提案ではなく、逐次テストと呼ばれる頻度主義的統計推論の標準的なクラスだよ。ダニエル・ラケンスのオンライン教科書(https://lakens.github.io/statistical_inferences/)には、これらの方法について第10章で簡単に説明されていて、さらに参考文献も載っているよ。 > 我々はソフトウェアを出荷している。間違ったら変更できる。これは通常真実だよね。必要なリソースがあって、それをそのように使うことに同意している限り。 > 私の意見では、ここでの正しいフレーミングは、君のスタートアップは目標を達成するために必要なだけ厳密であるべきだということだと思う。この感情には同意するけど、君はここで厳密さと正確さを混同していると思う。 > もし目標が「すべてのテストで統計的有意」なら、確かに、間違ったら誰かが死ぬかもしれないように扱うべきだね。それは誤った同等性だと思う。アメリカ統計協会もp値について声明を出しているし(https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf)、そこには「科学的結論やビジネスまたは政策の決定は、p値が特定の閾値を超えるかどうかだけに基づくべきではない」と書かれているよ。 > でも、もし君の目標が「害を与えない、正しい方向に進んでいるか確認する、そして誤ってポジティブな結果が出た場合には方向転換できると信じる」なら、医療テストと同じ厳密さで扱う必要はないよね。もしそれが君の目標なら、ただ出荷すればいい。特に、君が主張するように、変更を元に戻したり、うまくいかなかった場合に方向転換するのが経済的に可能なら、テストの努力を正当化するのは意味がないと思う。

Hacker Newsで議論の続きを見る