アイアナブログ 〜統計学・機械学習・AI〜

データコンサル会社アイアナのブログ。統計学、Rを使ったデータ分析、Pythonを使ったAIなど

webサイトのA/Bテスト、多変量テストについて思うこと

今回はweb業界でよく行われているA/Bテストについて記事にします。

参考書はこれです。参考にはしましたが、A/Bテストについては1ページくらいしか書いてありませんのであしからず。

PROFESSIONAL アクセス解析

PROFESSIONAL アクセス解析


※今回はサイトのレイアウトと言う意味の「デザイン」とランダム化比較試験の「デザイン」の両方が出てきますが、混乱されないようお気を付け下さい。。。


 Google Website Optimizerで、サイトの最適デザインを調べることができます。A/BテストはデザインAまたはBのサイトをランダムに表示し、どちらのサイトデザインが「統計的に有意」であるかを検定するサービスのようです。多変量テストの場合はサイトデザインが複数あり、たとえば「見出し」「画像」「説明」などのどの組み合わせが一番優れているかを検定します。統計学的には、ランダム化比較試験と同じ原理だと思われます(多変量テストは実験計画と同等)。

  • 問題

 まずA/Bテスト、多変量テスト共に経時的に何度も検定を行っているため、多重比較と同じ問題が起こり、αエラーが増大するはずです。つまり「差がないのに差があると言ってしまう」という確率が高くなります。医学分野の臨床試験ではその現象を回避するため、群逐次試験という方法が考案されています。医学分野での利用場面は、投薬効果をなるべく早期に発見するために、毎月もしくは対象者が一定数集まるごとに検定を行うというものです(英語ではgroup sequential test)。この検定手法を使えば、逐次的に試験を行ってもαエラーが増大することはありません。言い換えれば、毎回の検定の有意水準を5%よりも厳しくしていることになります(具体的にはポコックの方法、α消費関数などの方法があります)。
 googleはαエラーを制御しているのでしょうか?していなければ、本当は同等のはずのサイトデザインを、間違って「こちらの方が良い」と判定してしまう確率が高くなる。それは意思決定や経営にとっては重大なミスを起こす可能性もあるのではないでしょうか?Google Website Optimizerではアクセス数やコンバージョン数が残っているはずなので、場合によってはそれを自前で逐次試験に当てはめた方が良いかもしれません。
 群逐次試験では前もって「最終的に何例集める」ということをサンプルサイズ設計しておく必要があります。つまり「AとBのサイトデザインは、コンバージョン率で何%の差があるはずであるので、それを検証するためには何例のデータを集めれば良い」ということを前もって設計しなくてはなりません。多変量テストの場合はサンプルサイズ設計が複雑ですが、このような形で計算します。
http://www.graphpad.com/faq/viewfaq.cfm?faq=1038
http://stat.stanford.edu/~jtaylo/courses/stats203/notes/design.pdf
つまりA/Bテストでも多変量テストでも、前もって「これくらいの効果があるはず」という仮説をきちんと立て、検証試験に望むのことが大事です。また多変量テストの場合はサンプルサイズ設計は複雑であり、さらに結果を比較する検定の際にも多重性の問題でαエラーが増大することがあります。そのため、なるべく比較対象を絞って2群のA/Bテストを行うことが良いかもしれません。有意な差が出なければ、「AとBどちらを使っても効果は変わらない」という解釈になります。

  • 逐次試験について(Rパッケージ)

gsDesig:逐次試験のデザイン(計画)を行う
ldbounds:Lan-Demetsのα消費関数による早期中止基準を計算する(http://rss.acs.unt.edu/Rdoc/library/ldbounds/html/bounds.html

  • Adaptive Designとの関連

 臨床試験の分野では2000年頃からアダプティブデザイン(適応的デザイン)という手法が提案されています。これは予想されていない(思わしくない)結果が出た場合に、「柔軟に」試験の再設計を行うことができるという点で注目された方法です。適応的デザインも、群逐次試験と同じように「何度か検定することを念頭に置いてαエラーを調整している」という点で、多重性の調整方法の一種だと考えられます。しかし群逐次試験と違うのは、試験デザイン自体を途中で変更することができる事です。この事について人によって捉え方は違いますが、医学分野の統計の先生達はこのような意見を持たれているようです。
http://www.niph.go.jp/toshokan/home/data/60-1/201160010006.pdf
http://www.rs.kagu.tus.ac.jp/yoshilab/iyaku/download/JSS2006_Isao_adaptive.pdf
 しかし臨床試験とweb解析では検定を行う文脈が全く違うので、適応的デザインが十分に利用できる可能性もあるかもしれません。議論をしていきたいところですね。

  • 補足

 そもそもですが、逐次試験を十分に行って「信頼性の高い」有意な結果がが出たからといって、その結果がそのまま将来にわたっての効果を保証しているわけではありません。たとえば、サイトデザインAはサイトデザインBよりコンバージョン率が0.5%高いという結果が出て、統計的にも有意だったとします。しかしそれは「調査していた期間に」それくらいの差があったということを示しているのに過ぎません。ですので流行り廃りが影響するようなサイトデザインの場合は、すぐ変化してしまう可能性も否定できません。そのことを意識し、検定が終わっても常にモニタリングする必要があると思います(例えば数%の訪問者には負けたサイトを出して比較するなど)。「時代の変化」も考えなければいけませんね。
 またサンプルサイズ設計ですが、数百例集めれば統計的に十分な議論が出来ることが多いです。web業界では(サイトにもよると思いますが)1日〜数日で集まるかもしれませんので、逐次試験じゃなくて普通にランダム化試験をさらっと行えば良いかもしれませんね。
 また臨床試験の場合はバイアスの混入を防ぐために症例が集まりきるまで結果をみる事は許されませんが、webランダム化の場合はバイアスが入りようがないですね(恣意的にサイトデザインを変えてしまったりすると問題ですが、、)。ですのでwebランダム化の場合は途中で結果をみても大丈夫かもしれません。しかし試験デザインを組んだからには、信用するのは最後の結果だけです(理想的には)。