GWOとGAをくっつける

併用についてのGoogle の公式のヘルプ記事がありますので、まずは、そちらをご覧ください。

GWOは、Google Website Optimzer。GAは、Google Analytics。ともに、Googleが提供するウェブサイトの効果計測の為のツールです。この二つのツールの使用は、機能として非常に似ているので、両者の良い部分を併せてみようと言うのが、今回のエントリーです。ちなみに、GWOで何をOptimize(最適化)するのかというと、コンバージョンレートを最適化(ためのテスト)します。A/Bテスト、もしくは多変量テストで数字を見比べて、適するテストを選択するわけです。

まず、両者の比較から入ります。

GAの方が分析用の機能は豊富

GWOは、ユーザー単位(cookie)でのコンバージョンを測るという機能を提供するのですが、同じことは、GAでもできます。カスタム変数をユーザーレベルで設定すれば、そのユーザーグループでのコンバージョン率も測れます。

さらにGAは、Analyticsとウタッテルわけですので、他の指標もグループ別に分析できるわけです。

ユーザーグループ別の、滞在時間、テストページ以外の閲覧ページなどが可能です。さらに、trackEventを発行していけば、javascriptが補足するイベントをどんどん計測できるわけです。trackEventは、4つのパラメーターをとれますので、その中にsetTimeout, setIntervalなどで時間の値を組み込んでもいいです。そして、これらを、ユーザーグループ別に計測できるわけです。また、フィルター機能で自分のアクセスを除外したりするのも簡単です。

しかし、GA単独で事が足りるか? というと、そうも行かないかもしれません。

GWO側の優位点は?

実は、GWOにあまり詳しくないので、自信がないのですが、GWOの利点は、

  • テストの実装が簡単
    • 基本は、オリジナルページにcontrol scriptを埋めてやると、そこでテストページの振り分けをしてくれる。GAは、自分で作る必要がある。
    • 特に、多変量テストは、自前で作ったり、管理するのは大変だと想像します。(やったことない、、)。Follow-up Experimentという仕組みもあるようです。よくわからないけど、多数の組み合わせの中の勝ち残りと、オリジナルで、最終確認テストができるという意味?
  • 結果の解釈に説得感がある
  • なんとなく安心
    • GAで、cookieに依って違うページを見せるのは少し気持ちが悪いです。検索エンジンに良く思われないのではないか?と思ってしまいます。GWOだからOKという理屈はないですが、なんとなく安心ではあります。

とGAとGWOの利点を見ました。以後、両者の利点をいいとこ取りに挑戦です。

手順

GWOでテストを作り、そのGWOのcookie値をGA側のカスタム変数に入れて、GAでも分析できるようにします。GWOには、combination関数というのがあって、テストの振り分け判別用の値が取れるみたいですが、オリジナルページ(control script内)でしかとれないようですMVTを行う場合には、ページ振り分けがあるわけではないので問題ない。 ですので、関数を使わずにcookieを直接読んで、値を設定することにします。

具体例は省略します(*このサイトのトップページが、現在テスト対象になってます。そのうち外します)。

GAと同じです。ウェブプロパティIDが違うので、別々にキチンと設定してやればいいはずです。

今、WEBで検索していて見つけたのですが、Poor man’s GWO/Analytics Integration のやり方がいいです。いろいろ改善点があるのですが、カスタム変数に入れるのではなく、ユーザー定義に入れておけば、セカンダリーディメンジョンで見られるので、アドバンスフィルターで検索するなりして、手早くレポートで確認ができると思います。他にも、改善点がいろいろとあるようです。”いつかやる”にしておきます。

レポート画面

ユーザー定義ではなく、カスタム変数に入れてしまったので、レポート画面が面倒くさいですが、カスタムレポートで見たい指標を並べておいて、ゴールのページを通過したセッションをアドバンスセグメントで、括り出しておく形ですがいいです。ユーザー定義を使った場合は、ゴールのページで、ユーザー定義をみればいいと思います。

WS000002

GAでは、コンバージョン以外の指標を見られるのが、アドバンテージ。

GWOの方は、

WS000003

GWOでは、統計的な判断をしてくれたレポートにしてくれるのが、アドバンテージ。

GAとユーザーの母数が違いますが、GAの方で当初設定ミスをしたせいだと思ってます。また、GWOの方はフィルターが使えないので、自分のアクセスを除外できないと思います。GWOとGAで完全の統合してしまえばいいとも思いますが、冒頭で挙げたGWOの利点とバッティングするのかもしれません。

*) wordpressでテストを作る時は、ページのテンプレートを作って、そこにコントロールスクリプトを入れてページを作る。そして、もう一つの方は、別にテンプレートを用意する形になるのかもしれません。最初、両方にコントロールスクリプトが入っていて、ページがリダイレクトループみたいになってしまいました。CMSを使っていると、普段は便利なのですが、こういう時は、”調べるコスト”が発生しますね。 同時に”設定ミスリスク”もある所が怖いです。

ABテストと統計数字(A smart bearのblogから)

カイ二乗値が4より上の組み合わせ(A,Bの回数)を緑色にしてる。
ちなみに、カイ二乗が自由度1で値が3の時、p値は0.92。4で0.97くらい?

僕を含めた大部分の人は統計が苦手。だって直感じゃだめだから。そこで、英語で書かれたblogで良い記事を見つけたので、紹介します。Adwordsを題材にしています。

http://blog.asmartbear.com/easy-statistics-for-adwords-ab-testing-and-hamsters.html(ハムスターの動画がかわいい)

* Google AnalyticsでABテストやりたい! という人は、Google Analyticsでのマルチカスタム変数を使ったA/Bテストの例があります。http://www.rowtheboat.com/archives/39 (AB Testing with Google Analytics)。参考として。

基本は、コインの裏表が出た回数が、どれくらい開けば、インチキと言っていいのかの話だと思います。ABに差があると。

数式は、http://blog.asmartbear.com/easy-statistics-for-adwords-ab-testing-and-hamsters.htmlの引用で、

Okay okay, we suck at math. So what’s the answer? Here’s the bit you’ve been waiting for:

The way you determine whether an A/B test shows a statistically significant difference is:

  1. Define N as “the number of trials.”
    For Hammy this is 8+4 = 12.
    For the AdWords example this is 32+19 = 51.
  2. Define D as “half the difference between the ‘winner’ and the ‘loser’.”
    For Hammy this is (8-4) ÷ 2 = 2.
    For AdWords this is (32-19) ÷ 2 = 6.5.
  3. The test result is statistically significant if D2 is bigger than N.
    For Hammy, D2 is 4, which is not bigger than 12, so it is not significant.
    For AdWords, D2 is 42.25, which is not bigger than 51, so it is not significant.

(For the mathematical justification, see the end of the post.)

AとBの回数を足したのがN。AとBの差を引いて半分にしたのがD。Dを二乗してD2。D2がNより大きくなれば、晴れてイカサマ(信頼度がある)と言っていい。adwordsなら、AとBで勝負が付いた!という話になる。

  • 条件はAとBのimpression回数が同じ(adwordsのデフォルトは、そうでなかったかも?)
  • Aのクリック回数がA,Bのクリック回数がBとして、
  • Nは、A+B。クリック総数。Dは(A-B)/2
  • 上の例だと、32と19という数字でも十分ではない。34対19までいけば十分イカサマ。

これで、終わり。34対19だと、差(D)が15/2=7.5なので、7*7=49, 8*8=64で、N=53を超えそうだなあ、、という感じです。

かけ算の九九で、ABテストの結果を判別する話でした。


ちなみに、この記事(http://www.fallinstar.org/2010/01/ab.html)での数字は、350/4963, 285/4953 ですね。

少し強引ですが、同じ回数の試行と考えるために、350, 286 とすると、

D=1024  > N=636 となり、

と晴れて有意に差があると言えます。仮に、350, 290でも、D:900 > N:640で、差(カイ二乗値が4超え)はあると言えます。

信頼度がどれくらいかみておきましょう。http://stattrek.com/Tables/ChiSquare.aspx

ここでみると、自由度1のカイ二乗値が6.15の場合は、98-99%の有意水準になります。逆に言うと、1ー2%くらいはこういう結果になり得るみたいなので、100回同じページでのABテストをやっても、1,2回くらいこういう結果がありそう、とも言えそうです。

とりあえず、テストを打ち切る場合には、信頼度はこれくらいだったとメモを残しておけば良いのだと思います。何かの御札になるかもしれません。


Q&A

でも、その記事が良いのは、その後のバックグランンドの説明と、コメントのやりとりが教育的な事。とても良い記事です。

詳しくは読んで頂くとして、 僕が理解したことは書いていきます。

インプレッション数は関係ないの?

(訂正: 同じインプレッション数という前提で) 関係ないです。クリックされなかったという事はA/Bの差に関する話には関連しません。今回は、AとBが同じ確率であるはずという前提で、Aがクリックされた数とBがクリックされた数を比較してるだけの話です。

カイ二乗値の出し方

我慢して数字を飲み込みましょう。

  • 出す数字は、(実際の結果の数字 – そうであるべき数字)を二乗して、回数で割ったものです。
  • 今回は、その数字をAとBについてやるので、AとBで出た数字を足し上げて、試行回数で割ります。
  • それぞれの試行期待回数が、N/2になるのは、A/Bテストだからですね。100回コインを投げたらN/2の50回になって欲しいですよね。

数式も引用させてもらいましょう、(nと小文字になってますが、見易いので、僕の文では大文字のNにしてます、総試行回数と結果回数がこっちゃになりますが、気になる人にはごめんなさいです)

分数の計算をして、

  • (A*A + B*B – AN – BN + N*N/2)/(N/2) で、
  • Dは、(A-B)の差を半分にしたものだったので、2D=(A-B)で、
  • N=A+Bなので、N*N=A*A+2AB+B*Bとして、
  • ガチャガチャして、
  • 4D*D/Nです。 カイ二乗の値が。

それで、自由度1(A/Bの二つを比べるので1)のカイ二乗値の表を引っ張りだす or Excelを使って(冒頭の図は、Google DocsにExcelからコピーしたもの)出します。このカイ二乗値(実際の値とあるべき値の差を取って、二乗して、割った値)は、大きくなればなるほど、あるべき値から離れていて、イカサマ具合が増す数字です。3.8までいくと、95%くらいは、、、、イカサマと言っていいです。A/Bが半々とは、とても信頼できないです。

以下、数字で感覚をつかみます。

カイ二乗値(自由度1)が6.6までいくと、99%あり得ない。

3.8とか6.6とかのカイ二乗値は、上でガチャガシャやって 4D*D/Nでした。Dは、1番最初にやった、とにかく、AとBの差を取って半分にしろ! と言って便宜的に決めた数字でしたね。D = (A-B)/2

4D*D/Nの計算値が、4くらいまで膨らめば(Dが大きくなる = 差が開く)、まあイカサマというか、あるべき数字からは外れてると考えると、4くらいまで来てる、4D*D/Nが、なので、4=4D*D/Nで、D*D = N ですね。

8くらいまで値が外れてる事になれば、4D*D/Nが8なので、   D*D = 2N ですね。(信頼区間の数字は限りなく100%でしょうが)

冒頭にやった 31対19でいくと、D=(31-19)/2=6, N=50で、 4でも 36と50,8だと 36と100で話にならないですね。

35対19でいくと、D=8,N=54で、 4(カイ二乗の値)だと、64と54で、イカサマラインをやっと超えました。

というわけで、あるべき数字からのズレを計算して、分布表から、これくらいズレてれば、OKという数字をみてみました。4という数字の信頼度はネットの分布表をみたら、96%でした。なので、差を取って、半分にして、二乗した値と、それぞれの回数を足したものを比較して、差を取った方が大きければ、会議で、こっちのがコンバージョンが取れるパターンといえますね。保険として、100回に4回くらいで、同じクオリティ(コンバージョンが取れる)でも、こういう結果は出ると言っておくべきかもしれません。

以下: ココらへんから怪しくなる(2013/04/08)

信頼度10%だと、カイ二乗値は2.7なので、概算で、回数の方を7掛けにして、比較しても良いかもしれません。31対19は、ちょうど2.7くらいになるので、9割方は、こっちで良い!と言える話になります。

ビジネスの算段は8割方OKでイケの話だと、カイ二乗値は1.6くらいなので、回数を4掛けでいいです。50回なら20ですね。30対20なら、((30-20)/2)^2は、25なので、8割方違うとなります。29対21になると、8割でもそうだと言えないです。

*あくまでも、二者択一で、お互いの結果の原因に関連が無い場合です。それでも29対21だと8割方と言えない、、、という話になります。普通は、お互いの結果の原因は出所が同じで、どの出所の量で結果が決まったりするので、その場合は別に考える事になります。この場合は、ユーザの偏りとかでしょうか?

冒頭のGoolge Docsのテーブル図は、ここらあたりをまとめたものです。

T分布の話

CTRの数字をT検定するのではだめなのか?という話ですが、adwords(AB)は二項分布だけど、確率小、回数大だからいけるとありますが、よくわからなくなったので、パス。だれか解説して下さい。

破産、ガケからの転落のメタファー

上で出した表ですが、有意ゾーンに入った瞬間にテストの打ち切りをすると、結果にバイアスがかかります。

メタファーとしては、崖から落ちる酔っぱらいの話がでてます。僕は、昔、相場の人だったので、破産確率の話と同じだと思いました。人の信頼みたいなのも、こういう感じでしょうか?数式は難しくて、分からないのでパスします。

a smart bearのblogでは、回数(コンバージョンの数)を予め決めておけ!という話になってますが、少なくとも、実際に判断に使う有意水準より、テスト期間中では、その水準を引き上げておくべきなのは確かでしょう。

サンプル数の話

5個以上はいる。統計的にそうらしいです。理由はわかりませんので、分かるように説明してくれる人がいたら嬉しいです。

テストは、現場の判断で切り上げる事は多いでしょうが、どれくらいの信頼度で、そのテストを切り上げたかをメモとして残せば、暗黙知から形式知への転換の可能性も残ると思います。