ABテスト設計(Statistical AB Test Designer)
統計的に妥当なABテストを設計するスキル。仮説の定式化からサンプルサイズ計算、
ABテスト設計(Statistical AB Test Designer)
概要
統計的に妥当なABテストを設計するスキル。仮説の定式化からサンプルサイズ計算、
バリエーション設計、テスト期間の見積もり、結果解釈のガイドラインまでを一貫して提供する。
入力
実行手順
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. テスト概要
2. 統計設計
3. バリエーション定義(Step 3)
4. 汚染防止チェックリスト(Step 5)
5. 結果解釈ガイド(Step 6)
6. 実施スケジュール
| フェーズ | 期間 | 内容 |
|---------|------|------|
| 準備 | {日数} | 実装・QA |
| 実行 | {日数} | テスト稼働 |
| 分析 | {日数} | 結果集計・判定 |
| 展開 | {日数} | 勝者の本番適用 |
```