注記:これは元々英語で公開されたブログの日本語訳です。原文はこちらでご覧いただけます:https://statsig.com/blog/stratified-sampling-in-ab-tests
層別サンプリングは、サンプリングを行う前に母集団をより小さく、明確なサブグループまたは層に分割するために使用される手法です。この方法は、各サブグループが適切に代表されることを保証するため、A/Bテストにおいて重要です。これにより、母集団全体の多様性を反映した、より正確で偏りのないサンプルが得られます。実務者にとって、これは使用頻度の高い小規模なユーザーグループによって引き起こされるランダムな偽陽性が発生しにくくなることを意味します。
層別サンプリングがA/Bテストで非常に価値がある理由は、その精度と信頼性への影響に集約されます。層別サンプリングは、実験におけるi.i.d.仮定の「同一」要素を強制することで、偽陽性率を減少させます。
層別サンプリングをA/Bテストのフレームワークに統合し、ほとんどの実験プラットフォームで提供されているドリルダウン機能と組み合わせることで、単に実験を行うだけでなく、ユーザーベースの異なるセグメントが変更にどのように反応するかを正確に理解できるようになります。これにより、より的を絞った効果的な最適化が可能になります。
A/Bテストを設定する際、適切な層を選ぶことが第一歩です。結果に影響を与える可能性のある要因について考えてみてください。年齢、場所、使用頻度などです。これらがあなたの層になります。
これらの重要な要素を確定する方法は以下の通りです:
主要な共変量を特定する:過去のデータを見て、テストしている変更と密接に関連する人口統計や行動を確認します。
ユーザーを分類する:特定された共変量によってグループ化します。これにより、各カテゴリーがテストされることが保証されます。
バランスを取る際にはトレードオフがあります。一般的に、実験単位の数は少ないが、メトリクスへの貢献度が大きいグループが最もバランスを取ることが重要です。
トップラインの価値にそれぞれ50%貢献する2つのグループがあり、一方には100,000人のユーザーがいて、もう一方には10人しかいない場合、10人のグループが実験グループ間で不均等に分割される可能性がはるかに高くなります。そのうち8人がテストグループに、2人がコントロールグループにいる場合、処理効果がなくても85%の上昇を報告することになります!層別サンプリングはこのような事態を防ぎます。
これらのステップに従うことで、洞察に富んだ実用的な結果を得るための基盤の上にA/Bテストを設定することができます。
層別化には3つの一般的な方法があります:
割り当てソリューション内での実装。 これは多くの場合、層ごとにこれまでの割り当てのカウンターを保持し、実験が進行するにつれてこれらをチェックしながら割り当て率を調整することで実装されます。これは小規模な実験やオフライン実験では機能しますが、これらのインデックスとユーザーの既存の割り当てを検索する費用と遅延のため、スケールされたリアルタイムプラットフォームでは困難な場合があります。ほとんどのプラットフォームは、その後の訪問でデータベース検索を行うことなく、ユーザーを同じグループに決定論的に割り当てるハッシュアルゴリズムを使用しています。
事後サンプリングまたはCUPEDのようなツール。 事後的に1つのセグメントから「余分なユーザー」をフィルタリングすることが可能です。上記の例では、2対2の比較をバランスさせるために、分析から6人のヘッドユーザーをランダムにフィルタリングできます。コストは、いくつかの重要なデータポイントを失うことです。
CUPEDは、完璧に実装されれば、共変量によってデータを機能的に層別化することもできます。これには、層別化共変量を完全にカバーするように回帰を正しく設定し、アルゴリズムがカテゴリカル回帰を問題なく処理することが必要です。例えば、ワンホットエンコーディングでは、低頻度のグループを削除することが一般的ですが、これらはまさにあなたが気にかけているグループかもしれません!
実験前サンプリング。 これは、Statsigのような企業が使用している技術で、バランスの取れた結果を提供するハッシュアルゴリズムで使用する「ソルト」を特定します。異なるソルトをシミュレートし、修正されたカイ二乗法を使用することで、層別化された母集団を生成するバランスの取れたランダム化を特定できます。
公平な分割を保証するために、CUPEDを他のソリューションの1つと組み合わせて使用することをお勧めします。これらの方法の1つを正しく使用することで、A/Bテストが効率的かつ効果的であることを保証し、ユーザーの行動と好みに関する信頼できる洞察を提供できます。