入力フォームを短くしたら、申し込みが増えた。しかし変更前後で広告も対象者も違った。これでは、フォームの変更が増加を生んだのか判断しにくくなります。
実験計画法は、調べたい変更と、それ以外の違いを分けて比較するために、割付・測定・分析を先に設計する考え方です。後から複雑な計算をしても、比較対象が壊れていれば解釈は難しいままです。
30秒で要点
- 変更する内容、比較条件、対象、主指標、観測期間を先に固定します。
- 何をランダムに分けるかと、独立した単位がいくつあるかを区別します。
- 事前の条件をそろえるブロック化と、組み合わせを調べる要因実験を使い分けます。
- 必要人数と終了条件には仮定があります。途中で良い結果が出たことだけで採用しません。
まず、何を比べる実験かを一文にする
例えば「登録済みの対象利用者に、現在のフォームAと入力欄を減らしたフォームBを割り付け、割付後14日以内の申し込み完了率を比べる」と決めます。ここで14日は説明用で、全ての実験に適した期間ではありません。
表が収まらない場合は、横にスクロールできます
| 項目 | 事前に決める内容の例 |
|---|---|
| 変更と対照 | Bでは入力欄だけを減らし、Aは現在の内容を維持する |
| 対象 | 割付前の条件で決めた利用者。途中の行動で都合よく除かない |
| 主指標 | 割付された利用者のうち、所定期間内に完了した人の割合 |
| 悪影響を見る指標 | 誤入力、問い合わせ負担、処理失敗など |
| 計測 | 同一人物のID、重複、記録漏れ、遅れて完了する人の扱い |
| 判定 | どの差を重視し、いつ、どの方法で評価するか |
ランダム化・反復・ブロック化の役割を分ける
ランダム化は、対象を偶然の仕組みで条件へ割り付けることです。担当者が購入しそうな人だけをBへ入れるような、系統的な選別を避けます。ただし、有限の人数で全属性が完全に一致する保証はありません。「交絡を必ず排除する」という意味ではなく、割付と背景要因を系統的に結び付けない設計です。
反復は、独立した複数の実験単位で条件を試し、変動を把握できるようにすることです。NISTの完全無作為化計画では、処理を実験単位へランダムに割り付け、各処理を反復する形を説明しています。
利用者100人が10回ずつ訪問しても、独立した利用者1,000人の実験にはなりません。同じ人の訪問は似やすく、AとBを行き来すると変更の影響も混ざります。利用者へ割り付けるならIDを安定させ、利用者単位の集計や反復を考慮した分析を設計します。
店舗単位で価格を変えるなら、割付単位は店舗です。1店舗内の注文を全て独立とみなすと、不確実性を小さく見積もることがあります。店舗やチーム内で影響が共有される設計では、そのまとまりを考慮した人数設計と分析が必要です。時期を変えて再実施することも有用ですが、独立した単位を増やす反復と、異なる状況で再現するかを調べる追試は分けて考えます。
ブロック化は、分かっている条件の中で比べる
新規利用者と既存利用者で完了率が違うと分かっているなら、この条件を割付前に分け、各区分の中でAとBへ割り付ける設計が考えられます。これがブロック化です。NISTの乱塊法の説明では、関心のある処理以外の変動要因をブロックとして扱います。
図では各区分の人数を固定した上で、誰をA/Bへ入れるかを無作為に決めています。ブロック化は全てのばらつきを消す方法ではありません。区分内の差を比較し、推定したい対象に合わせた重みや分析方法を事前に決めます。実験後に購入したかどうかで分ける操作は、事前条件によるブロック化とは別です。
二つの変更が影響し合うなら、組み合わせを調べる
「案内文A/B」と「入力欄が多い/少ない」を同時に調べるなら、2×2の4組を作る要因実験が考えられます。NISTの完全要因計画は、各要因の水準の全ての組み合わせを試す設計です。
次は各組1,000人とした、説明用の仮想集計です。実績や採用を勧める結果ではありません。
表が収まらない場合は、横にスクロールできます
| 入力欄 | 案内文Aの完了数・率 | 案内文Bの完了数・率 | B−A |
|---|---|---|---|
| 多い | 20/1,000人=2% | 30/1,000人=3% | +1ポイント |
| 少ない | 40/1,000人=4% | 80/1,000人=8% | +4ポイント |
案内文を変えた差が、入力欄の条件で違っています。この交互作用を、率の差の尺度で表すと、(8−4)−(3−2)=3パーセントポイントです。単に二つの改善を足せばよいとは限らないことが分かります。
ただし、この表だけで交互作用が統計的に確かだとは言えません。割付が妥当か、不確実性がどれくらいあるかを分析します。4組から都合のよい比較だけを後で選ばず、主な比較、交互作用の尺度、多重比較の扱いを先に定めます。
必要人数は「何を見つけたいか」で変わる
購入率2%を2.5%へ変える差を検出したいとします。差は0.5パーセントポイント、相対的には25%増です。「0.5%改善」だけではどちらか分かりません。
独立した利用者の購入有無を比べ、次の仮定で、2比率のz検定の正規近似による検出力を計算した例です。
表が収まらない場合は、横にスクロールできます
| 設計条件 | この仮想例の値 |
|---|---|
| 基準率と検出したい率 | 2%と2.5% |
| 群への配分 | A/B同人数 |
| 有意水準と検定 | 5%、両側 |
| 検出力 | 80% |
| 判定 | 事前に決めた最終時点で1回 |
| 必要人数の計算結果 | 各群13,809人、合計27,618人 |
計算はstatsmodelsが説明する2独立比率の検出力と同じく、帰無仮説ではプールした分散、対立仮説では群別の分散を使います。整数へ切り上げた人数で検出力が80%を超えることを、別実装の正規分布計算でも確認しています。これは仮定の下での近似値で、全てのA/Bテストの必要人数ではありません。
検出力80%は、想定した差があるときに、この検定が帰無仮説を棄却する確率です。今回の施策が成功する確率ではなく、毎回必ず差を見つける保証でもありません。欠測、店舗単位の割付、複数指標、途中での判定には別の設計が必要です。期間も人数だけでなく、曜日の構成や結果が確定するまでの時間を考えて決めます。
途中の監視と、効果の判定を分ける
実験中にエラーや重大な悪影響を確認することは必要です。一方、毎日通常のp値を計算し、有意になった日に成功として止めると、固定した1回の検定とは誤判定の性質が変わります。Microsoft Researchの実験中の確認事項も、反復検定への対応や、予定した割付比率とのずれを扱っています。
途中で効果判定するなら、逐次的な判定方法を設計に含めます。安全のため停止した場合も、その理由と観測範囲を報告し、当初予定した精度で効果を確認できたとは扱いません。
開始前に、問いの一文、割付単位、必要人数と期間、計測確認、終了・除外・分析の規則を一枚に残してください。その設計が守られたかを確認した上で、A/Bテストの結果を効果量と区間で読む段階へ進みます。比較の仮定そのものは因果推論入門、問いの整理は統計の判断ガイドで確認できます。