web-dev-qa-db-ja.com

A / Bテストの衝突を回避することはどのくらい重要ですか?

たとえば、3つのA/Bテストがあるとします。

  1. コントロールvs A
  2. コントロールvs B
  3. コントロールvs C

特にテストが衝突しないように(互いに重なり合って)作業を行わない限り、A + B、B + C、A + B + Cの両方が表示されるユーザーの集団になります。

技術的には、実験1の結果を見ると、コントロールとAの両方が2と3から等しい数の汚染を確認できるため、1のパフォーマンスの唯一の違いは、Aの影響だけであるはずです。

考え?衝突を回避することは常にベストプラクティスですか、それとも単に汚染が均等に分散されている限り、私たちは良いと思いますか?

1
antonpug

一般的に、これは一連の分離されたA/Bテストまたは多変量テストとして実行する必要があります。

詳細なしで特定のことを言うのは難しいですが、ページの4つの可能なバージョンがあり、どれがより良いパフォーマンスをしたいかを知りたいようです。

コントロールとAを1つのテストとして比較し、どちらが勝るかを確認できます。次に、そのテストの勝者をBに対してピットし、次にその勝者をCに対してピットします(コントロールが負けた場合、BまたはCに対してテストする時間を無駄にしたくありません)。ページが「落ち着く」かどうかをテストするので、ユーザーはアクセスのたびにページに新しいものを常に表示するわけではありません。ただし、この計画では、時間の経過とともに各テストに参加するユーザー集団がわずかに異なる可能性があります。 (たとえば、バージョンAにたくさんの子猫と勝利がある場合、サイトに多くの猫愛好家を惹きつける可能性があります。次に、バージョンCにたくさんの子犬がある場合、最初に行った場合と同じようにスコアを獲得できない場合があります。)

これを補うために、制御、A、B、Cの4つのオプションがある多変量テストとしてこれを実行できます。トラフィックの25%がそれぞれに送信され、それらすべてが同時に競合して、どちらのバージョンのパフォーマンスが優れているかを確認します。欠点は、4つの方法に分割するために十分なトラフィックが必要であり、ユーザーとサポートチームが異なるバージョンのサイトを見ると混乱する可能性があることです。

これにより、衝突に戻ります。 A/Bテストを追跡する一般的な方法は、Cookieを使用することです。各ユーザーのランダムに割り当てられたバージョンは記憶されているため、戻ってきても同じページが表示されます。ただし、ユーザーがCookieをクリアしたり、電話や職場のコンピューターでサイトを確認したりして、別のバージョンが表示されることは非常に一般的です。

変更の規模にもよりますが、これはエクスペリエンスの観点からはおそらく問題ありませんが、データ品質の観点からは厄介になる可能性があります。ユーザーはボタンの色やラベルの変更などの小さな変更にそれほど気になることはないでしょうが、スマートフォンでバージョンAが表示されたために、ユーザーが職場でバージョンBを処理したのか、またはBがすべての影響を及ぼしたのかは、はっきりとはわかりません。

物事を追跡するためのより侵襲的または複雑な方法がありますが、一般に、問題を回避する唯一の方法は、統計的に有効な結果を生成するために必要な最短時間で最小の母集団でテストを実行することです。

1
Nathan Rabe