设计稳健的平衡随机实验

rct的Python项目详细描述


rct公司

Build Status

此软件包的功能

这个软件包提供了生成健壮且平衡的随机分配的工具 在Banerjee, Chassang, Montero, and Snowberg (2019)之后。在

RCTKRerandomizedRCT和{}类 rct.design模块实现了RCT,K-重新编程 RCT和分位数靶向RCT设计在Banerjee, Chassang, Montero, and Snowberg (2019)中描述。在

对于每个设计,assignment_from_iid绘制从i.i.d.分配中选择的设计; assignment_from_shuffled绘制从exchangeable中选择的设计 分配保证精确匹配所需的采样权重(最多 整数问题)。在

该软件包允许任意数量的治疗臂,通过 每个设计中的weights参数。在

rct实现各种平衡目标,包括:

  • 最小化所选平均值之间的马氏距离 跨治疗组的协变量
  • 协变量回归的最小p值最大化 治疗假人
  • 选择协变量的软阻塞
  • 现有目标的线性组合。在

定制平衡目标,除了现有平衡函数的线性组合外,很简单。首先,你可以通过不同的 将函数聚合到BalanceObjective构造函数。例如,这将使平均p值最大化,而不是最小p值。其次,您可以简单地定义一个继承自BalanceObjective并实现抽象方法_balance_func的新类。在

引文

要在出版物中引用rct,请使用

Banerjee, Abhijit, Sylvain Chassang, Sergio Montero, and Erik Snowberg.   
A theory of experimenters. No. w23867. National Bureau of Economic Research, 2017.

对应的bibtex条目是:

^{pr2}$

安装

这个包在Ubuntu下测试python 3.6python 3.7 Linux 16.04版。在

您可以通过pip下载软件包:

$ pip install rct

这将安装所有必需的依赖项。在

或者,您可以克隆回购的(git@github.com:sylvaingchassang/rct.git)或download a ^{}。如果你 为此,您必须手动安装包的要求。使用pip,运行

./rct$ pip install -r requirements.txt

运行测试

在使用该软件包之前,您可能需要检查该单元和 集成测试通过您的计算机。为此,快跑

./rct$ pytest --cov=. --cov-report=term-missing

示例

示例笔记本说明了rct模块的使用:

  • ^{}演示如何生成 二进制和三值的传统i.i.d.和随机循环分配 治疗。pvalue_report函数提供了一个有用的 通过报告(#treatments -1, #covariates)分配余额 回归协变量得到的p值矩阵 治疗假人。在

  • ^{}演示如何 获得不同的平衡和重复的任务 目标。在

  • ^{}执行 分位数靶向实验设计的类似练习。在

位于rct/tests/test_integration.pyreplicate的集成测试 这些笔记本的内容。在

贡献

如果你想改进rct,请联系我们!在

无论你是一个想改进我们代码的程序员,还是一个拥有 实用的意见,或新的设计想法,我们想和你谈谈!在

在我们当前的待办事项列表(2019/09/20):

  • 增加类型提示以提高可读性
  • 分析和速度改进
  • 实现顺序设计。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java爬虫获取外部网站搜索结果   java Bluestack未连接到eclipse   java如何从ConstraintViolationException Hibernamte获取数据库字段名   HttpResponse HttpResponse=httpClient引发java运行时错误。执行(httpPost);   Jama中矩阵的java点积和叉积   java有什么方法可以唯一地识别可扩展设备吗?   java我需要用*来写我的名字,但我不断遇到一个错误,我对编码很陌生   java变量是在内部类中访问的。需要被宣布为最终决定。但我不想宣布最终结果   java如何缩短base64图像字符串,Android?   JavaSpringMVC:计划方法不自动触发   图形学习Java 2D API的好资源是什么?   如何在java中对方法进行排队   java JavaFX多行   java Selenium无法在[链接]上找到基于CSS元素的密码字段元素http://www.cartasi.it/gtwpages/index.jsp   Java中的equals()和hashCode()契约   软删除情况下的java Hibernate二级缓存   java为什么这段代码要两次调用这些方法?