mcpField
A
abtesting-stats

abtesting-stats

github.com/alphaonedev数据与数据库45 次安装
代码仓库

关于 abtesting-stats

abtesting-stats 使用统计检验和贝叶斯方法分析 A/B 测试结果,适用于对数值型且样本量充足的实验分组数据进行分析,并提供 CLI 和 API 工作流。

主要功能

  1. 01运行 t 检验和卡方检验
  2. 02执行 Mann-Whitney U 检验
  3. 03计算 p 值和置信区间
  4. 04校正多重比较
  5. 05执行贝叶斯 A/B 测试
  6. 06读取 CSV、JSON 或内存数据

适用场景

  1. 01比较不同广告变体的销售额
  2. 02评估邮件活动的转化率
  3. 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 次。

具体使用示例

  1. 对销售数据执行 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],表示差异显著。

  2. 对点击率进行贝叶斯 A/B 测试:若要测试电子邮件营销活动,请使用 API:
    向 /api/abtesting/bayesian 发送 POST 请求,并附上:

    {  
      "conversions": [120, 150],  
      "trials": [1000, 1000]  
    }  
    

    结果表明变体 B 更优的概率为 90%,可据此指导决策,而无需使用 p 值。

图关系

  • 相关:abtesting-experiment(为此技能提供数据设置)
  • 相关:stats-visualization(使用置信区间等输出进行绘图)
  • 通过 abtesting 集群连接(共享通用的 A/B 测试工具)

评论

支持 Markdown