stat-ab-testing について
A/B テストの設計と分析を支援するスキルです。開始前のサンプルサイズ計算を重視し、停止ルールに応じた分析方法を示します。
主な機能
- 01比率指標のサンプルサイズ計算
- 02頻度論・ベイズ・逐次検定
- 03実験設計チェックリスト
- 04ランダム化と指標の確認
- 05有意性とガードレール指標の分析
活用シーン
- 01開始前に必要なサンプル数を見積もる
- 02停止要件に応じた検定方法の選択
- 03実験指標とランダム化の確認
- 04結果の実務上の意味を評価
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ asgard-ai-platform/ skills --skill stat-ab-testingインストール後、Claude Code で/stat-ab-testingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
examples/sample_scenario.mdreferences/bandits.mdbayesian-ab.md詳細
A/B テストの統計
フレームワーク
IRON LAW: Calculate Sample Size BEFORE Running the Test
Running a test without knowing the required sample size leads to two
failures: stopping too early (false positives) or running too long (waste).
Required inputs: baseline conversion rate, minimum detectable effect (MDE),
significance level (α), power (1-β). Calculate BEFORE starting.
サンプルサイズの計算式(比率)
n per group ≈ (Z_α/2 + Z_β)² × [p₁(1-p₁) + p₂(1-p₂)] / (p₁ - p₂)²
クイックリファレンス(α=0.05、検出力=0.8):
| ベースライン率 | MDE(相対値) | グループあたりのN |
|---|---|---|
| 5% | 10%(→5.5%) | 約58,000 |
| 5% | 20%(→6.0%) | 約15,000 |
| 10% | 10%(→11%) | 約15,000 |
| 10% | 20%(→12%) | 約4,000 |
テスト手法
| 手法 | 仕組み | 最適なケース |
|---|---|---|
| 頻度論的手法(固定期間) | サンプルサイズを設定し、最後まで実行してから分析します | 標準的な手法で、十分に理解されています |
| ベイズ手法 | データに基づいて確信度を更新し、改善の確率を計算します | 確率に関する表現(「Bの方が良い確率は90%」)が必要な場合 |
| 逐次検定 | 調整済みのしきい値を使い、一定間隔で結果を確認します | 明確な勝者が出た場合に早期終了する必要がある場合、または下振れリスクを抑えたい場合 |
実験設計チェックリスト
- 仮説:何が起きると予想し、その理由は何ですか?
- 主要指標:重要な指標を1つ(コンバージョン、収益、継続率)
- ガードレール指標:悪化してはならない指標(ページ読み込み時間、エラー率)
- ランダム化の単位:ユーザー、セッション、デバイスのどれですか?
- サンプルサイズ:ベースライン、MDE、α、検出力から算出します
- 期間:週次サイクルを考慮します(最低1~2週間)
- 停止ルール:事前に定義します。補正なしに途中で結果を確認して早期終了してはなりません
分析手順
- ランダム化のバランスを確認します(処置前の指標でグループを比較できますか?)
- 観測された差と信頼区間を計算します
- 有意差検定を実行します(比率にはz検定、連続値にはt検定)
- ガードレール指標を確認します
- 実務上の有意性を考慮して解釈します
出力形式
# A/B Test Design: {Experiment Name}
## Hypothesis
- H₀: {no difference}
- H₁: {expected improvement}
- Primary metric: {metric}
- MDE: {X% relative}
## Sample Size
- Baseline rate: {X%}
- Required N per group: {N}
- Estimated duration: {days/weeks}
## Results (post-test)
| Metric | Control | Treatment | Diff | CI (95%) | p-value |
|--------|---------|-----------|------|----------|---------|
| {primary} | X% | X% | +X% | [X, X] | {value} |
## Decision
{Ship / Don't ship / Extend test} — {rationale}
注意点
- 途中で結果を確認すると偽陽性が増加します:毎日結果を確認し、p < 0.05になった時点で停止すると、偽陽性率が30%以上になる可能性があります。途中で結果を確認する必要がある場合は、逐次検定の手法を使用してください。
- 新奇性効果:新機能は、ユーザーが慣れるにつれて薄れる効果を示すことがあります。効果が安定するまで、十分な期間(2週間以上)テストを実施してください。
- シンプソンのパラドックス:全体では肯定的な結果でも、すべてのサブグループでは否定的(またはその逆)になることがあります。主要な切り口ごとに分けて分析してください。
- ネットワーク効果/干渉:処置群のユーザーが対照群のユーザーとやり取りする場合(ソーシャル機能、マーケットプレイスなど)、独立性が成り立ちません。クラスター単位でランダム化してください。
- 統計的有意性のしきい値は恣意的です:α=0.05は慣例であり、絶対的な真理ではありません。重大な意思決定(価格設定、大規模なUX変更)では、α=0.01を検討してください。
参考資料
- ベイズA/Bテストの手法については、
references/bayesian-ab.mdを参照してください - マルチアームド・バンディットの手法については、
references/bandits.mdを参照してください
コメント
Markdown 対応