ABテスト(2)_リストの分割

前回に引き続き、ABテストについて書きます。

blog.hatena.ne.jp

リストの分割方法


前回、ABテストのリストをAとBで分割するときに、以下の2つでどちらが巧く分割できるか試すと書きました。

  1. 単純無作為
  2. 契約状況・契約プラン・業種などの項目を、AとBのグループで均等になるように調整してから分割

実際に2つの方法で、AとBで上記項目(属性)の比率が1:1にどれだけ近づけたか、検証してみました。

なお、以降は1の方法を単純ランダム化、2の方法を層化ランダム化と表現します。

この考え方は、統計学で母集団からの標本抽出をする際の「層化抽出法」に似ていますね。

ja.wikipedia.org

分割結果


どのように分割し、どういった結果が出たか載せれば分かりやすいのですが、一般公開ブログということもありますので、 抜粋のみ載せようと思います。

各属性で細分化したブロックごとに、クロス集計で比率を確認しました。

注)属性:posの契約状況・posプラン・業種など

  • 単純ランダム化

    • 細分化ブロックのデータ数が1000以上

      • AとBの比:50%:50%から1~2%、偏り
        • 例)49%:51%
      • 総計に対する比率のAB差:最大で1%程度偏り
        • 例) 9%:10%
    • 細分化ブロックのデータ数が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%、ほぼ偏りなし

考察


概ね、やってみる前からの想像通りの結果となりました。以下の条件が揃っていれば、単純ランダム化でも問題なさそうです。

  • データ数が十分
  • 層化する属性が少ない
  • 属性による結果の影響が少ないことが確実

ただし、今回はリストの分割方法による影響を極力除外したかったので、層化ランダム化を採用しています。

次回はどこまでの精度を求めるかについて触れます。

以上です。