2015-01-07

クリック率やコンバージョン率の信頼区間を求めたい! (1)

Posted on 2015-01-07, 1:08 in

わけあってクリック率・コンバージョン率の信頼区間を算出したくなったのだけど、そのやり方を調べてみたら結構ややこしかったので、調べた結果をメモに残しておきます。

はじめに

クリック率 (Click-through rate, CTR) やらコンバージョン率 (Conversion rate, CVR) を扱う仕事をしていると、少なくとも一度ぐらいはそれらの信頼区間を求めて (区間推定して) みたくなるものかと思います。

それというのも、例えば「100 回のインプレッションのうち、1 回のクリックが得られた」という標本 (サンプル) があったとして、これから CTR を点推定すると 1% になるものの、これは「サンプルサイズを増やしたときにも同様に 1% になるのか?」と言ったらそんなことは言えないわけで、ならば「どれくらいの信頼水準のときにどれくらいの範囲に真の CTR が存在しうるのか?」ということを知りたくなるわけです。この範囲を求めることがすなわち信頼区間を求める・区間推定をすることに相当します。

さて以上のようにクリック率・コンバージョン率の区間推定をしてみたいのですが、具体的にはどのようにすればいいのか? これは二項比率 (binomial proportion, この日本語訳で適切なのか、わからない…) の区間推定をすることに等しくなります。

二項比率の区間推定をする方法について、あいにく日本語で網羅的にまとまった解説が Web 上には存在しないのですが (だからこのブログエントリを書いているわけでして…) 英語 Wikipedia のページ がそこそこ充実しているので、わかる人はこちらのページを合わせて参照することをおすすめします。以降はこの Wikipedia ページと、同ページでリファレンスされているいくつかの論文 (後述) をもとに話を進めます。

二項比率の区間推定をするいくつかの方法

さて二項比率の区間推定をする方法として、今回は以下の 4 つを取り上げてみます (他にもベイズ的な確信区間などがあるわけですが、こちらは僕自身まだちゃんと理解しきれていないので割愛します)。

  • Wald confidence interval
  • Clopper-Pearson (or 'Exact') confidence interval
  • Wilson (or 'Score') confidence interval
  • Adjusted Wald confidence interval / Agresti-Coull confidence interval

以下、それぞれの区間推定方法について、数式とともにその特徴などを列挙していきます。

Wald confidence interval

$$\hat{p} \pm z_{\alpha/2} \sqrt{ \hat{p} (1 - \hat{p}) / n}$$

($\alpha$ は信頼係数、$z_{\alpha/2}$ は標準正規分布の上側 $100(\alpha/2)$ % 点、$n$ はサンプルサイズ or 試行回数、$\hat{p}$ は二項比率の推定値)

二項分布 $B(n,p)$ は正規分布 $N(np, np(1-p))$ で近似できることから、二項比率の信頼区間も正規分布 $N(p,p(1-p)/n)$ で近似することができるため、上記の式で信頼区間を求めることができます。

  • 数式がわりと容易である
    • つまりは実装するのも比較的楽、ということ
  • この手法により求まる信頼区間は、信頼水準から得られるそれよりも狭くなる (= 実際のカバレッジが低くなる) 傾向にある
    • サンプルサイズが小さい ($n < 100$ ぐらいの) 場合に、特にその傾向が表れる
    • また、 $p$ が 0.5 から 0 もしくは 1 に偏っているほどに顕著になる
  • 下側信頼限界が負数に、もしくは上側信頼限界が 1 を超える場合がある
    • それぞれ、 $p$ が 0 に近い場合、1 に近い場合にそのような状況になる
  • 成功回数 $x$ が、$x=0$ や $x=n$ の場合は、信頼区間を求めることができない (幅が 0 の区間になる)
    • クリック数が 0、もしくはインプレッション数に等しい場合が該当する

Clopper-Pearson (or 'Exact') confidence interval

$$\left[1 + \frac{n-x+1}{x F_{2x,2(n-x+1),1-\alpha/2}} \right]^{-1} < p < \left[1 + \frac{n-x}{(x+1)F_{2(x+1),2(n-x),\alpha/2}} \right]^{-1}$$

($F_{n,m,z_{\alpha/2}}$ は、自由度 $n,m$ の F 分布における右側 $100\alpha$ 点)

Wald confidence interval は正規分布で近似することで信頼区間を求めていましたが、サンプルサイズが小さい場合や $p$ が 0 もしくは 1 に偏っている場合は正規分布での近似が難しくなります。その代わりに、F 分布を用いることで正確な (?) 信頼区間を求めることができるそうです。

  • サンプルサイズが小さくても、求まる信頼区間は Wald confidence interval のように狭くはなく、比較してカバレッジがよい
    • むしろ逆に、ちょっと広すぎる…

Wilson (or 'Score') confidence interval

$$\left( \hat{p} + \frac{z_{\alpha/2}^{2}}{2n} \pm z_{\alpha/2} \sqrt{[\hat{p}(1 - \hat{p}) + z_{\alpha/2}^{2} / 4n] / n} \right) / (1+z_{\alpha/2}^{2}/n)$$

Wald confidence interval も Clopper-Pearson confidence interval も、それぞれ信頼区間の幅については狭かったり広かったりしてちょっと扱いづらいわけですが、Wilson confidence interval ではその点においてバランスがとれた幅の信頼区間が求まるようです。

  • 数式が複雑である
    • 実装する際にエンバグしやすい ※参考
  • 得られる信頼区間は狭すぎず、広すぎず
  • サンプルサイズによらず、$p$ が 0 もしくは 1 に偏っている場合に信頼区間が狭くなる傾向がある

Adjusted Wald confidence interval / Agresti-Coull confidence interval

$$\tilde{p} \pm z_{a/2} \sqrt{ \tilde{p} (1 - \tilde{p}) / \tilde{n}}$$

$$(\tilde{n} = n + z_{\alpha/2}^{2},\ \tilde{p} = \frac{1}{\tilde{n}} \left(x + \frac{z_{\alpha/2}^{p2}}{2} \right) )$$

Wald confidence interval はサンプルサイズが小さい場合に信頼区間の幅が狭く、結果としてカバレッジが低下する問題がありました。一方でこの Adjusted Wald confidence interval では、信頼係数 $\alpha$ から定まる $z_{\alpha/2}$ を用いて $n,x$ を調整し、 $\tilde{n}, \tilde{p}$ を算出しています。そして、この $\tilde{n}, \tilde{p}$ を用いて、Wald confidence interval の式を使い、信頼区間の近似値を算出しています。

特に $\alpha$ が 0.05 の場合は adding two "successes" and two "failures" と言っているとおり、$n$ に $2 + 2 = 4$ を加え、$x$ に $2$ を加える操作をすればだいたいいい感じになってくれます。

  • 数式はまだ容易な方ではある
  • サンプルサイズが小さい場合であっても、信頼区間が狭くなるようなことはない
    • Wilson confidence interval 同様にバランスのとれた幅の信頼区間が求まる
  • 下側信頼限界が負数に、もしくは上側信頼限界が 1 を超えうる問題は健在している

クリック率・コンバージョン率の特性

ここまで区間推定方法について見てきましたが、これらを適用する先のクリック率やコンバージョン率の特性についても見ておきましょう。

  • クリック率
    • サンプルサイズ (インプレッション数) は十分な大きさとなる
      • コンテキストを考慮した CTR を算出する場合はその限りではない
    • 値は常に小さな値になりがちで、0 に近くなる
      • 1% に満たないことも十分にあり得る
  • コンバージョン率
    • サンプルサイズ (クリック数) が小さいことがある
    • 値はまちまちで、一桁 % のときもあれば二桁 % になることもある
  • 共通して言えること
    • 0% となるケースを考慮するべき

現時点での推測

長々と書いてきましたが、上記をふまえると、クリック率やコンバージョン率の区間推定には Agresti & Coull の Adjusted Wald confidence interval を利用するのがよいのではないか、と考えられます。

ただ厳密には、クリック率・コンバージョン率の特性を想定したテストケースをいくつか用意して、実際のカバレッジを測定するシミュレーションをしてみないことには胸を張って「○○ がいい!」とは言えないかな… と思います (シミュレーションは次回のブログエントリに書く予定)。

参考文献

本ブログエントリは、主に以下 2 つの論文で述べられている内容をまとめたものとなっています。より詳しく知りたい方はこれらの論文を読まれることをおすすめします。

0 コメント:

コメントを投稿