littlebot
Published on 2025-04-07 / 5 Visits
0

【源码】基于R和C++的顺序估计与AB测试模拟工具

项目简介

本项目是一个R包,集成了所有必要代码,可重现Howard和Ramdas(2019)论文《Sequential estimation of quantiles with applications to A/B - testing and best - arm identification》中的模拟结果和全部图表。其核心功能是进行顺序估计分位数,并应用于A/B测试和最佳臂识别。

项目的主要特性和功能

  1. 模拟结果重现:可重现论文中图1至图6的所有图表。
  2. 自定义模拟运行:提供多个函数,能运行不同模拟并将结果保存为CSV文件。
  3. C++支持:模拟代码依赖C++14编译器,且包含C++单元测试。
  4. 版本信息管理:借助Python脚本从configure.ac文件提取版本信息,生成含版本信息的Info.plist文件。

安装使用步骤

1. 安装R包

R install.packages('devtools')

2. 运行模拟

  • 使用run_paper_simulations(save = TRUE)运行图5的模拟,结果保存至build/simulations_10_64.csv
  • 使用run_ab_simulations(save = TRUE)运行图6的模拟,结果保存至build/simulations_2_256.csv

3. 生成图表

  • 使用make_intro_plot(save = TRUE)生成图1。
  • 使用plot_quantile_cs(save = TRUE)生成图2。
  • 使用plot_tuning(save = TRUE)生成图3。
  • 使用make_simulation_plots('path/to/csv', save = TRUE)生成图5。
  • 使用make_ab_plots('path/to/csv', save = TRUE)生成图6。

4. 运行C++单元测试

sh make -C test runtests 需安装BHconfseq R包,因为项目链接了这些包的C++头文件。

5. 版本信息管理

  • 下载并运行versiongenerate.py脚本,从configure.ac文件提取版本信息,生成Version.h文件。
  • 用生成的Version.h文件构建Google Test测试框架,确保Info.plist文件版本信息正确。

注意:运行模拟耗时较长,建议在多核机器上运行以提升效率。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】