左のテーブル Introduction Hypothesis testing 2.1 Introduction 2.2 Bayesian statistics 2.3 Test martingales 2.4 p-values 2.5 Optional Stopping and Peeking 2.6 Combining p-values and Optional Continuation 2.7 A/B testing Safe Tests 3.1 Introduction 3.2 Classical t-test 3.3 Safe t-test 3.4 χ2 -test 3.5 Safe Proportion Test Safe Testing Simulations 4.1 Introduction and 4.2 Python Implementation 4.3 Comparing the t-test with the Safe t-test 4.4 Comparing the χ2 -test with the safe proportion test Mixture sequential probability ratio test 5.1 Sequential Testing 5.2 Mixture SPRT 5.3 mSPRT and the safe t-test Online Controlled Experiments 6.1 Safe t-test on OCE datasets Vinted A/B tests and 7.1 Safe t-test for Vinted A/B tests 7.2 Safe proportion test for sample ratio mismatch Conclusion and References 4 安全テストシミュレーション 4.1 導入 このセクションでは、クラシックt テストを安全な t テストと、 χ2 テストを安全な比率テストと比較します。安全なテストのための徹底的なライブラリが R [LTT20] で開発されました。 4.2 Pythonの実装 安全なtテストの論理は同じですが、大規模なサンプルサイズで作業するためには、オリジナルのコードにいくつかの不効率がありました。 最初の改良は、データのバッチプロセスに必要なサンプルサイズを決定することです。 元の関数は1から任意の高い数まで線形検索を実行します。 範囲内のあらゆる可能なサンプルサイズに対して、関数はサンプルサイズ、自由度、効果サイズに基づいてE値を計算します。 ループは、E値が1 /αを超えると破ります。 これが単調に増加する関数であるため、バイナリ検索は計算を大幅に加速し、計算の複雑さをO(n)からO(log n)に減らします。 次に必要な速度改善は、1 − β の電力の停止時間を計算することである。これは、最小効果サイズによって異なるデータのシミュレーションによって決定される。N シミュレーションの過程で、長さ m のデータは個別にストリーミングされ、E 値が 1/α を越える点を決定する。再び、このプロセスは線形検索を通じて行われます。この機能を最適化するために、マルチンゲールの計算は、長さ m の全ベクトルに並列化されます。計算の複雑さは O(Nm) であるが、ベクトル計算は Numpy コードで行われます。 最終的な変更は、計算の複雑さを減らすことではなく、安全な比率テストの能力を向上させることにあります。このテストは、固定パッチサイズの2サンプルテストとしてRで書かれたものです。当社の用例では、サンプル不一致比率を検出するために変数パッチサイズの1サンプルテストが必要で、Pythonパッケージのために開発されました。 4.3 Safe t テストと比較する 安全なtテストを理解する最もシンプルな方法は、それを古典的な代替品と比較することです。効果サイズ δとゼロ仮説のシミュレーションを実行する H0 : δ = 0. 重要性レベル α = 0.05 を設定することにより、テストを停止するときに効果サイズ δを2つのグループ間でシミュレートすることができます。シミュレートされたE値が 1/α = 20 を超えると、テストは H0 が拒否され、検出されない場合、テストは1 − β = 0.8 のパワーで停止されます。このパワーは業界で一般的です。 図 3 は、安全なテストと比較して停止時間と決定のシミュレーションを示しています。 図3の平均停止時間から見ることができるように、安全なtテストは、統計的に有効な結果を提供するために500,000個未満のサンプルを使用するが、古典的なtテストは600,000個を超えるサンプルサイズを必要とするが、安全なtテストのための1 − βパワーを達成するために必要なサンプルサイズは約850,000個で、古典的なtテストのものよりもはるかに大きい。単純に安全なtテストを伝達するには、古典的なtテストのサンプルサイズまで受け入れられるかどうかを問うことができます。図4(左)は、この操作が統計的なエラーに及ぼす影響を示しています。テストの完了時点で、古典的なtテストと安全なtテストの両方が、Type I 二つのテストの全体的な結論に加えて、古典的なtテストと安全なtテストが一致しない実験を考慮するのが興味深い。 図4(右)で見られるように、両方のテストは80%のパワーに近い一方で、非常に異なる方法でそれを行う。 tテストは、彼らのプラットフォームの真実の源となる。 図3は固定効果サイズの安全な停止時間を評価しているが、効果サイズの幅広い範囲の結果を考慮することが重要である。 効果サイズの結果を 0.01 から 0.3 に合計するには、t テストの停止時間で停止時間を正常化する。 図5のスケジュールは、安全なtテストの平均停止と80%のパワーに必要なサンプルサイズの両方を示しています。平均して、安全なテストはtテストよりも18%のデータを減らします。しかし、同じ80%のパワーを達成するために、安全なテストは36%のデータを増やします。 4.4 安全比率テストと χ2 テストの比較 図6の結果は、図3のtテストと安全なtテストを比較すると見られるものと驚くほど似ています。安全なテストはまた、その古典的な代替品よりも平均的にサンプルを少なく使用し、必要な電力を達成するための最大停止時間はより高くなります。次に、テストのサンプルサイズを違い εの関数として考慮します。 図7は、 ε ∈ [0001, 0.1] の平均および最大停止時間を両方示します。 図7に示すように、安全比率テストに必要な平均サンプルサイズは、 ε のすべての値の χ2 テストの値より小さい。これは、安全比率テストが χ2 テストと競争力があることを示唆します、小さな効果を検出するためにさえです。これらの結果を見ると、未知の効果サイズに基づいて事前を設定するのが適切かどうかを疑問に思うことができます。しかし、事前は、各サンプル後にデータから計算された効果サイズに基づくことができます。 このセクションでは、安全なtテストと安全な比率テストをその古典的な代替品と比較しました。安全なtテストの平均サンプルサイズは、効果の幅広い範囲のための古典的なtテストのサイズよりも小さいことが判明しました。しかし、最大サンプルサイズは同じ統計的パワーを達成するためにはるかに大きい場合があります。さらに、安全な比率テストの平均サンプルサイズは χ2テストのサイズよりも小さいです。これらの結果は科学的な取り組みで安全なテストのさらなる採用を動機づけています。次のセクションでは、安全なtテストを業界で使用される別のいつでも有効なテスト、混合物の連続的確率比率テストと比較します。 著者: (1)ダニエル・ビズリー Author: (1)ダニエル・ビズリー この論文は、ATTRIBUTION-NONCOMMERCIAL-SHAREALIKE 4.0 INTERNATIONAL ライセンスの下でアーカイブで利用できます。 この紙は ATTRIBUTION-NONCOMMERCIAL-SHAREALIKE 4.0 INTERNATIONAL ライセンス ARCHIV で利用可能 ARCHIV で利用可能