关于 abtesting-stats
abtesting-stats 使用统计检验和贝叶斯方法分析 A/B 测试结果,适用于对数值型且样本量充足的实验分组数据进行分析,并提供 CLI 和 API 工作流。
主要功能
- 01运行 t 检验和卡方检验
- 02执行 Mann-Whitney U 检验
- 03计算 p 值和置信区间
- 04校正多重比较
- 05执行贝叶斯 A/B 测试
- 06读取 CSV、JSON 或内存数据
适用场景
- 01比较不同广告变体的销售额
- 02评估邮件活动的转化率
- 03在数据工作流中验证实验结果
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill abtesting-stats安装后在 Claude Code 中输入/abtesting-stats确认已加载。
详细介绍
abtesting-stats
用途
此技能可执行 A/B 测试的统计分析,包括 t 检验、卡方检验、Mann-Whitney U 检验、p 值计算、置信区间(CI)、Bonferroni 或 Benjamini-Hochberg(BH)等多重检验校正,以及贝叶斯 A/B 测试方法。
适用场景
在实验中比较两组数据(例如网站变体),以确定统计显著性时,请使用此技能。它适用于数据科学工作流中的假设检验、验证 A/B 测试结果或分析用户行为指标。如果数据不是数值型,或样本量过小(每组少于 10 个),请勿使用。
主要功能
- 对正态分布数据执行 t 检验。
- 对分类数据执行卡方检验。
- 执行 Mann-Whitney U 检验,进行非参数比较。
- 计算效应量的 p 值和 95% CI。
- 应用 Bonferroni 等多重比较校正,或使用 BH 控制 FDR。
- 使用均匀分布或 beta 分布等先验执行贝叶斯 A/B 测试。
- 处理来自 CSV、JSON 或内存数组的输入数据。
使用模式
可通过 CLI 快速运行,也可通过 API 集成到脚本化工作流中。请始终提供数据源并指定检验类型。对于复杂参数,请使用 JSON 配置文件。例如,可将数据直接传入 CLI,或在循环中调用 API 端点进行批量处理。使用前请确保数据已清理(例如,移除 NaN)。
常用命令/API
使用 OpenClaw CLI 的 abtesting-stats 子命令。身份验证需要将 $OPENCLAW_API_KEY 设置为环境变量。
-
t 检验的 CLI 命令:
openclaw abtesting-stats run --test t-test --data-path data.csv --groups groupA groupB --alpha 0.05
此命令会计算双样本 t 检验,并输出 p 值和 CI。 -
卡方检验的 API 端点:
向/api/abtesting/stats发送 POST 请求,并附上 JSON 请求体:{ "test": "chi-squared", "data": {"category1": [10, 20], "category2": [15, 25]}, "alpha": 0.01 }响应包含 p 值和期望频数。
-
Mann-Whitney 检验的 CLI 命令:
openclaw abtesting-stats run --test mann-whitney --file input.json --key metric --significance 0.01
要求 JSON 中包含每组对应的数组。 -
贝叶斯 A/B 测试的 API:
向/api/abtesting/bayesian发送 POST 请求,并附上:{ "test": "bayesian", "conversions": [50, 60], "trials": [1000, 1000], "prior": "beta" }返回后验概率和可信区间。
配置格式为 JSON,例如,保存为 config.json:
{
"test": "bonferroni",
"p_values": [0.01, 0.02, 0.05]
}
然后运行:openclaw abtesting-stats apply-config config.json。
集成说明
所有 API 调用都需要设置 $OPENCLAW_API_KEY。对于 Python 脚本,请使用 OpenClaw SDK:
import openclaw
client = openclaw.Client(api_key=os.environ['OPENCLAW_API_KEY'])
response = client.post('/api/abtesting/stats', json={'test': 't-test', 'data': [...]})
若要处理异步响应,请检查响应中是否包含 'job_id',并轮询 /api/jobs/{job_id}。可与 Pandas 等数据工具结合进行预处理,例如,加载 CSV 并将其格式化为 JSON。为避免触发速率限制,请批量发送请求(最多 10 次/秒)。
错误处理
请先验证输入,以检查常见错误,例如数据格式无效(如输入非数值)。如果 API 返回 401,请确认已设置 $OPENCLAW_API_KEY 且其值有效。对于 CLI,请解析 stdout 中的错误信息(例如 "Error: Insufficient samples")。在代码中使用 try-except:
try:
result = client.post(...)
except openclaw.AuthError:
print("Authentication failed; check $OPENCLAW_API_KEY")
在 CLI 中使用 --verbose 标志记录详细错误以便调试,例如 openclaw abtesting-stats run --verbose ...。对于临时错误(例如 503),请使用指数退避策略重试,最多 3 次。
具体使用示例
-
对销售数据执行 t 检验:若要比较两个广告变体的平均销售额,请运行:
openclaw abtesting-stats run --test t-test --data-path sales.csv --groups variantA variantB
假设 sales.csv 包含以下列:group、sales。此命令会输出:p-value=0.03,CI=[5.2, 10.4],表示差异显著。 -
对点击率进行贝叶斯 A/B 测试:若要测试电子邮件营销活动,请使用 API:
向/api/abtesting/bayesian发送 POST 请求,并附上:{ "conversions": [120, 150], "trials": [1000, 1000] }结果表明变体 B 更优的概率为 90%,可据此指导决策,而无需使用 p 值。
图关系
- 相关:abtesting-experiment(为此技能提供数据设置)
- 相关:stats-visualization(使用置信区间等输出进行绘图)
- 通过 abtesting 集群连接(共享通用的 A/B 测试工具)