ホームページ バックエンド開発 Python チュートリアル tea-tasting: A/B テストの統計分析用の Python パッケージ

tea-tasting: A/B テストの統計分析用の Python パッケージ

Aug 12, 2024 pm 10:35 PM

tea-tasting: a Python package for the statistical analysis of A/B tests

イントロ

私は、以下の機能を備えた A/B テストの統計分析用の Python パッケージである tea-tasting を開発しました。

  • スチューデントの t 検定、ブートストラップ、CUPED による分散削減、検出力分析、その他のすぐに使える統計手法とアプローチ。
  • BigQuery、ClickHouse、PostgreSQL/GreenPlum、Snowflake、Spark、Pandas、および Ibis がサポートする 20 以上のバックエンドなど、幅広いデータ バックエンドをサポートします。
  • 拡張可能な API: カスタム指標を定義し、選択した統計テストを使用します。
  • 手作業を軽減するための便利な API と、エラーを最小限に抑えるためのフレームワーク。
  • 詳細なドキュメント。

このブログ投稿では、実験の分析に お茶の試飲 を使用する利点をそれぞれ探ります。

試してみたい場合は、ドキュメントを確認してください。

統計的手法

ティーテイスティングには、実験の分析で必要となる可能性のあるもののほとんどをカバーする統計的手法とテクニックが含まれています。

スチューデントの t 検定と Z 検定を使用して、メトリクスの平均と比率を分析します。または、ブートストラップを使用して、選択した他の統計を分析します。また、Bootstrap を使用して分位数を分析するための事前定義されたメソッドもあります。 ティーテイスティング は、A/B テストのさまざまなバリエーションのサンプル比の不一致も検出します。

tea-tasting は、平均値の比率の分析にデルタ法を適用します。たとえば、セッションがランダム化単位ではないと仮定した場合の、平均セッション数ごとの平均注文数です。

実験前のデータ、指標予測、またはその他の共変量を使用して、分散を減らし、実験の感度を高めます。このアプローチは、CUPED または CUPAC とも呼ばれます。

スチューデントの t 検定と Z 検定における パーセンテージ の変化の信頼区間の計算は難しい場合があります。 絶対変化の信頼区間を取得し、それを管理平均で割るだけでは、偏った結果が生成されます。 ティーテイスティングは、デルタ法を適用して正しい間隔を計算します。

Student の t 検定と Z 検定の統計的検出力を分析します。可能なオプションは 3 つあります:

  • 与えられた統計検出力と観測値の総数に基づいて、効果の大きさを計算します。
  • 統計検出力と効果サイズを指定して、観測値の合計数を計算します。
  • 効果の大きさと観測値の合計数を指定して、統計検出力を計算します。

詳細については、詳細なユーザーガイドをご覧ください。

ロードマップには以下が含まれます:

  • 複数の仮説テスト:
    • 家族ごとの誤り率: ホルム・ボンフェローニ法。
    • 誤検出率: Benjamini-Hochberg 手順。
  • 統計テストの検出力を分析するための A/A テストとシミュレーション。
  • その他の統計的テスト:
    • 周波数データの漸近的かつ正確な検定。
    • マン-ホイットニーの U 検定。
  • 逐次テスト: mSPRT では常に有効な p 値。

選択した統計テストを使用してカスタム指標を定義できます。

データバックエンド

実験データを保存および処理するためのさまざまなデータベースとエンジンが多数あります。また、ほとんどの場合、詳細な実験データを 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 に渡すことができます。

ティーテイスティングでは次のことを前提としていることに留意してください。

  • データは、個々のユーザーなどのランダム化単位によってグループ化されます。
  • A/B テストのバリエーションを示す列があります (通常、A、B などのラベルが付けられます)。
  • メトリクスの計算に必要なすべての列 (注文数、収益など) がテーブルに含まれています。

ブートストラップなどの一部の統計手法では、分析に詳細なデータが必要です。この場合、tea-tasting も詳細なデータを取得します。

データ バックエンドに関するガイドで詳細をご覧ください。

便利なAPI

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 は、トリッキーでエラーが発生しやすい計算を実行します。

  • デルタ法による比率メトリクスの分析。
  • CUPED/CUPAC による分散削減 (比率指標のデルタ法との組み合わせも)。
  • 絶対変化とパーセント変化の両方の信頼区間の計算。
  • 統計力の分析

エラーを回避するために実験データを表現するためのフレームワークも提供します。正しい分析のためには、ランダム化単位ごとにデータをグループ化し、データセットにすべての単位を含めることが重要です。

さらに、tea-tasting は、結果のきれいな書式設定やメトリック パラメーターのコンテキスト マネージャーなど、いくつかの便利なメソッドと関数を提供します。

ドキュメント

最後に重要なこと: ドキュメント。私は、ツールの導入には適切なドキュメントが不可欠であると信じています。そのため、私はいくつかのユーザー ガイドと API リファレンスを作成しました。

ユーザーガイドの基本的な使用例から始めることをお勧めします。その後、同じガイドで分散削減や検出力分析などの特定のトピックを検討できます。

お茶の試飲で選択したデータ バックエンドを使用する方法については、データ バックエンドに関するガイドを参照してください。

お茶の試飲に含まれない統計テストを実行する場合は、カスタム指標に関するガイドを参照してください。

API リファレンスを使用して、tea-tasting で使用できるすべてのパラメーターと関数、クラス、メソッドに関する詳細情報を調べます。

結論

実験の分析にはさまざまな統計手法を適用できます。しかし、ほとんどの場合、実際に使用されるのはそのうちのほんの一握りだけです。

一方で、SciPy のような汎用統計パッケージには含まれていない、A/B テストの分析に特化したメソッドもあります。

ティーテイスティング 機能には、最も重要な統計テストと、A/B テストの分析に特有のメソッドが含まれています。

tea-tasting は、分析にかかる時間を短縮し、エラーの可能性を最小限に抑えるのに役立つ便利な API を提供します。

さらに、ティーテイスティングは、データが保存されている選択したデータバックエンドで統計を計算することにより、計算効率を最適化します。

詳細なドキュメントにより、実験の分析に ティーテイスティング を使用する方法をすぐに学ぶことができます。

追伸パッケージ名

パッケージ名「tea-tasting」は、次の 2 つの主題を指す言葉遊びです。

  • レディ・テイスティング・ティーは、ロナルド・フィッシャーが考案した有名な実験です。この実験で、フィッシャーは帰無仮説有意性検定フレームワークを開発し、紅茶とミルクのどちらを先にカップに入れたかを見分けることができたという女性の主張を分析しました。
  • 「ティーテイスティング」は、ウィリアム・ゴセットによって開発された統計検定である「t 検定」またはスチューデントの t 検定に音声的に似ています。

以上がtea-tasting: A/B テストの統計分析用の Python パッケージの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python vs. C:曲線と使いやすさの学習 Python vs. C:曲線と使いやすさの学習 Apr 19, 2025 am 12:20 AM

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。

Pythonの学習:2時間の毎日の研究で十分ですか? Pythonの学習:2時間の毎日の研究で十分ですか? Apr 18, 2025 am 12:22 AM

Pythonを1日2時間学ぶだけで十分ですか?それはあなたの目標と学習方法に依存します。 1)明確な学習計画を策定し、2)適切な学習リソースと方法を選択します。3)実践的な実践とレビューとレビューと統合を練習および統合し、統合すると、この期間中にPythonの基本的な知識と高度な機能を徐々に習得できます。

Python vs. C:パフォーマンスと効率の探索 Python vs. C:パフォーマンスと効率の探索 Apr 18, 2025 am 12:20 AM

Pythonは開発効率でCよりも優れていますが、Cは実行パフォーマンスが高くなっています。 1。Pythonの簡潔な構文とリッチライブラリは、開発効率を向上させます。 2.Cのコンピレーションタイプの特性とハードウェア制御により、実行パフォーマンスが向上します。選択を行うときは、プロジェクトのニーズに基づいて開発速度と実行効率を比較検討する必要があります。

Python vs. C:重要な違​​いを理解します Python vs. C:重要な違​​いを理解します Apr 21, 2025 am 12:18 AM

PythonとCにはそれぞれ独自の利点があり、選択はプロジェクトの要件に基づいている必要があります。 1)Pythonは、簡潔な構文と動的タイピングのため、迅速な開発とデータ処理に適しています。 2)Cは、静的なタイピングと手動メモリ管理により、高性能およびシステムプログラミングに適しています。

Python Standard Libraryの一部はどれですか:リストまたは配列はどれですか? Python Standard Libraryの一部はどれですか:リストまたは配列はどれですか? Apr 27, 2025 am 12:03 AM

PythonListSarePartOfThestAndardarenot.liestareBuilting-in、versatile、forStoringCollectionsのpythonlistarepart。

Python:自動化、スクリプト、およびタスク管理 Python:自動化、スクリプト、およびタスク管理 Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

科学コンピューティングのためのPython:詳細な外観 科学コンピューティングのためのPython:詳細な外観 Apr 19, 2025 am 12:15 AM

科学コンピューティングにおけるPythonのアプリケーションには、データ分析、機械学習、数値シミュレーション、視覚化が含まれます。 1.numpyは、効率的な多次元配列と数学的関数を提供します。 2。ScipyはNumpy機能を拡張し、最適化と線形代数ツールを提供します。 3. Pandasは、データ処理と分析に使用されます。 4.matplotlibは、さまざまなグラフと視覚的な結果を生成するために使用されます。

Web開発用のPython:主要なアプリケーション Web開発用のPython:主要なアプリケーション Apr 18, 2025 am 12:20 AM

Web開発におけるPythonの主要なアプリケーションには、DjangoおよびFlaskフレームワークの使用、API開発、データ分析と視覚化、機械学習とAI、およびパフォーマンスの最適化が含まれます。 1。DjangoandFlask Framework:Djangoは、複雑な用途の迅速な発展に適しており、Flaskは小規模または高度にカスタマイズされたプロジェクトに適しています。 2。API開発:フラスコまたはdjangorestFrameworkを使用して、Restfulapiを構築します。 3。データ分析と視覚化:Pythonを使用してデータを処理し、Webインターフェイスを介して表示します。 4。機械学習とAI:Pythonは、インテリジェントWebアプリケーションを構築するために使用されます。 5。パフォーマンスの最適化:非同期プログラミング、キャッシュ、コードを通じて最適化

See all articles