ビジネス・マーケ概論

ABテストについて徹底解説!カイ二乗検定による有意差判定!

ABテスト
ウマたん
ウマたん
当サイト【スタビジ】の本記事では、ビジネスシーンで頻出のABテストについてカイ二乗検定による有意差判定など統計的観点も取り入れながら詳しく解説していきますよ!ABテストを使いこなせればあなたのビジネスがグロースすること間違いなし!ぜひABテストを理解しましょう!

こんにちは!

消費財メーカーでデータサイエンティストをやっているウマたん(@statistics1012)です!

ビジネスをデータの力でグロースさせていく上で非常に重要なのがABテスト!

様々なところでABテストという言葉が飛び交っているのでほとんどの方が聞いたことはあるでしょう。

しかし

・ABテストはどのように行えばよいのか?
・ABテストで登場する有意差とは何なのか?

など、なかなかABテストを知っているだけでは難しい部分が多いのも事実です。

ロボたん
ロボたん
なんとなくABテストのことは分かっているつもりだけど、ちゃんと理解できていないかもしれない・・・
ウマたん
ウマたん
そうなんだよねーこの記事で分かりやすくかつ詳しく解説していくよ!

昨今では、簡単にABテストを行うことが出来るようになったため厳密な理解をせずとも使えてしまいますが、厳密な理解をしているのとしていないのとでは大違い!

ぜひこの記事でABテストについて理解してABテストを使いこなしましょう!

最後に僕が作ったABテストにおける有意差判定ツールを紹介しているので使ってみてください!

以下の動画でも分かりやすく解説していますよ!

ABテストとは

Stories glasses

まずはじめにABテストとは何でしょうか?

簡単に言うと、その名の通り、「AパターンとBパターンでどちらが効果があるかテストすること」です。

・Webサイトのデザイン
・広告バナーのクリエイティブ
・メール配信のセグメント

など、Webマーケティングの領域で非常に頻繁に使われます。

例えばコーラを作っているメーカーの広告であれば、

コーラを飲んでいる人を見せるクリエイティブを出したほうがよいのかそれともキンキンに冷えたコーラそのものにフォーカスしたクリエイティブを出したほうがよいのか。

今までなんとなくの感覚で行っていた施策がデータを取得できるようになったことで厳密に勝ちパターンを見つけることができるようになったのです。

多くの企業が日々ABテストを繰り返しグロースし続けています。

オバマ大統領の選挙LPにおいてABテストが行われ、最適な投票クリエイティブが採用されたのは非常に有名な話ですね。

フェイスブックにはABテスト専用の部隊がいて毎日のようにABテストを繰り返しているようです。

Googleで検索した時に、いつもと検索結果(SERP)が違うと思ったことはないでしょうか?

Googleもスモールに検索結果のABテストをおこなっています

そして僕自身本業でももちろんABテストを実施しながら個人でもABテストをおこなっています。

後ほど紹介しますが、Googleの提供するGoogle Optimizeというツールを使えば簡単に個人でも無料でWebサイトデザインのABテストを行うことができます。

もうABテストは企業だけのものではないのです。

個人でもABテストを簡単に行える環境は整っているんです!

ABテストにおける有意差を測るカイ二乗検定

studies science

さて、続いてABテストにおける有意差カイ二乗検定について見ておきましょう!

ABテストで学ぶ有意差

なんとなくABテストとはAパターンとBパターンの違いを見るものだということが分かったと思います。

それでは、以下の例ではAパターンとBパターンに違いはあるでしょうか?

メールABの効果を確かめるためにランダムに振り分けたセグメントに配信を行いました。

クリックしなかった数クリックした数配信数
メールA1000601060
メールB40040440
合計14001001500

※クリック数はメールからURLをクリックしてWebサイトへ遷移した数と定義します。

この時メールAとメールBでどちらの方が良いと言えるでしょうか?それとも、違いがあるとは言えないのでしょうか?

ロボたん
ロボたん
うーん、なんとなく違いがあるような気がするけど、明確に違いがある!とは断言できないなー・・・
ウマたん
ウマたん
そうなんだよーどうしてもそれだと主観的な判断になってしまうもんねー!

ここで統計学の考え方が登場します。

統計学の世界では、ある事象に前提と違う差が生じていることを有意差があると言います。

すなわちここでは、AとBで差がないという前提に立った時、その前提が覆るほどの差(すなわち有意差)が生まれているかを検定します。

それを統計的検定と呼びます。

ABテストで学ぶカイ二乗検定

そしてABテストにおいてはカイ二乗検定という手法を使って有意差を測っていきます。

カイ二乗検定は、簡単に言うと「分布に差が生まれているか否かを測るもの」です。

先ほどの例の場合、どのような計算を行ってカイ二乗検定の計算を行っていくのでしょうか?

簡単に見ていきます。

そもそもABのメールに違いがなかったとしたらどうなるでしょう?

合計で1500通送ったうち100通がクリックされているわけですから、AもBも15分の1がクリックされることになるはず。

計算してみると・・・

Aは1060×(1/15)=70.7
Bは440×(1/15)=29.3

でも実際のところはAが60通で、Bが40通となっています。

これがたまたま誤差の範囲なのかそれとも決定的な違いがあるのかをカイ二乗検定により見ていくことになるわけです。

この差を以下の式で計算します。

$$ \sum\frac{(期待値-実測値)^2}{期待値} $$

すなわちこの場合は、クロス集計表の4セル全ての期待値を算出してそれぞれの実測値との値のズレの2乗を期待値で割ったものを全て足し合わせていきます。

$$ \frac{(70.7-60)^2}{70.7}+・・・ $$

結果は・・・5.88となりました。

この結果がカイ二乗値となり、カイ二乗値をもとにカイ二乗分布と照らし合わせてこの値が何%ほどで起こりうる値なのかを見てみます。

カイ二乗分布において自由度という指標が必要になるのですが、自由度は

$$ 自由度=(行数-1)×(列数-1) $$

で求めます。

今回は1になりますね!

自由度1でカイ二乗値が5.88の場合はどのくらいの確率で起きうるものなのでしょうか?

自由度1の時のカイ二乗分布の値は5%で3.84、1%で6.63、0.5%で7.88となっています。

通常は5%有意もしくは1%有意を用いますが、この場合5.88は3.84を上回っていますが6.63より小さいので5%有意となります。

つまりAとBが同じ前提の時、この事象は5%以下の確率でしか起きないということになるのです。

ロボたん
ロボたん
なるほど!そういうことなのか!カイ二乗検定の中身が理解できたよ!
ウマたん
ウマたん
実際にツールを使って検定を行うと意識しない部分にはなってしまうんだけど、知っておくと幅が広がるよ!

以下のカイ二乗検定の記事ではRによるカイ二乗検定実装も行っていますのでぜひチェックしてみてください!

カイ二乗検定とは?使い方とRでの実装!当サイト【スタビジ】の本記事では、統計的検定の1つであるカイ二乗検定についてまとめていきます!カイ二乗検定はビジネスシーンで使用することが多く分かっていると非常に役立ちます。RでもPythonでも簡単に使うことができるのでぜひマスターしてくださいね!...

ABテストで注意すること

Bankruptcy

ABテストについて見てきましたが、ABテストを行う上で注意してほしいことについてまとめておきます!

母集団はランダムに振り分けられているか

ABテストは母集団がランダムサンプリングされていることを前提として行われます。

一般的なABテストツールでは自動的にユーザーをランダムで振り分けてくれるので問題ありませんが、手動でサンプルを振り分けた時に意図せず恣意的な振り分けになってしまっていないかについてしっかり確認しておいてください。

ABテストはRCTというランダム化比較実験という手法と同じで、そちらをふまえた因果関係の考え方については以下の書籍で解説されていますのでぜひ読んでみてください!

created by Rinker
¥858
(2021/01/16 03:37:53時点 Amazon調べ-詳細)

Youtubeでも解説していますよ!

ランダムサンプリングになっていないと他の要因が邪魔をして、せっかくのABテストの意味がなくなってしまいます。

テストパターンを細かくしすぎると有意差が出るまで時間がかかるor有意差が出ない

先ほど、カイ二乗検定によって有意差があるかどうかと検定しましたが、検定においてはサンプル数の多さが重要になってきます。

サンプル数が多ければ多いほど少しの差で有意差を出しやすくなります。

例えば、先ほどの例でシンプルに全ての数値を約10%にシュリンクさせてみましょう!

クリックしなかった数クリックした数配信数
メールA1006106
メールB40444
合計14010150

この場合、カイ二乗値を計算すると0.588になります。

先ほどの5%点が3.84であり、それを下回っているので有意差があるとは言えません。

同じ比率であるので直感的には有意差がありそうだと思えるかもしれませんが、サンプル数が少ない時は信頼性が低く有意差ありと判定されないのです。

ロボたん
ロボたん
え!?サンプル数が違うだけでこんなに違うものなの!?

あるLPに対して集客するユーザーは一定数なので、その中で何個もテストパターンを作ってしまうと、その分サンプルがばらけて十分なサンプルが得られるまで有意差ありと判定されにくくなってしまいます。

視野を広く持たないといけない

ABテストは往々にして局所的な改善になりがちで、細かい改善に没頭してしまいがちです。

ただ振り返らなくてはいけないのは、その改善は果たして工数に見合う改善なのかということです。

ロボたん
ロボたん
う・・・心が痛いよ・・・

ABテストをやってみて検証することは非常に大事ですが、細かいボタンの色や文言にこだわりすぎて局所最適を追求しては本末転倒です。

Webサイトであれば、ボタンカラーのABテストの前手にそもそもまずそのページに人を連れてくることが出来ているのか。

根本的に集客が足りないなら、タイトルのクリック率を上げるためのABテストを行うべきかもしれません。

広告であれば、そもそも費用をかけて広告を打つこと自体は手段として適切なのか?

木を見て森を見ずになってしまってはいけません。

より視野を広く持って、全体感をおさえた上で最もインパクトの大きい部分のチューニングを行いましょう!

ABテストを簡単に行えるツール

About me

さて、ここまででABテストについて見てきましたが、ここでABテストのツールについて簡単に紹介しておきましょう!

Google Optimize

ABテストを簡単に行えるツールとして最も有名なのがGoogle Optimize

個人でも簡単に無料でABテストを実施することができる超優良ツールです。

VWO

VWO(Visual Website Optimize)は世界で利用される、こちらも有名なツールです。

VWOツール上でヒートマップ分析を行うこともできるので、ヒートマップからの仮説立て→ABテストという流れが1つのツールで一気通貫で行うことが出来ます。

無料版はなく、月額15万〜という料金体系。

個人で使うのは少し厳しいです。

Optimizely

OpmizelyはVWOと同じく世界的に有名なABテストツールで世界規模で見るとVWOよりも導入企業が多いです。

同じく有料版のみの提供となってしまうので、個人で使うのは難しいです。

ABテストの有意差検定だけできる自作アプリケーション

僕が作った無料Webアプリケーション笑

非常に簡素で検定だけしか出来ませんが、メールのABテスト配信などでデータは既に取れている場合はこのWebアプリケーションに母数とCV数と入れてもらえれば、ABテストの結果有意差があるか99%有意なのか95%有意なのかまで判定してくれます。

作り方は簡単に以下の記事でまとめています!

macとsurface
PythonのFlaskで簡単なWebアプリケーションを作ってみよう!当サイト【スタビジ】の本記事では、Pythonの軽量WebアプリケーションフレームワークであるFlaskを使って簡単なWebアプリケーションを作成していきたいと思います。Pythonを開発言語としても使えるようになると、幅が広がりますよー!...

ABテスト まとめ

ここまでABテストについて見てきました!

ABテストは面倒でやらない人も多いのですが(僕も結構面倒くさくてサボりがち・・・)、しっかりデータを使ってビジネスを着実にグロースさせていくためには必ず必要です。

また、ABテストを適切に行わないと誤った判断をしかねません。

また、ABテストをしてみて結局良い結果が得られなかったとしてもそれも一種の学びになります。

データに基づく改善活動を行うことが、ビジネスを大きくする上で必要になってくるのです。

ロボたん
ロボたん
ABテストに対してふんわりとした理解だったのが、だいぶ理解が進んだよ!
ウマたん
ウマたん
ツールを使って検定するとしても理論を理解しておくのとしておかないのとでは全く違うからこの内容はぜひおさえておいてね!

ぜひABテストをマスターしてくださいね!

Pythonを初学者が最短で習得する勉強法

Pythonを使うと様々なことができます。しかしどんなことをやりたいかという明確な目的がないと勉強は捗りません。

Pythonを習得するためのロードマップをまとめましたのでぜひチェックしてみてくださいね!