[論文メモ] KDD2024 False Positives in A/B Tests

book
Author

statditto

Published

September 24, 2024

はじめに

KDD2024のFalse Positives in A/B Tests」を読みました。有名なカバ本の著者が書いています。せっかく読んだので備忘録としてメモを残しておきます。

Summary

  • 実験の真の成功率(true success rate)と観測された実験の勝率(observed “win” rate)は別物だよ!
  • 有意水準α=0.10の利用は非推奨だよ!そのもとで有意な結果を示したA/Bテストの1/3以上は偽陽性だよ!
    • 片側検定でα=0.05のときも同様だよ!
  • 群逐次デザイン(group sequential design)を利用すると、試験期間がわずかに増加するけど偽陽性を結構抑えられるよ!

感想

  • 組織単位で一定回数のA/Bテストをできているのであれば、論文中で紹介された手法で真の成功率を成功し、普段の実験設定のもとでFPR(False Positive Risk)がどの程度なのかを把握することは意義がありそうです
    • FPRが許容できない確率となった場合は、αを下げてテスト設計するだけである程度解決するので導入しやすそうです
  • (個人的には)α=0.10はFPRが高すぎると感じたので使うべきではない気がします
  • 群逐次デザインの導入は少しハードルが高いかもしれないですが、実応用できそうです
    • 週次の季節性などを考慮して1週間単位でテストを行う場合など、「ちょっとだけ延長する」みたいなことは難しいケースもありそうです
    • とはいえ企画されるA/Bテストが多いチームでは中間停止の恩恵も大きいので状況次第に思えます
  • 頻度論だなぁという気持ちになりました
    • P(H_0)のあたりの議論は本当にいいのか?という気持ちになります
    • H_0が棄却されないからと言ってH_0が正しいわけではないので一部の議論でう〜んとなります
      • 僕の勘違いかもしれないですが、{真の効果量が0である, 真の効果量がΔである}の二つしか考えていないところがモヤっとしています(仮設検定なので仕方なくはありそうですが)
    • ベイズに拡張するなら、組織の成功率の事前分布とかを置いて考えることができそうです
      • この場合は効果量に事前分布を仮定できるので上の疑問が解消されます

各章のメモ

雑まとめです。両側、片側を明示的に書いていないときは全て両側検定についてです。誤読箇所もあるかもしれないので、気になる点があればご連絡お待ちしています!

ch.1 introduction

  • 一般にA/Bテストの成功率は低いと言われている(10~20%)
  • 成功率が低い場合、\(\alpha=0.05\)では偽陽性の確率が高くなってしまうことが知られている

ch.2 the cost of false positive and false negative

  • 偽陽性にはプロジェクトの方向性が誤った方向に進んでしまうリスクがある
  • 偽陰性も当然リスクはあるが、偽陽性と比較すると比較的軽い
    • 効果が小さい:偽陰性となったとき、そのアイデアは最小検出効果(MDE)に近い小さな効果しか持たない可能性が高い
    • 近しいアイデアの実験を複数回行う:アイデアを放棄する前に、通常は似たようなテストを複数回行う。全てのテストで議員生となる確率は\(\beta^n\)に抑えられる
  • 偽陽性と偽陰性はトレードオフの関係にある
    • 組織はそれらのコストを勘案して\(\alpha\)を選択すべきである

ch.3 estimating the false positive risk

  • P値は「仮説が正しい確率」であると誤解されることが多い
    • 正しい定義:
  • 多くの場合に私たちが興味のあるものは逆の条件付き確率である
    • a
  • ベイズの法則でこれを推定できる
    • \(SS\):統計的に有意な結果
    • \(\alpha\):有意水準
    • \(1-\beta\):検出力
    • \(\pi\):帰無仮説の事前確率、P(H_0)のこと

\[ \begin{aligned} FPR &= P(H_0|SS) \\ &= \frac{P(SS|H_0) * P(H_0}{P(SS}) \\ &= \frac{\alpha * \pi}{\alpha * \pi + (1-\beta)*(1-\pi)} \end{aligned} \]

  • P(H_0)が分かればFPRを推定できる

    • ソフトウェア業界におけるA/Bテストの成功率は[8~33]、中央値と最頻値が10%
  • 一般的な条件のもとでFPRは直感的な数字よりも高い

    • FPR=22%(片側α=0.025、β=0.2、π=0.9)

    • FPR=36%(片側α=0.05、β=0.2、π=0.9)

  • (片側α=0.05、β=0.2、π=0.907)の設定で、それぞれの確率がどうなるかを視覚的に表現

イメージ説明

  • 100マスが全ての実験の100%を表す(300回実験している場合1マスは3回分)

    • 緑色のマスは本当に効果があった9.3%の実験
  • 検出力が80%なので、正しく陽性と検出されるのは9.30.8=7.4%(+マーク)

    • 白色のマスは本当は効果がなかった90.7%の実験
  • 有意水準が5%なので、誤って陽性と検出されるのは90.70.05=4.5%(+マーク)

    • +マークのマスは有意差が検出された実験 7.4+4.5=11.9%
  • 有意差が検出されたときに偽陽性である確率、FPRを計算する

    • 4.5/11.9=0.378、37.8%と非常に大きい!

ch.4 estimating the success rate

恥ずかしながら、因果ダイアグラムを用いた傾向スコアの説明を初めて目にしました。感動です。今まで何となく敬遠していたDAGを用いた表記でしたが、だいぶ苦手意識がなくなりました。

傾向スコアも重回帰分析と同様に、ライブラリにデータを突っ込むといい感じに計算されて、それっぽい因果効果が出てしまうので注意が必要です。本章ではとくにcommon supportの重要性が述べられています。傾向スコアを利用するときは最低限分布のバランシングが改善しているかどうかはチェックしたいですね。

6章 共変量では調整できない、そんなとき――差の差法、回帰不連続デザイン

強い仮定を満たした下で利用できるいくつかの手法に関する説明があります。特にDIDベースの考え方は実務でも割とよく使うため、6.1の平行トレンド仮定に関する注意は心に留めておきたいです1。仮定が強いため適用できる状況は限定的ですが、こういった手法が存在することは知識として持っておいて損はないと思います。

7章 データの背後の構造を利用する――操作変数法、媒介変数法

操作変数法を全く知らない僕にとっては非常に価値がある章でした。ちょっと手法の仮定が強い気もしましたが、最近読んだSansanの技術ブログでの適用例をみると、これらの手法も限定的ではあるが使えるケースは確かにあるなと感じました。

8章 “処置Tの効果”を揺るがすもの

「本当に知りたい因果効果」を正しく設定することは、データ分析一般に通ずる重要なファクターだと再認識しました。データが与えられたもとで行う分析では、理論的条件にばかり目が行きがちです。もちろん理論的条件を満たしているかどうかは重要なのですが、解析概念の定義や実験に不備がないかどうかについても同様に重んじるべきだと思いました。

9章 エビデンスは棍棒ではない――「因果効果」の社会利用に向けて

本章では一般化可能性に関する議論が丁寧に行われています。当たり前ではありますが、分析結果を注意深く吟味したうえで慎重に一般化する必要があります。記載されている通り「RCTは最強」や「統計学は最強」なのはあくまで限定的なケースのみです。学びたての時は「因果推論は最強」と思ってしまうケースもありそうです。

まとめ

控えめに言って最高の本でした。完全にFor meでした。僕は具体例から入る方が理解が進みやすいタイプなので、本書には非常にマッチしていました。定期的に著者の情熱が文章に現れている点も、大学の面白い講義を受けている気持ちにさせてくれます。今後も定期的に読み返す一冊になるだろうなぁと思います。書籍を読み進めている途中で気づきましたが、著者の林先生のスライドには昔からお世話になっていたことに気づきました。感謝しかありません。

そしてなぜか本書は技術書としては破格の3000円です。ぜひ購入して一読してみてください!

Enjoy!

Footnotes

  1. 思考停止でCausalImpactを使っていた自分をしばきたいですね。↩︎