python虽然与R一样都可以做数据分析,但是在计量方面较为薄弱,python更像是干脏活,清洗数据用的。现在慢慢的python也有一些在计量的包,比如causalinference,这个包可以做因果推断分析。
x1,x2,x3 协变量(控制变量)
y 因变量
istreatment 处置变量D,标注每条数据隶属于treatment或control组。1为treatment, 0为control。
描述性统计分析
使用OLS估计处置效应
估计处置效应最简单的方法是使用OLS方法,
CausalModel.est_via_ols(adj)
该方法有一个参数adj
adj=0 模型未使用X(协变量)
adj=1 模型使用了D(是否为处置组)和X(协变量)。
adj=2 模型使用了D(是否为处置组)、X(协变量)、D与X的交互
adj默认为2
ATE 平均处置效应(average treatment effect)
ATC 控制组的平均处置效应(average treatment effect for the controls)
ATT 处置组的平均处置效应(average treatment effect for the treated)
你们再试试adj设置为0和1分别运行出什么结果
倾向得分估计
我们估计处置效应时,很希望处置组和控制组很类似。比如研究受教育水平对个人收入的影响,其他变量如家庭背景、年龄、地区等协变量存在差异,我们希望控制组和处置组的之间的协变量平衡性尽可能的好,这样两个组就会很像,当对这两个组的受教育水平进行操作时,两个组的收入差异可以认为是受教育水平带来的。
让两个组很像,这里就用到倾向得分估计。
分层方法估计处置效应
倾向得分估计,让两个组尽量相似,但实际上这个相似值范围有点大。比如假设受教育水平对个人收入的影响,身高、体重等颜值信息(协变量)其实对收入也是有影响的,那么就应该对人群进行分层,不同颜值水平(分组)下受教育水平对个人收入的影响。
分层方法估计CausalModel.stratify_s() 自动选择协变量
更多详细信息可阅读代码中说明论文,可在项目中下载到的。
axios 下载blob 如何在pdfjs显示
学习blob对象的笔记blob叫做二进制大对象(binary large object)主要是存放二进制的容器。1 存取文本存放二进制数据,类似数组size为数据长度,type指定类型 example:var str = 'hello world'
var blob = new Blob([str], {
type: 'text/plain'