Agently/Skill Store/ABテスト設計(Statistical AB Test Designer)
📊

ABテスト設計(Statistical AB Test Designer)

統計的に妥当なABテストを設計するスキル。仮説の定式化からサンプルサイズ計算、

analyticsdataby agently-team

ABテスト設計(Statistical AB Test Designer)


概要


統計的に妥当なABテストを設計するスキル。仮説の定式化からサンプルサイズ計算、

バリエーション設計、テスト期間の見積もり、結果解釈のガイドラインまでを一貫して提供する。


入力


  • テスト対象(ページ/機能/メール/広告等)
  • 現状の指標値(現在のCVR/CTR等)
  • 改善仮説(何を変えると何が良くなるか)
  • (任意)日次トラフィック量
  • (任意)有意水準(デフォルト: 95%)
  • (任意)検出力(デフォルト: 80%)

  • 実行手順


    Step 1: 仮説の定式化


    明確な仮説を以下のフォーマットで定義:


    ```

    テスト仮説シート:


    ■ 観察(現状の課題)

    {ページ/機能}において、{指標}が{値}であり、

    {問題の具体的な記述}が発生している。


    ■ 仮説

    {変更内容}を実施することで、

    {指標}が{現状値}から{目標値}に改善する。


    ■ 根拠

    {仮説を支持するデータ/ユーザーリサーチ/業界知見}


    ■ 指標定義

    主要指標(Primary Metric): {指標名}({定義})

    副次指標(Secondary Metric): {指標名}({定義})

    ガードレール指標: {指標名}(悪化させない指標)


    ■ 帰無仮説 H₀

    コントロールとテストの{主要指標}に差はない(μA = μB)


    ■ 対立仮説 H₁

    テストの{主要指標}はコントロールより高い(μB > μA)

    ```


    Step 2: サンプルサイズ計算


    以下のパラメータでサンプルサイズを算出:


    ```

    計算パラメータ:

    ベースライン転換率 (p₁): {値}%

    検出したい最小効果 (MDE): {値}%(相対変化率)

    有意水準 (α): 0.05(片側/両側: {選択})

    検出力 (1-β): 0.80


    計算式(二項比率の場合):

    p₂ = p₁ × (1 + MDE)


    n = (Z_α + Z_β)² × (p₁(1-p₁) + p₂(1-p₂)) / (p₂ - p₁)²


    Z_α (95%, 両側) = 1.96

    Z_β (80%) = 0.84

    ```


    計算結果:


    ```

    必要サンプルサイズ:

    各バリエーション: {数値}

    合計: {数値}(コントロール + テスト)


    MDE感度テーブル:

    MDE | サンプルサイズ/群 | 合計 | 推定日数

    ──────┼─────────────────┼────────┼────────

    5% | {値} | {値} | {値}日

    10% | {値} | {値} | {値}日

    15% | {値} | {値} | {値}日

    20% | {値} | {値} | {値}日

    25% | {値} | {値} | {値}日

    ```


    Step 3: バリエーション設計


    ```

    コントロール(A):

    現状のまま変更なし

    スクリーンショット/説明: {記述}


    テスト(B):

    変更点: {具体的な変更内容}

    変更理由: {仮説との紐付け}


    変更要素の原則:

    - 1テストにつき1変数のみ変更する(多変量テストは別途設計)

    - 変更はユーザーが知覚できるレベルであること

    - 技術的に安定して実装できること

    ```


    Step 4: テスト期間の見積もり


    ```

    テスト期間計算:

    日次トラフィック: {数値}/日

    テスト対象への到達率: {値}%

    テスト対象の日次流量: {数値}/日

    必要合計サンプルサイズ: {数値}


    最小テスト期間 = 必要サンプルサイズ / 日次流量

    = {数値} / {数値}

    = {値}日


    推奨テスト期間: {値}日

    (最低2週間を確保し、曜日効果を排除するため7の倍数に切り上げ)


    期間に関する制約:

    - 最低期間: 14日(曜日変動を2サイクル以上カバー)

    - 最大期間: 56日(テスト疲れ・外部環境変化のリスク)

    - 避けるべき期間: 大型セール/祝日/システム変更と重複

    ```


    Step 5: セグメント汚染の防止


    テストの内的妥当性を担保するためのチェックリスト:


    ```

    セグメント汚染防止チェックリスト:


    □ ランダム割り当て

    - ユーザー単位(Cookie/UserID)で固定割り当て

    - セッション単位の割り当ては避ける(同一ユーザーがA/B両方を見るリスク)


    □ サンプル比率の検証(SRM: Sample Ratio Mismatch)

    - 期待比率: 50:50

    - 実測比率を毎日監視し、±1%以上の偏りがあれば実装バグを疑う

    - χ²検定で p < 0.001 なら即座にテスト停止


    □ 外部要因の制御

    - テスト期間中に他の変更をデプロイしない

    - テスト対象ページ以外の変更は記録する

    - 大規模キャンペーンとの重複を避ける


    □ ノベルティ効果の考慮

    - 新規ユーザーと既存ユーザーを分けて分析する

    - テスト開始直後のデータ(1〜2日)は慎重に解釈する


    □ 複数テストの干渉

    - 同一ページで複数テストを同時に実行しない

    - 異なるページのテストは独立性を確認する

    ```


    Step 6: 結果解釈ガイドライン


    ```

    テスト終了後の判定フロー:


    1. SRMチェック

    A群: {数値}, B群: {数値} → 比率 {値}:{値}

    χ²検定 p値: {値} → {OK/NG}


    2. 統計的有意性の判定

    A群CVR: {値}% (n={数値})

    B群CVR: {値}% (n={数値})

    差分: {値}pp(相対変化: {値}%)


    p値: {値}

    95%信頼区間: [{下限}%, {上限}%]


    判定:

    p < 0.05 かつ 信頼区間が0を含まない → 統計的に有意

    p >= 0.05 → 有意差なし


    3. 実用的有意性の判定

    効果量が実務的に意味のある大きさか?

    - CVR +0.1pp → 技術的に有意でも実務的にはインパクト小

    - CVR +1.0pp → 実務的にもインパクト大


    4. 判定マトリクス

    統計的有意 + 実用的有意 → テスト版を採用

    統計的有意 + 実用的微小 → 再検討(コスト対効果)

    統計的非有意 → コントロールを維持

    ガードレール悪化 → テスト版を棄却

    ```


    出力フォーマット


    ```markdown

    ABテスト設計書: {テスト名}

    作成日: {YYYY-MM-DD}


    1. テスト概要

  • 仮説(Step 1)
  • 主要指標 / 副次指標 / ガードレール

  • 2. 統計設計

  • サンプルサイズ(Step 2)
  • テスト期間(Step 4)
  • MDE感度テーブル

  • 3. バリエーション定義(Step 3)

    4. 汚染防止チェックリスト(Step 5)

    5. 結果解釈ガイド(Step 6)


    6. 実施スケジュール

    | フェーズ | 期間 | 内容 |

    |---------|------|------|

    | 準備 | {日数} | 実装・QA |

    | 実行 | {日数} | テスト稼働 |

    | 分析 | {日数} | 結果集計・判定 |

    | 展開 | {日数} | 勝者の本番適用 |

    ```


    注意事項


  • p値ハッキング(途中でテストを止めて有意な瞬間を拾う)を絶対に行わない
  • 事前に決めたサンプルサイズに達するまでテストを継続する
  • 複数の指標で有意性を検定する場合はBonferroni補正を適用する
  • ベイジアンABテストを使う場合は事前分布の設定根拠を明記する