A/Bテストをやるときに気をつけておくこと


この記事の概要

独断と偏見で、A/Bテストをやるときに気をつけておいた方が良いことをまとめました。
これからA/Bテストをやっていきたい!っていう人がつまずかないような記事になっていると幸いです。

また、統計に関する記載に関しては出来る限り誤った事を書かないように注意したつもりですが、私自身の統計や検定に対する理解不足から、説明や表現に間違いがあるかもしれません。その際は指摘していただけると助かります。

AAテストをやろう

AAテストとは、A系とB系で全く同じロジック・デザインを同一の比率で出し分けてそれぞれの結果を評価する方法です。
AAテストを実施する理由は大きく分けて2つです。

ABテストの仕組みが問題なく動いているか確認する

AAテストは同じロジック、デザインで出し分けして結果を計測するので、計測対象のKPIに差はつかないはずです。
しかしながら、何らかの理由(ツールが壊れた・ABテスト用の実装に不具合があったなど)でKPIに有意な差がついてしまうことがあります。もちろんこの差は本来調査したいA系とB系の間の本質的な差異ではないので、ABテストを実施する前に修正する必要があります。
もしこの差を修正することも、調べることもなく最初からABテストを実施してしまった場合、本来A系とB系の間に差がなかったにも関わらずKPIに差が出てしまい、間違った意思決定をしてしまう可能性があります。この失敗を避けるために、AAテストを実施して大きな差が発生しないことを確認する必要があります。

誤差の範囲を把握する

A系とB系で同じロジックを使用しても、計測誤差によって全く同じ数値にはなりません。
サンプルサイズを大きくすることで計測誤差は減らすことができますが、完全に誤差がなくなることはありえません。
AAテストを実施することで、全く同じロジック、デザインでテストしたときにどの程度の差が発生することがありうるのかあらかじめ把握しておくことができます。
この結果は、本番のABテストを実施して結果にそこまで差異がなかったときにA系とB系の間の本質的な差なのか、それとも単なる計測誤差なのかを判断する時に役立ちます。

ABテストで使う検定手法の前提・特徴を理解しておこう

ABテストの結果を評価する時、何らかの統計検定の手法が使われることが多いと思います。
「色々な統計検定の手法があり、何を使えばいいのかわからない…」「とりあえずみんなあの
◯◯っていう検定をしているからとりあえずこれでいこう」と流されてはいけません。

それぞれの統計検定は実行するための前提条件があるため、その前提を理解せずに誤った手法を選んでしまうと出てくる結果が無意味なものになってしまいます。

こちら の記事がABテストで使われる検定方法について大変詳しく解説してくれているので詳細な説明は省きますが、ABテストで利用する検定手法を選択する際はおおよそ次のような事柄を押さえておくと良いと思います。

  • ABテストで計測したいKPIの種類
    • 指標がクリック率のような比率なのか、売上のような連続した数値なのか
    • 前者の場合、二項検定やカイ二乗検定が有力な候補となり、後者の場合はt検定やウィルコクソンの順位和検定が有力候補となる
  • それぞれの仮説検定の帰無仮説と対立仮説は何か
  • サンプルサイズの大きさ
    • カイ二乗検定やt検定は取得できるデータの量が十分に大きい場合しか使ってはいけない

あらかじめ必要なサンプルサイズを見積もっておこう

A/Bテストで得たデータに対して統計的検定を実施する場合、十分な量のデータを確保しないと有意差が出なかった場合に「実際に帰無仮説が真」なのか「本当は対立仮説が正しいが、十分なデータ量が足りず差を検出できなかった」のか判断がつかないことがあります。
逆に不必要に大きいデータ量でA/Bテストを実施すると、本来不要なコストが掛かったり、ビジネス上は意味がない小さい効果を「有意差あり」として検出してしまう可能性があります(統計的検定ではデータの量を増やせば増やすほど、小さな差異でも有意な差として検出しやすくなる)。

上記のような状況を避けるためには、A/Bテストの前に必要なデータ量(以下、サンプルサイズと呼びます)を見積もっておく必要があります。

ここからの説明は統計的な知識を必要とするのですが、例えばA系とB系のクリック率に統計的に有意な差があるかどうか、カイ二乗検定を用いて知りたい場合は下記のような手順を踏みます。

  1. A系とB系それぞれの予想クリック率を見積もる
    • 例えば、A系の予想クリック率が1%で、B系はA系に比べて1.1倍クリック率が高そうなので1.1%と見積もる、など
    • 一般的に、A系とB系の間の差異が少ないと見積れば見積もるほど、必要とするサンプルサイズは大きくなります
      • わずかな差を見極めようとする場合、なるべく計測誤差による影響を減らす必要があるため、より多くのデータが必要になります
    • 今回はクリック率を例に出しましたが、他の指標を検定するためのサンプルサイズを求める場合も大筋は同じです。ただし、その他の検定手法を用いる場合は予想クリック率ではなく効果量(effect size)と呼ばれる指標を事前に見積もります。
      • effect sizeについてはこちらが詳しいので必要に応じてご覧ください
  2. 必要とする検定結果の精度を決める
    • サンプルサイズを決めるには、次の2つを決める必要があります
    • A系とB系には差がないにも関わらず、差があると結論してしまう確率α
    • A系とB系の間に本来差があるにも関わらず、差がないと結論してしまう確率β
    • αやβを小さくしようとする(=より精度を高める)と、必要になるサンプルサイズは大きくなります
  3. 1と2で見積もった数値を計算式に当て込んでサンプルサイズを計算する
    • 最近は下記のような大変便利なサイトがあるので、こちらに当て込んでしまうとスパッと計算してくれたりします。
    • 普段サンプルサイズを見積もる時は上記のようなサイトを使えばいいのですが、上記のサイトでやっている計算はどのような根拠に基づいているのかは、一度勉強しておくことを強くおすすめします。
      • こちらの書籍とかがおすすめです