tea-tasting:用于 A/B 测试统计分析的 Python 包

WBOY
发布: 2024-08-12 22:35:32
原创
794 人浏览过

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

简介

我开发了tea-tasting,一个用于 A/B 测试统计分析的 Python 包,具有:

  • 学生的 t 检验、Bootstrap、CUPED 方差缩减、功效分析以及其他开箱即用的统计方法和方法。
  • 支持广泛的数据后端,例如 BigQuery、ClickHouse、PostgreSQL/GreenPlum、Snowflake、Spark、Pandas 以及 Ibis 支持的 20 多个其他后端。
  • 可扩展的 API:定义自定义指标并使用您选择的统计测试。
  • 用于减少手动工作的便捷 API,以及最小化错误的框架。
  • 详细文档。

在这篇博文中,我探讨了在实验分析中使用品茶的每一个优点。

如果你想尝试一下,请查看文档。

统计方法

品茶包括统计方法和技术,涵盖了您在实验分析中可能需要的大部分内容。

使用学生 t 检验和 Z 检验分析指标平均值和比例。或者使用 Bootstrap 来分析您选择的任何其他统计数据。并且有一种使用 Bootstrap 分析分位数的预定义方法。品茶还可以检测 A/B 测试不同变体的样本比例不匹配。

品茶采用Delta方法来分析平均值的比率。例如,每平均会话数的平均订单数,假设会话不是随机化单位。

使用实验前数据、指标预测或其他协变量来减少方差并提高实验的灵敏度。这种方法也称为 CUPED 或 CUPAC。

学生 t 检验和 Z 检验中百分比变化的置信区间的计算可能很棘手。只需取绝对变化的置信区间并将其除以控制平均值就会产生有偏差的结果。品茶采用Delta法计算正确的间隔时间

分析学生 t 检验和 Z 检验的统计功效。有以下三种可能的选择:

  • 在给定统计功效和观察总数的情况下计算效应大小。
  • 给定统计功效和效应大小,计算观察总数。
  • 根据效应大小和观察总数计算统计功效。

在详细的用户指南中了解更多信息。

路线图包括:

  • 多重假设检验:
    • 家庭错误率:Holm–Bonferroni 方法。
    • 错误发现率:Benjamini–Hochberg 程序。
  • A/A 测试和模拟,用于分析任何统计测试的功效。
  • 更多统计测试:
    • 频率数据的渐近和精确测试。
    • 曼-惠特尼 U 测试。
  • 顺序测试:mSPRT 的 p 值始终有效。

您可以使用您选择的统计测试来定义自定义指标。

数据后端

有许多不同的数据库和引擎用于存储和处理实验数据。而且在大多数情况下,将详细的实验数据拉入 Python 环境的效率并不高。许多统计检验,例如学生 t 检验或 Z 检验,仅需要汇总数据进行分析。

例如,如果原始实验数据存储在 ClickHouse 中,那么直接在 ClickHouse 中计算计数、平均值、方差和协方差比在 Python 环境中获取细粒度数据并执行聚合更快、更高效。

手动查询所有必需的统计信息可能是一项艰巨且容易出错的任务。例如,使用 CUPED 分析比率指标和方差减少不仅需要行数和方差,还需要协方差。不过别担心——品茶这一切对你有用吗。

品茶接受 Pandas DataFrame 或 Ibis Table 形式的数据。 Ibis 是一个 Python 包,用作各种数据后端的 DataFrame API。它支持 20 多个后端,包括 BigQuery、ClickHouse、PostgreSQL/GreenPlum、Snowflake 和 Spark。您可以编写 SQL 查询,将其包装为 Ibis 表,然后将其传递给茶品鉴.

请记住,品茶假设:

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

tea-tastingは詳細なデータも取得します。

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

便利なAPI

NumPy、SciPy、Ibis だけを使用して、上記のすべてのタスクを実行できます。実際、

tea-tastingは内部でこれらのパッケージを使用しています。tea-tastingが提供するのは、便利な高レベル API です。

説明するよりも見せる方が簡単です。基本的な例は次のとおりです:


リーリー

統計モデリングでは、パラメーター化と推論を別々に行う 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中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!