ABテスト(2)_リストの分割
前回に引き続き、ABテストについて書きます。
リストの分割方法
前回、ABテストのリストをAとBで分割するときに、以下の2つでどちらが巧く分割できるか試すと書きました。
- 単純無作為
- 契約状況・契約プラン・業種などの項目を、AとBのグループで均等になるように調整してから分割
実際に2つの方法で、AとBで上記項目(属性)の比率が1:1にどれだけ近づけたか、検証してみました。
なお、以降は1の方法を単純ランダム化、2の方法を層化ランダム化と表現します。
この考え方は、統計学で母集団からの標本抽出をする際の「層化抽出法」に似ていますね。
分割結果
どのように分割し、どういった結果が出たか載せれば分かりやすいのですが、一般公開ブログということもありますので、 抜粋のみ載せようと思います。
各属性で細分化したブロックごとに、クロス集計で比率を確認しました。
注)属性:posの契約状況・posプラン・業種など
単純ランダム化
細分化ブロックのデータ数が1000以上
- AとBの比:50%:50%から1~2%、偏り
- 例)49%:51%
- 総計に対する比率のAB差:最大で1%程度偏り
- 例) 9%:10%
- AとBの比:50%:50%から1~2%、偏り
細分化ブロックのデータ数が100以上1000未満
- AとBの比:50%:50%から最大5%ほど偏り
- 総計に対する比率のAB差:最大で0.9%程度偏り
層化ランダム化
細分化ブロックのデータ数が100以上
- AとBの比:ほぼ1:1(50%:50%)に分割できていました。感動ですね!
- 総計に対する比率のAB差:最大で0.02%、ほぼ偏りなし
細分化ブロックのデータ数が100未満
- AとBの比:50%:50%から数%の偏りができていました。これは仕方ないですね。
- 総計に対する比率のAB差:最大で0.02%、ほぼ偏りなし
考察
概ね、やってみる前からの想像通りの結果となりました。以下の条件が揃っていれば、単純ランダム化でも問題なさそうです。
- データ数が十分
- 層化する属性が少ない
- 属性による結果の影響が少ないことが確実
ただし、今回はリストの分割方法による影響を極力除外したかったので、層化ランダム化を採用しています。
次回はどこまでの精度を求めるかについて触れます。
以上です。