English

トリガーを設定してABテストの感度を上げる

ABテスト実践ガイド にはABテストの感度を上げるためのトリガーの設定(ABテスト対象者の定義の仕方)について書かれている。

例えばECサイトの商品ページでABテストをするとしよう。商品ページ内の購入導線の変更や、そこに表示される関連アイテム推薦アルゴリズムの変更をテストしたいというような場合である。この時ABテストの分析時に対象者として含めるユーザーの定義には次のようなものが考えられる

単にABテストをしてデータを集めてメトリクスについて検定するだけであればどちらでも良い。しかしより感度の良い実験、つまり同じ人数でより小さいメトリクスの差まで検出できるようなABテストをしたいのであれば、後者を選択すべきである、とABテスト実践ガイドには書かれている。

これは直感的に納得いくものだと思う。というのも、サイト訪問者のうち、商品ページに辿り着かなかったユーザーは、対象としている変更を一度も目にすることがないので、純粋なノイズになるからだ。これ以上の説明が不要なのであれば、以下を読む必要はない。

今回はこの事実をあえて数式を使って考えてみたいと思う。これは単にその方が自分が納得しやすいからだ。

上の問題を定式化しよう。まず以下のように変数を用意する

すると $y$ の分布は \begin{align} p(y) &= \sum_{z=0,1}p(y|z)p(z) \notag \\ &= p_zp(y|z=1) + (1-p_z)p(y|z=0) \end{align} とかける。ここで $z$ はベルヌーイ分布に従うとし、$z=1$ の確率を $p_z$ とした。また問題設定から、$p(y|z=0)$ は確率1で $y=0$ となる分布である。

この分布の平均値と分散を考えよう。まず条件付き分布の平均と分散を \begin{align} \mu_{y|z} &\equiv \mathbb{E}[Y|Z=1] \\ \sigma^2_{y|z} &\equiv \mathrm{Var}[Y|Z=1] \end{align} と定義すると、少し計算することで周辺分布での平均は \begin{align} \mu_{y} \equiv \mathbb{E}[Y] = p_z \mu_{y|z} \end{align} 分散は \begin{align} \sigma_{y}^2 \equiv \mathrm{Var}[Y] = p_z \sigma_{y|z}^2 + p_z(1-p_z)\mu_{y|z}^2 \end{align} となることがわかる。

ABテストの感度は、サンプルサイズ $n$ を固定した時どこまで小さいメトリクスの差まで検出できるかで定式化できる。有意水準5%・検出力80%の場合には以前記事にもしたように、以下の式で近似できる1 \begin{align} \delta^2 = \frac{16\sigma^2}{n} \end{align}

まずトリガーを設定せず、サイト訪問者全員をテスト対象者とした場合 \begin{align} \delta_y^2 = 16\frac{p_z \sigma_{y|z}^2 + p_z(1-p_z)\mu_{y|z}^2}{n} \end{align} となる。トリガーを設定し、テスト対象のページの訪問者のみを考慮する場合は、サンプルサイズを $p_z\times n$ とすれば良いので \begin{align} \delta_{y|z}^2 = 16\frac{\sigma_{y|z}^2}{p_z n} \end{align} となる。あとは両者の比を取れば良いのだが、$\delta_{y|z}$ はそもそもトリガーされてないユーザー(例えば商品ページに辿り着かなかったユーザー = 必ず $y=0$ となるユーザー)を考慮していないので、$\delta_y$ と比較するには $p_z$ をかける必要がある。ということで今見たい量は \begin{align} \frac{\delta_y^2}{p_z^2\delta_{y|z}^2} =1 + (1-p_z)\left(\frac{\mu_{y|z}}{\sigma_{y|z}}\right)^2 \end{align} である。これは ($p_z<1$ なら)1より大きいので $p_z\delta_{y|z} < \delta_y$ である。2 つまり一般的に、トリガーを設定した方がより小さいメトリクスの差まで検出できるようになるということを示すことができた。

またこの式から平均が分散に比べて大きいほど、トリガーの効果が大きく、逆の場合はトリガーの影響は軽微であることがわかる。これは分布がどれだけ $y=0$ 付近に密度を持っているかどうかを反映している。

まあ当たり前の関係なのだが、算数で明確に示すとすっきりする。


1

この式が成立するには $n$ が十分大きく正規分布で諸々が近似できるというような状況が必要だが、ここでは典型的なWebでのABテストを考えているのでこの仮定は満たされているとして進める。

2

$\mu_{y|z}$ はコンバージョン率や購入金額など、正の量だと仮定している。