讲师中心 微信公众号
AI工具推荐 视频效率加速

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

夜宇同学_9585

夜宇同学_9585

发布时间:2024-08-13 08:50:03

|

450人浏览过

|

来源于dev.to

转载

tea-tasting:用于 a/b 测试统计分析的 python 包

简介

我开发了tea-tasting,一个用于 a/b 测试统计分析的 python 包,具有​​:

  • 学生的 t 检验、bootstrap、cuped 方差缩减、功效分析以及其他开箱即用的统计方法和方法。
  • 支持广泛的数据后端,例如 bigquery、clickhouse、postgresql/greenplum、snowflake、spark、pandas 以及 ibis 支持的 20 多个其他后端。
  • 可扩展的 api:定义自定义指标并使用您选择的统计测试。
  • 用于减少手动工作的便捷 api,以及最小化错误的框架。
  • 详细文档。

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

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

统计方法

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

立即学习“Python免费学习笔记(深入)”;

使用学生 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 等)。
  • 指标计算所需的所有列(如订单数、收入等)都包含在表中。

一些统计方法,例如 bootstrap,需要精细的数据进行分析。在这种情况下,品茶也会获取详细数据。

Claw Code Suite (Python-Only Edition)
Claw Code Suite (Python-Only Edition)

仅使用 Python 将 Claw Code 虚拟化框架与 OpenClaw 集成,提供 184 种工具和 200 多条命令,用于安全分析和代码质量...

下载

在数据后端指南中了解更多信息。

便捷的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

具有独立参数化和推理的两阶段方法在统计建模中很常见。这种分离有助于使代码更加模块化且更易于理解。

品茶执行可能很棘手且容易出错的计算:

  • 用delta方法分析比率指标。
  • 使用 cuped/cupac 减少方差(也与比率指标的 delta 方法结合使用)。
  • 计算绝对变化和百分比变化的置信区间。
  • 统计功效分析。

它还提供了一个表示实验数据的框架以避免错误。按随机化单位对数据进行分组并包含数据集中的所有单位对于正确分析非常重要。

此外,tea-tasting 还提供了一些方便的方法和功能,例如漂亮的结果格式和度量参数的上下文管理器。

文档

最后但并非最不重要的一点:文档。我相信良好的文档对于工具的采用至关重要。这就是为什么我编写了几个用户指南和 api 参考。

我建议从用户指南中的基本用法示例开始。然后您可以在同一指南中探索特定主题,例如方差减少或功效分析。

请参阅数据后端指南,了解如何在品茶中使用您选择的数据后端。

如果您想要执行品茶中未包含的统计测试,请参阅自定义指标指南。

使用 api 参考来探索 tea-tasting.

中可用的函数、类和方法的所有参数和详细信息

结论

有多种统计方法可以应用于实验分析。但在大多数情况下实际使用的只有少数。

另一方面,有一些特定于 a/b 测试分析的方法,这些方法不包含在 scipy 等通用统计包中。

品茶功能包括最重要的统计测试,以及特定于a/b测试分析的方法。

品茶提供了方便的api,有助于减少分析时间并最大限度地减少错误概率。

此外,品茶 通过在您选择的存储数据的数据后端中计算统计数据来优化计算效率。

通过详细的文档,您可以快速学会如何使用品茶来分析您的实验。

附:套餐名称

套餐名称“品茶”是一个双关语,涉及两个主题:

  • 女士品茶是罗纳德·费舍尔设计的一个著名实验。在这个实验中,费舍尔开发了零假设显着性测试框架来分析一位女士的说法,即她可以辨别是先将茶还是牛奶添加到杯子中。
  • “品茶”在语音上类似于“t 测试”或学生 t 测试,这是由 william gosset 开发的统计测试。

热门AI工具

更多
讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

4283

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

891

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

1109

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

6201

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

3043

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

6180

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

8341

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

1130

2024.04.29

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

0

2026.10.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Uvicorn官方安装与入门手册
Uvicorn官方安装与入门手册

共0课时 | 0人学习

Python uv官方项目管理指南
Python uv官方项目管理指南

共0课时 | 0人学习

Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn