【Stata】teffects和psmatch命令区别联系 | ATE/ATU/ATT实际计算原理

news2024/12/28 22:44:05

这里主要是做个学习记录。
参考链接来自: https://www.ssc.wisc.edu/sscc/pubs/stata_psmatch.htm 很经典的一篇帖子

以下主要是对用到的stata命令和过程做个记录
(以下内容需要一点点的psm基础,包括ate、atu、att,psm处理流程等。在这篇内容里没有解释。)


倾向性得分匹配

首先这个teffects和psmatch都可用来做PSM的。具体PSM是什么,简单来说就是将一堆变量,转换为一维变量。用一个变量,P-score,来代替多个变量。有点类似我们打分时的综合评分表,从不同维度打分,但最后用某种加权方式得到一个总分。
下面的图片来自我个人笔记截图。内容多来自山大陈强教授(计量经济学领域的大佬)
在这里插入图片描述

teffects

早期用stata处理PSM时多用psmatch命令。但是有学者表示psmatch有缺点,就是标准误有问题。所以stata12之后的版本官方推出了命令teffects。采取了学者的方法,优化了标准误计算。
在这里插入图片描述

stata命令

以下命令来自开头的参考链接。代码块是Python,但是内容是stata命令哈。要在stata里面跑的。
(其实stata推出了和jupyter notebook合作的插件还是啥,可以用python写命令。但我没研究)

1 导入数据

use http://ssc.wisc.edu/sscc/pubs/files/psm, replace

这是导入这个链接里面的stata文件。*.dta格式一般是
里面y是结果变量。t是区别控制组control和对照组treatment。x1和x2是协变量,也就是对y也可能有影响的变量。
举个例子,研究六一八大促对显示器销量(y)的影响,x1和x2可能是外观设计和做工材料等等。t=0和t=1表示不搞促销和搞促销的显示器。
(这里的数据对举的例子不一定恰当)

在这里插入图片描述

2 psmatch命令

ttest y, by(t) //双样本t检验
psmatch2 t x1 x2, out(y)  //默认只计算ATT,probit模型

下图左边是双样本检验。右边是psmatch(默认用probit模型,只计算ATE)。不同颜色和形状的标记是一样的数。
可以看出,t=0也就是不促销的显示器销量为-0.4*,而t=1促销的平均销量为1.89*。差距2.314*。T值21.21*,根据t和p的对应表,p值接近99%,也就是0.01。结果显著。

最下方的图是psmatch处理后,会增加的变量。包括_pscore等等等等等。具体含义这里不解释。

在这里插入图片描述


下面是之前整理的用psmatch处理psm的stata代码。

global xlist "x1 x2"  //xlist表示一组协变量
****************3 估计倾向得分psmatch命令*************(陈强chapt28)(不推荐)
**数据随机排列,以计算倾向得分
drop tmp
set seed 1000 //定义种子
gen tmp=runiform() //生成随机数
sort tmp //把数据库随机整理

**du是自变量,poi_sum是因变量
**下为选择项
*ate会显示ATE、ATU和ATT的计算结果。即计算平均处理效应
*ties为所有倾向得分相同的并列个体。默认是按照排序选择一个。
*logit为采用逻辑模型估计倾向得分
*n(1)即neighbor(k),K邻近匹配,寻找p-score最近的k个不同组个体

*****7种匹配方法*******
*K邻近匹配
psmatch2 x $xlist, out(y) logit neighbor(1) ate ties  

*卡尺匹配(radius即半径匹配,也就是卡尺匹配,caliiper(real)指定卡尺ε,为正实数)
psmatch2 x $xlist, out(y) radius caliper(0.1)

*卡尺内的k邻近匹配
psmatch2 x $xlist, out(y) neighbor(1) caliper(0.01)

*核匹配。kerneltype指定核函数。默认二次核(epan)。bwidth指定带宽。默认0.06
psmatch2 x $xlist, out(y) kernel kerneltype(type) bwidth(real)

*局部线性回归匹配。同核函数。默认三三核(tricubic kernel),默认带宽0.8
psmatch2 x $xlist, out(y) 11r kerneltype(type) bwidth(real)

*样条匹配
psmatch2 x $xlist, out(y) spline

3 teffects命令

use http://ssc.wisc.edu/sscc/pubs/files/psm, replace //重读数据
teffects psmatch (y) (t x1 x2), gen(match)  //gen一列,显示每行匹配上的行号
gen ob=_n  //生成序列,这样ob和match1两列表示匹配的号码

predict ps0 ps1, ps //predict…ps生成含p-score两列,ps0为control组,ps1为treat

predict y0 y1, po //po生成y的potential outcome。y0表示control,y1表示treat。
				  //如果第一行是control,y0就是其Y值,y1是其匹配的treat行的值
				  //如果是treat组,y0其匹配到的control的y值,y1是其Y值
				 
predict te //没有其他命令的predict,生成treatment effect itself(就是y1-y0)

在这里插入图片描述
这里其实有一个问题:就是对每一行的p值,比如第一行,ps0和ps1怎么就相似或者接近了呢???

4 计算ATE/ATT/ATU

//这里是在前面 3 teffects命令基础上进行计算
sum te  //(y1-y0)的值相加,生成的mean就是ATE
sum te if t  //只对treat=1的相加求值,就是ATT(ATET)

//实际上,teffects命令只需要一行就够了
teffects psmatch (y) (t x1 x2)

在这里插入图片描述

以上是给出了比较详尽的步骤显示PSM匹配,以及计算ATT的。
而如果直接用teffects命令计算。会是下面的截图。可以看见第一个值1.01*和上面截图中计算ATE的值是一样的。
注意的是这里多了一个AT ROBUST STD.ERR。就是改进后计算的标准误。

下面这个图,解释了,ATU/ATT/ATE这几个值到底是怎么计算出来的。
不管是psmatch还是teffects,都是一样的原理。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/582997.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为每个项目单独设置node版本

如果你同时开发多个项目,每个项目所需的node版本又不相同,那么你需要为每个项目单独设置node版本。 node官网上介绍了几种版本管理工具,有:n,nodenv, nvm。 Installing Node.js via Package Manager node…

【创作纪念日】时间如梭,梭梭催我进步,在CSDN这5年,收获、成长与荣誉并存。

1、引言 小屌丝:鱼哥, 恭喜啊。 小鱼:啥情况, 给我整蒙圈了。 小屌丝:你的朋友圈啊。 小鱼:我的朋友圈咋了, 你看好哪个了? 嘿…嘿…嘿…嘿… 小屌丝:CSDN 创作5周年纪念…

【Power BI 技巧】如何生成动态指标散点图

前言 本文介绍如何在Power BI中创建动态散点图,可以自由切换X轴和Y轴的指标。 数据下载: 使用的是CSDN后台的单篇文章分析数据,在“作品数据”页点击“导出数据”。 因为都是累计值,所以用了两天的数据,手动添加…

python+vue面向大学生的校内交友推荐系统

基于Python语言、django框架、B/S架构、Mysql数据库设计并实现了面向高校学生的校内交友推荐系统。系统主要包括用户、活动信息、活动分类、交友信息、互助信息、热点新闻、校园广场等功能模块。 网络交友较之其它交友方式更加经济、安全、健康。现在的上网条件非常的便利&…

深度学习进阶篇-国内预训练模型[6]:ERNIE-Doc、THU-ERNIE、K-Encoder融合文本信息和KG知识;原理和模型结构详解。

【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化…

计算机网络第一章——计算机体系结构(上)

提示:剑未佩妥,出门已是江湖;酒尚余温,入口不识乾坤,愿历尽千帆,归来仍是少年。 文章目录 1.1.1 概念和功能计算机网络的概念计算机网络的功能计算机网络的发展——第一阶段第二阶段——三级结构第三阶段—…

生活-考驾照2

昨日已通过科目一,接下来,向着科目二出发!!! 考试注意事项 就考前一周死命刷题,至少一天有三次93以上的记录,我也就最后一天达到90,之前一直马路杀手刷题,我就在网页版…

泰国这场发布会,UTONMOS元宇宙游戏玩出炫酷新花样

Sensor Tower 最近发布的一项报告显示,全球元宇宙 App 下载量在 2022 年H1 达到 1.7 亿次,其中游戏达到了 1.1 亿次,占比 67.3%。在营收方面,元宇宙 App 在 H1 共获得 6.5 亿美元收入,游戏占 94%,达到 6.4 …

中低压母线室弧光保护装置在水电站的应用

摘要:本文介绍了电弧光保护在水电站的配置及应用,提供给相关人员参考。 关键词:水电站;开关柜;电弧光 0前言 电弧光是由于发生相间短路或接地短路时空气电离而形成的。在我国电力系统中开关柜内部电弧光故障时有发生…

整数口算练习“小程序”

设定练习题目数量、最大取值整数数,即时判定,答对鼓励答错打印正确结果。 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简…

Centos stream 8 使用 cephadm 安装 Ceph (17.2.6 quincy)集群

一、环境 1、机器列表 名称IP角色备注cephnode12010.0.49.120_admin双网卡 双硬盘/sda/60G /sdb/160Gcephnode12110.0.49.121_storage双网卡 双硬盘/sda/60G /sdb/160G cephnode12210.0.49.122_storage双网卡 双硬盘/sda/60G /sdb/160G 2 、软件环境 [rootcephnode120 …

2:异常处理

文章目录 一:try catch处理异常1:原理:2:catch中如何处理异常**3:try-catch-finally**4:多重catch5:异常的分类6:throw和throws的区别7:练习题8:重载和重写的…

C语言-【指针三】-【野指针】

我又来了,勤奋博主上线啦,哈哈哈。本篇文章呢,主要简单介绍一下指针中野指针的相关知识。 野指针 那在对它进行深入了解时,先得知道什么叫野指针吧,那什么是野指针呢? 野指针就是:指向的内存地…

An illegal reflective access operation has occurred警告

问题描述 今天 在 install Maven项目的时候,控制台出现警告如下: WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.thoughtworks.xstream.core.util.Fields (file:/E:/DevelopmentKit/Maven/…

【送书福利-第六期】Java诞生日,推荐Java“此生错过必遗憾”系列书单

大家好,我是洲洲,欢迎关注,一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得10G学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群欢迎大家在CSDN后台私信我! 本文目录 一、前言二、推荐书籍三、抽奖方…

三维电子沙盘虚拟数字沙盘开发教程第9课

三维电子沙盘虚拟数字沙盘开发教程第9课 查询面板调用: private void Button_Click_11(object sender, RoutedEventArgs e) { GisLib.MapSech _Sech new MapSech(); //查询面板 Root.Children.Add(_Sech); Canvas.Se…

docker可视化管理工具portainer忘记密码重置教程

目录 前言: 1 停止portainer容器 2 借助仓库 portainer/helper-reset-password 重置密码 3 重新启动portainer容器 4 验证是否修改成功 5 修改登录密码 前言: 由于学习的深入,各种账号密码实在是太多了,建议各位配置账号密…

python+django在线借阅图书管理系统vue

本论文是以构建图书借阅为目标,使用 django框架制作,由系统前台、读者和管理员三大部分组成。着重论述了系统设计分析,系统的实现(读者注册模块,读者登录,读者浏览图书模块,图书借阅模块&#…

keepalived脑裂后,近20min不能访问虚拟IP问题分析

问题现象和说明 真实的场景比较复杂,抽象起来可以用下面的图表示, #mermaid-svg-OmKwPLsGwcVuYnha {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-OmKwPLsGwcVuYnha .error-icon{fill:#5522…

充分发挥C/C++test的价值(上)

对于开发测试来说,最有效的环境就是能够深度集成到开发人员IDE中的统一测试解决方案。例如,团队可能会将测试工作集中在最近更新的、高风险的代码上,而Parasoft C/Ctest这样的集成工具就是最合适的解决方案。 软件验证和确认(Ver…