私は、以下の機能を備えた A/B テストの統計分析用の Python パッケージである tea-tasting を開発しました。
このブログ投稿では、実験の分析に お茶の試飲 を使用する利点をそれぞれ探ります。
試してみたい場合は、ドキュメントを確認してください。
ティーテイスティングには、実験の分析で必要となる可能性のあるもののほとんどをカバーする統計的手法とテクニックが含まれています。
スチューデントの t 検定と Z 検定を使用して、メトリクスの平均と比率を分析します。または、ブートストラップを使用して、選択した他の統計を分析します。また、Bootstrap を使用して分位数を分析するための事前定義されたメソッドもあります。 ティーテイスティング は、A/B テストのさまざまなバリエーションのサンプル比の不一致も検出します。
tea-tasting は、平均値の比率の分析にデルタ法を適用します。たとえば、セッションがランダム化単位ではないと仮定した場合の、平均セッション数ごとの平均注文数です。
実験前のデータ、指標予測、またはその他の共変量を使用して、分散を減らし、実験の感度を高めます。このアプローチは、CUPED または CUPAC とも呼ばれます。
スチューデントの t 検定と Z 検定における パーセンテージ の変化の信頼区間の計算は難しい場合があります。 絶対変化の信頼区間を取得し、それを管理平均で割るだけでは、偏った結果が生成されます。 ティーテイスティングは、デルタ法を適用して正しい間隔を計算します。
Student の t 検定と Z 検定の統計的検出力を分析します。可能なオプションは 3 つあります:
詳細については、詳細なユーザーガイドをご覧ください。
ロードマップには以下が含まれます:
選択した統計テストを使用してカスタム指標を定義できます。
実験データを保存および処理するためのさまざまなデータベースとエンジンが多数あります。また、ほとんどの場合、詳細な実験データを Python 環境に取り込むのは効率的ではありません。スチューデントの t テストや Z テストなどの多くの統計テストでは、分析のために集計されたデータのみが必要です。
たとえば、生の実験データが ClickHouse に保存されている場合、Python 環境で詳細なデータを取得して集計を実行するよりも、ClickHouse で直接個数、平均、分散、共分散を計算する方が高速かつ効率的です。
必要なすべての統計を手動でクエリすることは、困難でエラーが発生しやすい作業になる可能性があります。たとえば、CUPED を使用した比率メトリクスの分析と分散削減には、行数と分散だけでなく、共分散も必要です。でも心配しないでください。お茶の試飲 がこれらすべての作業を行ってくれます。
tea-tasting は、データを Pandas DataFrame または Ibis Table として受け入れます。 Ibis は、さまざまなデータ バックエンドへの DataFrame API として機能する Python パッケージです。 BigQuery、ClickHouse、PostgreSQL/GreenPlum、Snowflake、Spark を含む 20 以上のバックエンドをサポートします。 SQL クエリを作成し、Ibis テーブルとしてラップして、tea-tasting に渡すことができます。
ティーテイスティングでは次のことを前提としていることに留意してください。
ブートストラップなどの一部の統計手法では、分析に詳細なデータが必要です。この場合、tea-tasting も詳細なデータを取得します。
データ バックエンドに関するガイドで詳細をご覧ください。
NumPy、SciPy、Ibis だけを使用して、上記のすべてのタスクを実行できます。実際、ティーテイスティング は内部でこれらのパッケージを使用しています。 tea-tasting が提供するのは、便利な高レベル API です。
説明するよりも見せる方が簡単です。基本的な例は次のとおりです:
import tea_tasting as tt data = tt.make_users_data(seed=42) experiment = tt.Experiment( sessions_per_user=tt.Mean("sessions"), orders_per_session=tt.RatioOfMeans("orders", "sessions"), orders_per_user=tt.Mean("orders"), revenue_per_user=tt.Mean("revenue"), ) result = experiment.analyze(data) print(result) #> metric control treatment rel_effect_size rel_effect_size_ci pvalue #> sessions_per_user 2.00 1.98 -0.66% [-3.7%, 2.5%] 0.674 #> orders_per_session 0.266 0.289 8.8% [-0.89%, 19%] 0.0762 #> orders_per_user 0.530 0.573 8.0% [-2.0%, 19%] 0.118 #> revenue_per_user 5.24 5.73 9.3% [-2.4%, 22%] 0.123
統計モデリングでは、パラメーター化と推論を個別に行う 2 段階のアプローチが一般的です。この分離により、コードがよりモジュール化され、理解しやすくなります。
tea-tasting は、トリッキーでエラーが発生しやすい計算を実行します。
エラーを回避するために実験データを表現するためのフレームワークも提供します。正しい分析のためには、ランダム化単位ごとにデータをグループ化し、データセットにすべての単位を含めることが重要です。
さらに、tea-tasting は、結果のきれいな書式設定やメトリック パラメーターのコンテキスト マネージャーなど、いくつかの便利なメソッドと関数を提供します。
最後に重要なこと: ドキュメント。私は、ツールの導入には適切なドキュメントが不可欠であると信じています。そのため、私はいくつかのユーザー ガイドと API リファレンスを作成しました。
ユーザーガイドの基本的な使用例から始めることをお勧めします。その後、同じガイドで分散削減や検出力分析などの特定のトピックを検討できます。
お茶の試飲で選択したデータ バックエンドを使用する方法については、データ バックエンドに関するガイドを参照してください。
お茶の試飲に含まれない統計テストを実行する場合は、カスタム指標に関するガイドを参照してください。
API リファレンスを使用して、tea-tasting で使用できるすべてのパラメーターと関数、クラス、メソッドに関する詳細情報を調べます。
実験の分析にはさまざまな統計手法を適用できます。しかし、ほとんどの場合、実際に使用されるのはそのうちのほんの一握りだけです。
一方で、SciPy のような汎用統計パッケージには含まれていない、A/B テストの分析に特化したメソッドもあります。
ティーテイスティング 機能には、最も重要な統計テストと、A/B テストの分析に特有のメソッドが含まれています。
tea-tasting は、分析にかかる時間を短縮し、エラーの可能性を最小限に抑えるのに役立つ便利な API を提供します。
さらに、ティーテイスティングは、データが保存されている選択したデータバックエンドで統計を計算することにより、計算効率を最適化します。
詳細なドキュメントにより、実験の分析に ティーテイスティング を使用する方法をすぐに学ぶことができます。
パッケージ名「tea-tasting」は、次の 2 つの主題を指す言葉遊びです。
以上がtea-tasting: A/B テストの統計分析用の Python パッケージの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。