施策前後のCV率に有意差はあるのか?

はい、タイトルのとおりでございます。とある改善を行いまして、その効果というのが誤差の範疇なのか、それとも効果があったのか(プラスマイナス問わず)知りたい状況に陥りましたんで、いろいろ調べてみましたよというお話。

Google Website Optimizer とか使えば、テストを実行してしばらくしたら勝手にこっちの方が何%優れてるよーって教えてくれるんですけど、今回のケースだと GWO の実装が難しかったので Google Analytics で指標を読み取ることにしました。

やりたいことはですね。手元にあるデータは施策前後の1週間毎のコンバージョン率(8週間分)がありますんで前後8週間の平均CV率を出して何%改善したのか確認したいわけです。で、今回の場合1%程度改善されたのですが、これって別になんにもしなくても1%上がっちゃったりするのか、それとも偶然ではない有意の差なのかってことを理解しようと思います。

施策前後8週間のコンバージョン率の遷移

1W 2W 3W 4W
Before 93.82% 93.83% 93.23% 93.65%
After 94.73% 94.77% 94.18% 94.71%
5W 6W 7W 8W
Before 93.99% 93.65% 93.95% 94.37%
After 94.99% 94.76% 94.45% 94.59%

まずはじめに

はい、大学で統計学の単位を取ったような気もしないわけでもないそうゆう気もしないわけでもないという感じなので、ほぼ統計的知識ゼロです。間違いなどあれば指摘してもらえると嬉しいです。

手始めに『有意差』とかでググッてみるのですが、出てくるリソース読んでもさっぱりなので、というか数式とか見た瞬間拒絶反応がでてくるのでウォームアップがてらこの本読んでみました。

文系の僕でも数時間で苦なく読めました(ちゃんと理解はしてないけど)。やっぱり僕みたいなトーシローが最初からガチな統計本 or ドキュメントに手を出すのは玉砕必死です。こうゆうので耐性をつけてから望んだ方が良かったです。

はい、ということでもう一度トライしてみましょう。なんということでしょう。読める、読めるぞ!ってほどでもないけども、以前よりは頭に入っていきます。

有意差検定

そうゆうことでググリマックってたらどうやら僕がしたいのはt検定という奴っぽいです。

2組の標本について平均に有意差があるかどうかの検定などに用いられる。

Yeah!これこれ!で、さらにググリマックってたらドンピシャなリソース発見!検索した中でも一番文系フレンドリーで分かりやすそうです

ここのサイトは本当に分かりやすいので、量もそんなには多くないので最初から全部読んでみるとよいと思います。

さてどうやら、t検定を行う前段階として以下の2点を調べておく必要性がありそうなので、まずはそこから始めましょう。

さてどうやら、t検定を行う前段階として以下の2点を調べておく必要性がありそうなので、まずはそこから始めましょう。

  • 標本が正規分布に従うかどうか
  • 標本の分散が等しいかどうか

Jarque-Bera 検定(標本が正規分布に従うかどうか)

t検定の wikipedia には正規分布かどうか調べるためには、コルモゴロフ-スミルノフ検定やシャピロ-ウィルク検定使えばいいよと書いてあるけど、どれも難しくて(どうやって計算するのか)わからなかった。Jarque-Bera 検定ならなんとかできそうなので、この検定で調べてみる。

とりあえず、正規分布というのは

正規分布 - 平均を山の中心として左右になめらかに広がった「つりがね型」をした分布

Jarque–Bera test

n:標本数、S:歪度、K:尖度

歪度(わいど, Skewness)- 分布の非対称性を示す指標 尖度(せんど、Kurtosis)- 分布のとんがり具合を表す指標

Jarque-Bera 検定の公式が上記になるんですけど、どうやらこのJBの値がだいたい6より小さければ、有意水準が5%で正規分布と見做して構わないらしいです。

はい、いろいろ分かんないことだらけだけど、とりあえず数値だしてみるよ。 nは8週間分あるから、8。歪度はExeclのSKEW関数を使えば出てくるよ!尖度はExeclのKURT関数を使えば出てくるよ!

標本数 n 歪度 S 尖度 K JB
Before 8 -0.118 1.4396 0.7094
After 8 -0.864 1.2489 1.5145

で、計算結果するとでどちらも6以下でおk。これでどうやら正規分布として見なしてもよさそうですね。

※ 尖度の定義 Jarque-Bera 検定の調べていると、(K-3)としている公式を見かけますがこれは尖度の定義による違いだそうです。wikipediaによると「Excelの分析ツール等は正規分布の尖度を0としている」らしいので、今回の場合は、-3する必要性はなさそうです。

F検定(標本の分散が等しいかどうか)

よし、標本が正規分布だと分かった次は分散が等しいかどうかだ。

こういった感じのことを調べるんだね。ちなみに、分散というのは

分散 - データが平均値を中心にして、どのくらいばらついているのかを示した数値

※ 標準偏差(Standard Deviation) = 分散の平方根(ルート)

分散

シグマが出てきてもうアカンΣ(´∀`;)!ってなったかた大丈夫、数列の総和って意味だよ。要は、

((データ-平均値)の2乗)の総和÷個数

ってことを言ってるだね。今回は2つの標本(データ)があるので、それぞれ分散を求める。分散はExeclのVARP関数を使えば出てくるよ!

F-test

分子に大きい方の値を当てはめて、F値を出しましょう。

分散 S
Before 0.09
After 0.05

F値は0.09/0.05の1.8になります。あとは以下の公式に当てはめていくと・・・

自由度は分子の自由度df1=n1-1、分母の自由度df2=n2-1のF分布に従う。自由度が求まったらF分布表からFαを求めることができる。

・判定1≦F≦Fαのとき、P>0.05となる→帰無仮説を棄却できない→等分散である。― F検定 (等分散の検定)

df1, df2の自由度はどちらも8-1で、7となり、F分布表より、7×7の場所は3.79となり、1≦1.8≦3.79 が成り立つ、つまり等分散と言えることができます。

t検定(Student’s t-test)

2つの標本は正規分布に従い、等分散と言えるのでようやくt検定としけこみたいところですが、もう一つだけ確認しておきたいことがあります。

対応の有無

標本の対応の有無というのは、2つの独立した母集団から標本を選んでくるのか、1つの母集団から標本を選んでくるのかということです。今回の場合、施策したサイトのユーザーの期間比較ですので、施策前後で同じユーザーというのは可能性が低いので、対応はないと判断しました。

対応のないt検定

ようやく、ほんとようやくです。ここまできたらあとは以下の資料を元に進めてくだけです。

  1. 帰無仮説を立てる
  2. 帰無仮説の否定である対立仮説を立てる
  3. 有意水準を決める
  4. 得られた標本を使って、指標tを計算する
  5. 標本の数から自由度を計算する
  6. t分布表の該当する自由度を見て、tが棄却域にはいっている(棄却)か、いない(採択)かを判定する
  7. 結論を決める

1. 帰無仮説を立てる

帰無仮説というのは「差はない」という仮説らしいです。この場合、「施策前後で差はない」という仮説を立てます。

2. 対立仮説を立てる

帰無仮説とは反対の仮説であり、「施策前後で差がないとはいえない、つまり、差がある」という仮説を立てます。

3. 有意水準を決める

どの程度の正確さをもって帰無仮説を棄却するのかという水準です。たいていは厳しくて1%、少し甘くて5%だそうなので、今回は5%とします。

4. 指標tを計算する

t = (標本平均の差) / SQRT (( Aの不偏分散 / Aの標本数) + (Bの不偏分散 / Bの標本数))

これに当てはめていけばいいんだす!めんどくハンバーガー統計さんのとこにEXCELシートありますんで、そこに当てはめていけばでます。

不偏分散 - 母分散の推定値 = ((データ-平均値)の二乗)の総和 ÷(個数 - 1)

※ SQRT関数は平方根(ルート)を求める関数です!

よって、t値は-5.78

5. 自由度を計算する

自由度 = (Aの標本数 - 1) + (Bの標本数 -1) = Aの標本数 + Bの標本数 - 2

A,Bも標本数8なので自由度は14です。

6. 棄却か採択か

7. 結論を決める

自由度が14のとき、有意水準5% 2.145, 有意水準1% 2.977となります。これをt分布で表すと上記のようなグラフになります。今回の場合、t値は-5.78となり棄却域に入ります。

よって、最初に立てた帰無仮説は棄却され、施策前後で差がないとはいえない、つまり、差があると言えます。

はい、できたー!そらできたー!やたー!

なんとかできたけど、細かいこと全然わかってないのでもう少し勉強しようと思いました(;´Д`)

有意な差があると言えると証明できたけど、それが今回行った施策によるものかっていう点はまた別問題なので気をつけてください。