
ABテスト設計と実践
目的・仮説・指標を一本化する設計
ABテストは機能の善し悪しを測る行為ではなく、意思決定コストを下げるための仕組みです。最初に決めるのは「意思決定の問い」です。例:新規ユーザーの初回体験で入力項目を2つ減らすと、7日後の継続率は改善するのか。ユーザー対象、変更点、影響指標、期間、期待方向(上がる/下がる)を1文に収めます。
指標の三層構造とMDE
指標は三層で合意します。1) 主指標(意思決定を左右する唯一の基準。例:7日継続率、購入率、LTV短期推定) 2) 補助指標(メカニズム検証。例:商品詳細閲覧回数、フォーム完了率) 3) ガードレール(悪化を許さない境界。例:エラー率、レイテンシ、解約率)。加えて、最小検出可能効果量(MDE)を決めます。経営的に5%未満の改善では展開しないならMDE=5%相対改善を宣言し、これに合わせてサンプルサイズと期間の現実性を見積もります。
セグメントは“後から絞る”前提で
全体で有意差が出ない施策は珍しくありません。あらかじめ新規/既存、チャネル、OSなどのセグメント軸を定義し、事前登録(優先順位付け)した上で、主要群に対してのみ探索的に確認します。後付けの“勝ちセグメント”乱発は偽陽性を増やします。
サンプルサイズ・期間・分割とトラッキング
サンプルサイズと期間の決め方
過去4週のベースライン指標と分散を取り、検出力80%、有意水準5%をデフォルトに置きます。例えばCVR=3%、MDE=+10%相対(3.0→3.3%)なら、1群あたり数万セッションが目安です。期間は「必要サンプル/日次トラフィック」で計算し、週次の季節性を跨ぐよう最低2週間は確保します。収益など分散が大きい指標は、ブートストラップを前提に日次集約で分散を下げると必要サンプルが現実的になります。算出コードはノートブックで残し、Copilotで式や境界条件のレビューを受けるとヒューマンエラーが減ります。
ユーザー分割と汚染防止
割り当てはユーザー単位で安定ハッシュを使い、userIdが無い匿名流入はファーストパーティCookieで固定します。デバイス跨ぎ重複やログイン前後の“バケツ飛び”を避けるため、露出時にアサインを確定し、同一人物の統合ルールを設けます。クロス実験の干渉が疑われる場合は、機能フラグを名前空間で分離するか、ホールドアウト群を設けます。必須の健全性チェックは以下です。
- SRM(サンプル比不一致):50/50が大きく外れていないか。閾値はp<0.01程度で自動監視
- イベント欠損:露出ログ、主要イベントの到達率が過去と整合しているか
- ボット/社内トラフィック除外:ASNやUAでフィルタ済みか
ログ設計の最小要件
exposure(誰にいつ何を見せたか)、assignment(どの群か、理由)、outcome(指標イベント)、context(アプリ版数、OS、実験バージョン)の4点を必ず記録します。スキーマ互換性は後方互換を守り、実験キーにバージョンを含めると分析が安定します。
運用の落とし穴と分析レシピ
途中停止と複数比較の罠
p値が0.05を切った瞬間に止める“pハック”は誤判定を招きます。中間解析は事前に回数と日付を決め、O’Brien–Flemingのような保守的境界を採用するか、期間固定を基本にします。並列実験やセグメント探索が多い場合は、主要仮説のみ家族化し、他はFDR制御に切り分けるのが現実的です。
分析の手順(現場用ショートレシピ)
- サニティ:SRM、露出→結果の遷移率、ガードレールの逸脱有無
- 主要分析:効果量と95%信頼区間を第一に、p値は補助。比率は二項検定かベイズ(ベータ–ビノム)、金額はブートストラップ平均差
- 分散削減:プレ期間の指標を共変量に入れるCUPED、または事前層別で精度を上げる
- 堅牢性:日次の差分推移、週末/平日の乖離、アウトライヤー影響の有無
- 解釈:効果のメカニズムを補助指標で検証。ロールアウト判断は主指標の効果量×事業価値で数値化
アイデア出しや仮説の粒度調整にはChatGPT、結果の要約や可視化叩き台にはGemini、SQLやPythonのレビューにはCopilotが便利です。ただし最終判断はデータと前提に基づく再現可能なノートブックで行い、生成AIの出力は補助扱いに留めます。
身近な企業活用例:地域スーパーのアプリ会員施策
目的は「アプリのチラシ閲覧→来店」の強化。初回のABテストでは、トップのクーポンバナー文言を変更(値引率強調 vs 旬レシピ提案)しましたが、週末セールの変動を見込まず1週間で早期停止、さらに割り当てが45:55のSRMで不合格。効果は不明のまま終了しました。
改善後は、会員ID×experimentKeyの安定ハッシュで分割、期間は3週間、MDE=+5%相対を設定。主指標はクーポン提示後7日以内の来店率、補助にチラシ閲覧回数、ガードレールにアプリクラッシュ率と退会率を置きました。サンプルサイズは日次流入から逆算して各群約4.5万露出を確保。実施後、SRMは良好、来店率は+6.2%相対(95%CI:+2.1〜+10.1%)、チラシ閲覧は+11%増、客単価は差なし、ガードレールは閾値内。値引率強調案を全体展開し、同時に新規ユーザーではレシピ提案の方が良い兆しが見えたため、次回の事前登録セグメントに反映しました。コピー案の発散にはChatGPT、SQLのサンプリング誤り検出にCopilot、日次推移の可視化にGeminiを活用し、分析のスピードと品質を両立できました。
ABテストを継続的に回すには、実験レジストリ、共通メトリクス定義、露出ログの標準化、ノートブック実行基盤、権限と監査ログが揃った土台が必要です。指標や割り当ての一貫性が担保されてこそ、個別のテスト結果が事業学習に積み上がります。データ解析プラットフォーム事業では、この土台をプロダクトとして提供し、プロダクトチームが迷わず仮説→設計→実行→学習を循環できる状態を作ることが、ABテストの価値を最大化する近道だと考えます。