間違った A/B テストの例
普段このような A/B テストを行っていませんか?
- 1 日目:さあ今日から A/B テスト開始だ!
- 7 日目:さてさて結果はどうなってるかな。うーん有意差が出ないなあ。もう 1 週間実施してみよう。
- 14日目:お、有意差が出たぞ!この結果をもって施策を採用しよう!
1 週間のテスト期間では有意差が検出できなかったため、テスト期間を 2 倍に延ばしています。その結果有意差が検出できるようになったため、そこでテストを終了し、施策を採用することを決定しています。ここで考えているのは仮想の人物ですが、もし 2 週間後でも有意差が出なかったら 3 週間に延ばしていたかもしれませんね。
このように、有意差を追い求めてテスト期間を延ばすことは大きな間違いです。
有意差は作れる!
具体的な数値例を見ていきましょう。例えば 1 週間のテスト期間を経て、以下のようなデータが得られたとします。このデータに対して検定をしてみると、有意差は検出されません (有意水準を 5% とする片側検定)。
パターン | サンプルサイズ | コンバージョン数 | CVR |
---|---|---|---|
A | 100 | 20 | 0.2 |
B | 100 | 30 | 0.3 |
もしこのテストをさらに 1 週間継続し、以下のようなデータが得られたとします。先のデータを単に 2 倍しただけですね。これに対して検定をすると、今度は有意差が検出されます。
パターン | サンプルサイズ | コンバージョン数 | CVR |
---|---|---|---|
A | 200 | 40 | 0.2 |
B | 200 | 60 | 0.3 |
データから計算される両パターンの CVR は変わらずとも、サンプルサイズを大きくするだけで有意差が生まれます。これはなにも不思議なことではありません。統計的仮説検定超入門!その2 でも解説したように、サンプルサイズを大きくすることで仮説が棄却されやすくなるのでした。
こんなふうに、有意差というのは作ることができます。できてしまうんです。しかし本来 A/B テストというものは、感覚や経験からでは決められないことを、データを参考にして決めていくもののはずです。有意差が欲しいがためにテスト期間を延ばすというのは、施策の採用ありきで統計のお墨付きを得ることに等しいです。これではデータドリブンな意思決定とは言えませんね。
正しい考え方
ではどうすれば良いのでしょうか。実践的な考え方はいくつかあります。
テスト期間を予め決めておく
有意差が出るまでテスト期間を延長することがよろしくないので、予めテスト期間を決めておくと良いでしょう。テスト期間を決めるための統計的手法としては、サンプルサイズ設計があります。しかしこれは中級以上の道具立てであるため、ビジネスの現場で使うのは難しいかもしれません。
より実践的な方法としては、テスト期間を 1 週間単位で考えるというものです。1 週間単位にする理由は、曜日の効果を取り除くことができるからです。たとえば休日と平日でユーザーの性質が異なる場合、平日の 5 日間だけでテストを行ってしまうと、性質の異なる休日ユーザーのデータが反映できません。その逆もしかりです。このような理由から、1 週間単位でテスト期間を設定するのが良いと思われます。
2 週間をベースに考え、テスト内容によっては 3 週間や 4 週間に増やすなどすると良いでしょう。
有意差で施策の採用可否を判断しない
次に大事なことは、有意差があるかどうかで施策の採用可否を判断しないことです。なまじ有意差の有無という二項対立に身を委ねているから、テスト期間を延長しようなどと考えてしまうのです。統計的に有意差があるかどうかではなく、ビジネス的に意味のある結果が得られているかを重視しましょう。CVR 等のターゲット指標がビジネス的に向上したか、それが大事です。
差が無いこともひとつの結果として受け止める
統計的有意差が得られなかったとしても、それも一つの結果です。あまり差が無い (≒効果無い) なら施策を採用するまでもない、という判断をするのも立派な A/B テストのフローです。
まとめ
統計的に差があるかどうか (有意) とビジネス的に差があるかどうか一致しません。大事なのは後者です。もう少しテスト期間を延ばせたら...というのは誰もが考えてしまうことですが、何のために A/B テストを行っているのかを再認識しましょう。