SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

初学者のためのA/Bテスト入門

A/Bテストのよくある失敗と回避方法──初学者のためのA/Bテスト

初学者のためのA/Bテスト入門 第2回

  • X ポスト
  • このエントリーをはてなブックマークに追加

 前回はA/Bテストがなぜ必要か、どうやって実施するかについて簡単に解説を行いました。今回はA/Bテストのよくある失敗を、具体的に解説し、最後にその対策について紹介します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

以前の記事

対象読者

  • A/Bテストがなぜ必要か、どうやって実施するかがだいたいわかる人
  • A/Bテストを実際にやっており、その解釈に関わる人

A/Bテストが失敗する、とはどういうことか

 A/Bテストはそのアイデアが本当に良いものなのかを評価するために行います。そのA/Bテスト自体になんらかの問題が起きてしまっていると、正しい評価をくだすことができません。もっと言うとA/Bテストをしたこと自体が無価値になってしまいます。

具体的な失敗例──実装での失敗

 ここからは、具体的な失敗例とその対策について紹介します。本事例は著者の経験もありますが、大半は『A/Bテスト実践ガイド』という本で紹介されたものとなっております。より豊富な事例がより詳細に記述されているため、興味のある方は書籍をぜひ参照してみてください。

 A/Bテストの失敗は実装が原因で起こる可能性があります。ここでは、通常のソフトウェア開発でおこる一般的なバグと違うA/Bテストならではの注意点を紹介します。

 実装時の失敗は監視によって機械的に発見しやすいため、その種の監視も一緒に実装することを推奨します。この監視では失敗の原因の特定ができません。なぜなら失敗の原因は多種多様だからです。そこで、問題の早期検知こそが最善の対策となります。

変更点以外の条件がそろっていない

 A/Bテスト実施時に、アイデアに直接関係するもの以外にも違いがあった場合、得られた結果がアイデアが良かったのかそれ以外の違いによって起きたものかの区別ができなくなります。その一例をここでは紹介します。

リダイレクト

 新しく変更を加えたものにユーザーを割り当てるさいに、元の画面からリダイレクトをつかって新しい画面に遷移させる方法をとったとします。その場合、新しい画面のほうがユーザーにとって表示するまでの時間が長くなってしまい、新しい画面のほうが不当にユーザー体験が悪化する危険性があります。

時間が分かれていた

 とあるサービスで、メールタイトルの文言変更による開封率変化をA/Bテストしました。どのメールアドレスに新しい文言を送るかをランダムに決定すればA/Bテストになります。しかし、新しい方のメール送信を、古い方のメール送信が終わった後に実施(順番に実施)したとすれば、メール送信時間が異なってしまいます。メール送信に時間がかかる場合、この違いは無視できない違いとなり、メールタイトル文言以外の違いが開封率に影響を与える危険性があります。

キャリーオーバー

 A/Bテストを何度も実施するさいに、ユーザーごとの割り当てが前回のA/Bテストをひきずった場合、新しいA/Bテストの効果に前回のA/Bテストの効果が混入する危険性があります。そのため、A/Bテスト実施ごとに新しいランダムな割り当てを実施する必要があります。Cookieを使う場合は、新しいランダムな割り当て時に値が再代入できていないケースなどが混ざるため、変数名ごと変更することを推奨します。

対策

 上記のような問題は、A/Aテストを実施することで検知ができます。A/Aテストとは、AパターンとBパターンを同じ状態でA/Bテストをしてみて、違いが起こらないことを確認するテストです。ただし、リダイレクトやメール送信タイミングなどは実際のA/Bテストを実施するときと同じ実装にします。このA/Aテストを実施することで事前に想定していなかった違いが見つかることがあるので、新しくA/Bテストをはじめるときは、まずA/Aテストの実施を推奨します。

A/Bテストの割り当てに偏りがあった

Botの流入

 何らかの理由で片方の条件にだけBotが多く流入するなどしてしまった場合、A/Bテストは失敗します。

割り当て判定失敗グループを用意しなかった

 A/Bの割り当てに、どの割り当てか判断できなかったケースが存在する場合、割り当て判定失敗グループを分析時に区別できないような測定になっていると、A/Bテストは失敗します。

 例えば、Firebase Remote Configを使ってA/Bテスト対象の割り当てを保存している場合、通信状況の悪いユーザーで割り当ての取得に失敗することがあります。この割り当て失敗ユーザーを変更なしグループだとみなしてしまうと、このユーザーたちの通信状況が原因で、ユーザーの平均遷移率などが悪化してしまう危険性が高いです。

対策

 上記のような問題は割り当て割合を監視することで検知できます。例えば、AパターンとBパターンで50%ずつユーザーを割り当てるA/Bテストを実施した場合は、実際にA/Bテスト後に50%ずつ割り当て割合になっているかをログから確認します。

 このとき、微細な違いが実は統計的に意味を持つことがしばしば発生するので、統計学の仮説検定の手法を使って確認する必要があります。割り当て割合だけの監視になるため、ユーザー行動を伴うA/Aテストと比べて、結果が早く正確にわかります。A/Bテスト実施時は必ずこの割り当て割合の監視を実施することを強く推奨します。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
具体的な失敗例──分析での失敗

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
初学者のためのA/Bテスト入門連載記事一覧
この記事の著者

大杉 直也(オオスギ ナオヤ)

 2005年、千葉大学文学部に飛び入学(高校は中退)。2009年、奈良先端科学技術大学院大学情報科学科に入学(博士前期課程、理学修士)。2011年、東京大学大学院総合文化研究科に入学(博士後期課程、単位取得満期退学)ならびに理化学研究所脳科学総合研究センターで大学院リサーチ・アソシエイトに採用。研究...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/17697 2023/06/02 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング