このページでは

For AI agents: a documentation index is available at /docs/llms.txt. Append .md to any page URL for markdown, or send Accept: text/markdown.

累積露出グラフ:発散線

この記事では、類似した傾きを持つ発散線と、傾きが異なる発散線を比較しています。 乖離線は共通点から始まり、時間の経過とともに乖離していきます。

類似した傾きを持つ発散線

累積露出グラフが同じような傾きを持つ異なる線を示すことがあります。 これは、すべてのバリアントが準備される前に実験が開始された場合に発生します。

バリアントAは2月23日に、バリアントBは2月28日にトラフィックを受け始めるため、2本の線は平行に推移しますが、間隔は開いたままです。
バリアントの開始時期をずらした累積エクスポージャー
日付バリアントAバリアントB
2026年2月20日00
2026年2月21日00
2026年2月22日00
2026年2月23日900
2026年2月24日2120
2026年2月25日3180
2026年2月26日3970
2026年2月27日5120
2026年2月28日606108
2026年3月1日692197
2026年3月2日753280
2026年3月3日871402
2026年3月4日988519
2026年3月5日1,085618
2026年3月6日1,207744
2026年3月7日1,306884
2026年3月8日1,396963
2026年3月9日1,4791,044
2026年3月10日1,6091,173
2026年3月11日1,7361,255
2026年3月12日1,8211,367
2026年3月13日1,9291,478
2026年3月14日2,0421,586
2026年3月15日2,1601,677
2026年3月16日2,2431,778
2026年3月17日2,3531,885
2026年3月18日2,4792,007
2026年3月19日2,5872,112
2026年3月20日2,7052,228
2026年3月21日2,8202,337

この例では、2つのバリアントが2月23日と2月28日という別々の日にトラフィックを受信し始め、グラフ上に一対のずらされた線が生成されました。

すべてのバリアントがトラフィックを受信する準備が整うまで実験を開始しないでください。 実験の開始後に新しいバリアントを追加すると、各バリアントが同じ期間にわたって同じ条件にさらされないため、結果が誤解を招く形で示されます。

新規性効果

もう一つの潜在的な問題は新規性効果です:トリートメントの新規性は実験結果に影響を与える可能性があります。上記の例では、バリアントAに露出したユーザーのほうが、新しい体験に順応する時間が長くありました。また、バリアントAにさらされたユーザーは、プライマリメトリクスをトリガーする機会も多くなりました。特にそれが時間制限のないメトリックである場合には、バリアント間の比較が不平等でした。

実験の中核となる要件は、トリートメント群とコントロール群の間の唯一の違いをテスト対象の機能にすることです。このようにして、発見した差異は相関関係ではなく因果関係の結果であることを知ることができます。

異なる傾斜を持つ発散線

累積露出グラフでは、いくつかの理由により、傾きの異なる乖離線が表示されることがあります。カスタム露出イベントを使用している場合、ユーザーは割り当てイベントをトリガーせずに露出イベントをトリガーし続けると、キャッシュされた古い実験のバリアントを受け取ることができます。

たとえば、Amplitudeは、露出イベントをトリガーすることなくユーザーをコントロールバリアントに割り当てることができます。後からコントロールバリアントのトラフィック割り当てを0%に設定した場合、そのユーザーは新しい割り当てイベントをトリガーすることなく、露出イベントをトリガーできます。Amplitudeはそのユーザーをコントロールエクスポージャーとしてカウントします。

この考え方は、スティッキーバケット化をオンにした実験にも当てはまります。

両バリアントは約9,000ユーザーまではほぼ同じ推移をたどります。その後、3月15日のトラフィック割り当て変更によってコントロールが上昇する一方、「オン」バリアントはスティッキーバケットに割り当て済みのユーザーだけによって緩やかに増加します。
トラフィック変更後に傾きが異なる累積エクスポージャー
日付コントロールオン
2026年3月10日4,1504,090
2026年3月11日6,1766,240
2026年3月12日7,4837,569
2026年3月13日8,1438,275
2026年3月14日8,5518,684
2026年3月15日9,0009,158
2026年3月16日11,17510,405
2026年3月17日14,11611,396
2026年3月18日16,98412,320
2026年3月19日19,35512,879
2026年3月20日21,45113,424
2026年3月21日23,40113,764

この例では、3 月 15 日にユーザーはコントロールバリアントについて実験を 100% にロールアウトしました。 この実験ではスティッキーバケット化が使用されているため、ユーザーがトラフィック割り当てを0%に設定したあとも、グラフでは「オン」のユーザー数が増え続けて表示されます。これは、SDK または API がリクエストしたときにAmplitudeがバリアントを割り当てるため、ユーザーがバリアントを受信しなかった場合でもバリアントはユーザーに固定されます。

スティッキ バケット化とトラフィック割り当て

スティッキーバケット化を選択してトラフィック割り当てを変更しても、ターゲットトラフィック割り当ては得られません。その代わり、2つの割り当ての間の加重平均値が得られます。これは、すでにバケットを持っているユーザーは自分のバケットにとどまるためです。ターゲット トラフィック割り当てに近づくまで待機する必要があります。

実験でスティッキ バケット設定が有効になっており、実験終了後にバリアントをロールアウトする予定がある場合は、コード内の適切な分岐を削除し、フィーチャーフラグを削除してください。コードのデプロイを行いたくない場合は、スティッキ バケット設定をオフにすることもできます。

これは役に立ちましたか?