実験設計の統計 ― 検出力・MDE・必要サンプル数
「何件集めれば差が見えるのか」を、検出力・最小検出効果(MDE)・有意水準から逆算する方法を扱います。第一種・第二種の誤りを実務の言葉で整理し、走らせる前にサンプル数を決める——形骸化しない実験の出発点を具体例で示します。
by Shin
何件集めれば、見たい差を見つけられるのか。答えは「検出力・MDE・有意水準の3つを決めれば、走らせる前に逆算できる」です。この記事では、第一種・第二種という2種類の誤りを実務の言葉に置き換え、そこから必要サンプル数を計算するところまでを、架空のD2C企業(ここでは「SOLNA」と呼びます)で具体化します。
この連載は、観測データから因果に迫る因果編と対になります。因果編が「実験が打てない現場でどう因果に迫るか」を扱うのに対し、本連載は自分で介入を設計して因果を測る側——つまりA/Bテストや配信実験を正しく回す統計と基盤を扱います。観測か介入か、で棲み分けます。
なぜ「とりあえず流す」が事故になるのか
A/Bテストの相談で最も多いのが、必要サンプル数を決めずに走らせ、「2週間で有意にならなかったので効果なし」と結論づけるパターンです。これは多くの場合、誤りです。効果が無かったのではなく、その件数では最初から差を見つけられなかっただけかもしれません。
サンプル数を事前に決めない実験には、後で覗いて止めたくなる(peeking)という別の事故も付いてきますが、それは第4回で扱います。ここでは入口——走らせる前に件数を決める——に集中します。決めるために必要なのが、これから整理する3つのパラメータです。
第一種・第二種の誤り(実務の言葉で)
仮説検定には、構造上2種類の間違え方があります。専門語のままだと意思決定に繋がらないので、お金の言葉に置き換えます。
| 誤り | 統計の言葉 | 実務で起きること | 制御するパラメータ |
|---|---|---|---|
| 第一種の誤り | 効果が無いのに「有意」と判定(偽陽性) | 効かない施策を本番展開し、予算と工数を溶かす | 有意水準 α(通常0.05) |
| 第二種の誤り | 効果が有るのに「有意でない」と判定(偽陰性) | 効く施策を見逃して捨てる | 検出力 1 - β(通常0.80) |
ここで大事なのは、どちらの誤りが自社にとって高くつくかを先に考えることです。一度展開したら戻しにくい大規模変更なら、第一種の誤り(偽陽性)のコストが高いので α を厳しく。逆に、効きそうな施策を取りこぼしたくない探索フェーズなら、検出力を高めに(第二種の誤りを減らす)設計します。α = 0.05・検出力80%はあくまで慣習的な初期値で、自社のコスト構造で動かしてよい数字です。
検出力とMDE(どのくらいの差を見たいか)
検出力(power)は「真に効果があるとき、それを有意と検出できる確率」です。検出力80%とは、本当に効いている施策の2割を取りこぼすことを許容する、という意味でもあります。
そして検出力とセットで決めるのが MDE(Minimum Detectable Effect=最小検出効果)です。これは「これ以上小さい差なら、見つけられなくても構わない」というラインを、ビジネス価値から引く作業です。MDEは統計が決めてくれません。たとえばCVRが相対1%改善しても運用変更のコストに見合わないなら、MDEを相対1%に設定する意味はありません。「動かす価値のある最小の差」を経営判断として置く——ここが実務者の仕事です。
MDEを置くときは、相対と絶対のどちらで語っているかを必ず明示します。「CVRを相対10%上げる」と「CVRを絶対1ポイント上げる」は別物で、ベースが低い指標では混同が事故になります。ベースCVRが4%なら相対10%は絶対0.4ポイントですが、これを絶対1ポイントと取り違えると、必要件数の見積もりが大きくずれます。本記事は相対指定で統一します。
直感に反しますが、小さいMDEを見たいほど、必要サンプル数は急増します。次節で数字にしますが、見たい差を半分にすると、必要件数はおよそ4倍になります。「念のため小さい差まで見たい」は、そのまま「念のため4倍の予算と期間を払う」を意味します。だからMDEは「欲しい精度」ではなく「払える件数」とのせめぎ合いで決まります。
必要サンプル数を逆算する
比率指標(CVRなど)の2群比較では、片群あたりの必要サンプル数は近似的に次で決まります。
分母に効果量の2乗 (p2 - p1)^2 が来るのがポイントです。見たい差を半分にすると分母は4分の1になり、必要件数が約4倍に膨らむのはこのためです。手計算は不要で、statsmodels が逆算してくれます。SOLNAの既存LINE配信のCVRはベースで数%台(ここでは 4% に丸めます)。これを対照群の p1 に置き、相対10%改善を見たい最小の差(MDE)とします。
from statsmodels.stats.power import NormalIndPower
from statsmodels.stats.proportion import proportion_effectsize
# 対照群(既存LINE配信)のCVR。匿名化・レンジで丸めた値
p1 = 0.040
mde_rel = 0.10 # 相対10%改善を最小検出効果とする
p2 = p1 * (1 + mde_rel) # = 0.044
# Cohen's h(比率差の標準化効果量)に変換してから逆算
effect = proportion_effectsize(p2, p1)
analysis = NormalIndPower()
n_per_group = analysis.solve_power(
effect_size=effect,
alpha=0.05, # 第一種の誤り
power=0.80, # 検出力 = 1 - β
alternative="two-sided",
)
print(f"片群あたり必要サンプル: {n_per_group:,.0f}")
# => 片群あたり必要サンプル: 39,454片群あたり約4万件、両群で約8万件。SOLNAは月間配信規模が数万〜十数万件あるD2Cなので、ここは数週間で揃います。問題は、見たい差を欲張ったときに何が起きるかです。同じ α・検出力で、MDEだけを振ってみます。
for mde_rel in [0.05, 0.10, 0.20]:
p2 = p1 * (1 + mde_rel)
effect = proportion_effectsize(p2, p1)
n = analysis.solve_power(
effect_size=effect, alpha=0.05, power=0.80, alternative="two-sided",
)
print(f"相対MDE {int(mde_rel*100):>2}% -> 片群 {n:>10,.0f} 件 両群 {2*n:>10,.0f} 件")
# 相対MDE 5% -> 片群 154,282 件 両群 308,565 件
# 相対MDE 10% -> 片群 39,454 件 両群 78,908 件
# 相対MDE 20% -> 片群 10,297 件 両群 20,593 件相対20%なら両群2万件で済むのに、相対5%を見ようとすると両群30万件——15倍です。これが「MDEはビジネス判断」という意味です。自社のトラフィックで現実的に集まる件数から逆算して、見られるMDEの下限を先に知っておく。集まらない差を追っても、実験は永遠に有意になりません。
逆向きの確認も有用です。手元で集められる件数を固定し、そのとき検出力がいくつになるかを見ます。MDE相対10%・片群2万件では、検出力は約0.51——コイントスと大差ありません。「2万件流したのに有意にならなかった」の正体は、たいていこれです。検出力が0.5前後の実験は、効いている施策の半分を構造的に取りこぼすので、「有意でなかった=効果なし」という結論は出せません。出せるのは「この件数では判定保留」までです。
実験期間にも逆算が効きます。必要件数を1日あたりの流入で割れば最短日数が出ますが、曜日で行動が変わる指標は、平日だけ・週末だけの偏りを避けるため最低1〜2週間の整数週で回します。流入が細い場合は、件数が貯まる前に「もう有意では」と覗きたくなりますが、それが第4回で扱う覗き見の入口です。期間は最初に決め、その間は結果を見ない設計が安全です。
走らせる前に決めることリスト
ここまでを、実験を開始する前に必ず固定する設計値としてまとめます。走り出してから変えると、それ自体が検定の前提を壊します。
- 主要指標を1つ:何をもって成功とするか(詳細は第2回のメトリクス設計)。
α(有意水準):偽陽性のコストで決める。初期値0.05。- 検出力(
1 - β):偽陰性のコストで決める。初期値0.80。 - MDE:動かす価値のある最小の差。ビジネス価値から引く。
- 必要サンプル数と実験期間:上記から逆算。期間は曜日変動を含むよう最低1〜2週間の整数週で。
- 割付単位:ユーザー単位か、それで分けられないか(分けられない場合は第6回のgeo/switchback)。
この6つが埋まって初めて、実験は「結果が出る前から、出た結果をどう読むか決まっている」状態になります。形骸化するA/Bは、ほぼ例外なくこのリストのどこかが空欄のまま走っています。
参考文献
- 東京大学教養学部統計学教室『統計学入門』(赤本):検定・検出力・分布の土台。第一種/第二種の誤りと検出力の定義を厳密に確認したいときの一次参照として、筆者が学び直しで使った一冊です。
- Kohavi ほか『A/Bテスト実践ガイド』("Trustworthy Online Controlled Experiments" 邦訳):オンライン制御実験の体系的な実務書として広く参照されています。サンプルサイズ設計から組織運用までを通しで扱います。
章末チェックリスト
- 第一種・第二種の誤りを、自社のコストの言葉で説明できるか
- MDEを「動かす価値のある最小の差」としてビジネス側から設定したか
- 必要サンプル数を
α・検出力・MDEから逆算したか - 自社のトラフィックで集まる件数から、見られるMDEの下限を把握したか
- 開始前に6つの設計値(指標・
α・検出力・MDE・件数/期間・割付単位)を固定したか
ここまでは「走らせる前に件数を決める」統計の話でした。実験が打てない現場で観測データから因果に迫る判断は、対になる因果編で扱っています。次回は、そもそも何を成功と判定するか——北極星指標とガードレールの設計に進みます。