A/Bテスト:来訪者だけで分析すると危険な理由
Webサービスやアプリの改善においてA/Bテストは欠かせない意思決定手段です。
しかし実務ではテストの設計は正しいのに分析のしかたで結論が壊れることが少なくありません。典型例が施策のあとに起きた行動(来訪、クリック、開封など)でデータを絞ってから比較してしまうケースです。たとえば「来訪した人だけ」を取り出し処置群と対照群を比べるといった分析です。
この記事ではまず観察データでなぜ単純比較が危ないのかを入り口に因果推論とA/Bテストの最小限の前提を整理します。そのうえで多くの人がやりがちなサイト来訪者だけで比較する分析がなぜ危険なのかを説明します。
1. なぜ観察データの単純比較は危ないのか
まず以下のように整理します。
-
処置(treatment):施策を受けたかどうか
が施策あり、T=1 が施策なしT=0 -
結果(outcome):見たい指標(売上、購入、継続など)
これを と書きます。Y
観察データでやりがちなのが次の差を施策の効果とみなすことです。
しかし現実には施策
- 元々ロイヤルな人ほどクーポンが配られる
- 離脱しそうな人にだけ通知を出す
- 特定の行動をした人にだけ施策を出す
などです。
このとき、観測できない要因(購買意欲、ブランドへの熱量、時間の余裕など)を
-
は結果U に影響するY -
は施策割当U にも影響するT
という状況が起こり得ます。すると上の単純比較には、施策の効果だけでなく「もともとの違い」まで混ざってしまいます。これが 交絡 です。
A/Bテストはこの交絡をランダム化によって取り除くための方法です。次にA/Bテストが何を推定しているのかと実際にどう計算するのかを整理します。
2. 潜在結果と平均処置効果
この章では何が知りたいのか(因果効果)、なぜ直接は見えないのか、だからA/Bでは何をどう計算するのかを整理します。
2.1 因果推論の根本問題
理想を言えば同じユーザーに施策を出した場合と出さなかった場合で結果がどう変わるかを知りたいところです。
そこで潜在結果(potential outcomes)として次を定義します。
-
:ユーザーY_i(1) が施策ありi だったときの結果T=1 -
:ユーザーY_i(0) が施策なしi だったときの結果T=0
この差
がユーザー
ただし、同じユーザーについて
観測できるのは、実際に割り当てられた世界の結果だけです。
つまりITE は本当は知りたい量として定義できる一方でデータから直接は計算できません。これが因果推論の根本問題です。
2.2 平均処置効果(ATE)
個人ごとの差分(ITE)が見えないため実務では平均的にどれくらい効くかを評価します。平均処置効果(ATE)を
と定義します。
A/Bテストではユーザーをランダムに処置群
そのとき ATE
A/Bテストの基本は、最初の割当
2.3 ランダム化することで処置前の性質が偏らない
以降では、購買意欲やロイヤル度など「処置前に存在するが観測しにくい個体差」をまとめて
A/Bテストでは処置
が期待できます(有限サンプルでは多少のズレはあり得ます)。
また潜在結果
ここで、観測結果は割り当てられた潜在結果に一致する(consistency)
を用いると、以下のように導けます:
同様に、
が成り立つため、
となります。
3. 落とし穴:来訪者だけで比較する
せっかくランダム化で公平な比較枠組みを作っても分析の段階で介入後に決まる条件でデータを絞るとその公平さが崩れます。実務で多いのが「来訪者だけ」を見てしまうケースです。
3.1 例:クーポン通知の効果検証で来訪者だけを見る
ECの例で整理します。
- 施策
:クーポン通知を送る(1)/送らない(0)T - 中間の行動
:サイト来訪(来訪=1)X - 結果
:購入金額(観測窓内)Y - 見えない要因
:元々の熱量(ロイヤル度)U
このとき分析者が見たくなるのが次の比較です。
つまり来訪した人の中で通知あり/なしの購入金額を比べるというものです。
3.2 なぜ来訪者だけに絞るとダメなのか
ポイントは来訪
- 対照群(通知なし
)の来訪者は通知がなくても自発的に来る人T=0
→ もともと熱量 が高い人が多くなりやすいU - 処置群(通知あり
)の来訪者には2種類が混ざるT=1 - 通知がなくても来る元々熱量が高い人
- 通知で増えた相対的に熱量が低い人
この結果、来訪者に限定した瞬間に
のようなズレが起こり得ます。通知が来訪を増やす(
この状態で来訪者あたり売上や来訪者の客単価を比べると
- 対照群:熱狂的ファン中心なのでよく買う
- 処置群:普通の人が混ざるので平均が下がる
となり、たとえば通知を送ると客単価が下がるという結論が出てしまうことがあります。
重要なのはここで見えている差が通知が購買を悪化させたことを意味しない点です。単に来訪者の構成が変わっただけかもしれません。
このように施策の影響を受けうる変数(来訪、クリック、開封など)で条件を絞ったことで生じる歪みをPost-treatment biasと呼びます。
3.3 正しい分析:割当ユーザーごとに比較する
A/Bテストの基本は、最初にランダムに分けた枠組みを崩さずに比較することです。
来訪しなかった人も含め観測窓内の購入金額は(その窓で買っていなければ)0として、
を評価します。
こうすることでランダム化で得た公平さを保ったまま通知がビジネス全体に与えた売上リフト(平均的な効果)を測れます。
最後に
A/Bテストの強みは、ランダム化によって比較の公平さを作れることです。
ただし、その公平さは分析者が介入後の条件で絞った瞬間に成立しなくなります。
実務ではまず割当ユーザーベースで結論を出す。そのうえで、来訪やクリックなどの中間指標はなぜ効いたのかを考えるための材料として扱うことをおすすめします。
Discussion