【STATA】代码自用

2023-11-07

数据处理

//描述性统计 输出//   

asdoc sum, stat(N mean sd tstat p1 p99) fs(7) dec(2)

//结果展示去除变量// 

 reghdfe,absorb(vr)

//一对多合并//   

 merge 1:m  Symbol Year using"xx.dta",force

//去除金融业和公用事业 st行业等// 

gen J=regexm(IndustryCode,"J")

drop if J==1 

//双边缩尾1% 99%//   

winsor2 var,cut(1 99)

//按行业年份加总// 

 bysort code year:egen sum_v=sum(v)

//文字赋值//

gen new = .

replace new = 1 if strmatch(name, "*A*")

replace new = 0 if strmatch(name, "*B*" or "*B1*")

//熵值法构建代理变量 //

order Symbol year v1 v2 v3

gen k=1/ln(n)

foreach v of varlist v1-v3{

egen max_`v'=max(`v') 

egen min_`v'=min(`v')

ge s`v'= (`v'-min_`v')/(max_`v'-min_`v')

egen sum_s`v'=sum(s`v')  

ge p`v'=s`v'/sum_s`v' 

replace p`v'=0.00001 if p`v'==0

ge l`v'=ln(p`v')

ge f`v'=p`v'*l`v'

egen sum_f`v'=sum(f`v')

ge g`v'=1-k*sum_f`v'

}

egen sum_g=rowtotal(v1-v3) 

foreach v of varlist v1-v3{

ge w`v'=`v'/sum_g

}

foreach v of varlist v1-v3 {

ge ss`v'= w`v'*s`v'

}

egen Y=rowtotal(ssv1-ssv3 ) 

//拆分字符串(从n开始取m)//   

gen Code=substr(Vcode,n,m)

//处理重复样本// 

duplicates drop Symbol Year,force

ssc install unique

unique v 看是否有重复值

duplicates 找到重复值

将重复样本标注出来 duplicates  tag v , gen(tag1)

将重复样本单列出来 duplicates  list v 

剔除重复值 duplicates drop v,force (强制执行)


基础回归

//相关性检验 输出//   

asdoc corr ROA RD

//回归(个体层面稳健标准误)//   

 reg Y X X1 i.year i.Code,vce(cluster Symbol)

//生成行业平均变量(不含自身)//

sort year Code
by  year Code :  egen  total_RD=total(RD)
by  year Code :  egen  number=count(RD)
gen    deps=total_RD-RD
gen  RD_Code=deps/(number-1)

PSM

DID

//前期准备//

ssc install asdoc,replace(导入word)

ssc install estout,replace(绘制三线表)

ssc install parmest,replace(导出回归分析的参数和统计量,stata16可以安装)

ssc install coeplot,replace(回归系数可视化)

ssc install dpplot,replace(绘制核密度估计图)

ssc install diff,replace(双重差分估计)

ssc install ftools

ssc install reghdfe (直接回归命令)

//创建虚拟变量//

gen Time = (Year >= xxx)&!missing(Year) //创建时间虚拟变量

gen Treat = (ID <= xxx)&!missing(ID) ..创建政策虚拟变量 

gen DID=Time*Treat

//基准回归估计//

//DID估计1//

asdoc xtreg Y Time Treat DID v v v,fe

//DID估计2//

diff Y ,t(Treat) p(Time) cov( v v v ) 

//平行趋势检验 //

//画出每年均值趋势图//

gen Treatment= Y if ID <= 108 //构造实验组变量

gen Control=Y if ID >108 //构造对照组变量

bysort Year: egen tTreat= mean(Treat)

bysort Year: egen cControl=mean(Control) //按年份分组并求每年均值

duplicates drop Year,force //删除重复值,只保留一年一个数据

scatter tTreat Year,c(1)|| scatter cControl Year,c(1) //自动画图 

//更换被解释变量// 

diff Y1 ,t(Treat) p(Time) cov(x x x) robust report bs reps(100) test #两组的被解释变量出现显著差异、其他控制变量不显著表示被解释变量的差异是由于自变量(即政策)而产生的 

//平衡趋势检验//

tab Year,gen(yrdum) #构建一个时间的虚拟变量

forvalues v=n1/n2 {

gen Treat`A' =yrdum`A'* Treat

} //构建变量A,n1-n2年的交乘项

xtreg Y Time Treatn1-Treatn2 i.Year, fe #回归

est sto reg

coefplot reg, keep( Treatn1-Treatn2 ) vertical recast(connect) yline(0) //画图,置信区间均跨过零线说明系数不显著,没有明显差异 

//分位数回归//

diff Contracts ,t(Treat) p(Time) cov(v v v ) qdid(0.5) report //qdid(0.5)指did做50%分位数回归,report可报告变量 

 //安慰剂检验//

cap erase "simulations.dta" //覆盖文件,便于之后保存

permute DID beta = _b[DID] se = _se[DID] df = e(df_r), reps(500) seed(100) saving("simulations.dta"):reghdfe Y DID, absorb( ID Year) vce(robust) #抽取100个作为伪实验组,随机抽取500次,不要加控制变量

use "simulations.dta", clear

gen t_value = beta / se

gen p_value = 2 * ttail(df, abs(beta/se))

dpplot beta, xtitle(" Estimator", size(*0.8)) xlabel(, format(%4.3f) labsize(smalI)) ytitle("Density", size(*0 .8)) ylabel(, nogrid format(%4.3f) labsize(smalI)) note(" ") //图中值基本都在0附近,且服从正态分布,说明影响非常微弱,意味着模型设定中并未遗漏掉足够重要的影响因素,模型基本没有问题

caption(" ") graphregion(fcolor(white)) 

//改变政策时间的反事实检验//

 xtset ID Year

gen Time = (Year >= xxx)&!missing(Year) #将政策时间提前到xxx年

gen Treat = (ID <= xxx)&!missing(ID)

diff Y ,t(Treat) p(Time) cov( v v v) robust report bs reps(100)


工具变量回归

  • //输出两阶段结果//

ivreg2 Y (X=IV) x1 x2  i.year ,r first savefp(first)
eststo second   

outreg2 [firstX second] using"xxx.doc",tstat bdec(3)tdec(2) replace

(Underid p<0.01 Weakid C-D Wald F>S-Y 10% Hansen J p>0.01(H0:模型设置正常))

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【STATA】代码自用 的相关文章

  • 关于使用流进行排序

    关乎流中的排序 使用collections的sort函数进行排序 不改变属性值 只会改变位置 public void setResultListByTime List
  • java匹配注释的正则表达式

    参考http iregex org blog uncomment program with regex html 通用注释有两种 1 2 通常情况下 行级注释可以这样匹配 n 块级别这样 或者还可以这样 s 不过在特殊情况中 行级别会跟协议

随机推荐

  • [附源码]计算机毕业设计学生宿舍维修管理系统Springboot程序

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 SSM mybatis Ma
  • ‘“node --max-old-space-size=4096“‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    问题描述 使用npm run dev的时候报如下错误 node max old space size 4096 不是内部或外部命令 也不是可运行的程序或批处理文件 FATAL ERROR Ineffective mark compacts
  • CMD打开闪退问题修复

    CMD termain 打开闪退问题修复 Date 2022 06 01 01 问题说明 今天 VSC Remote SSH 突然无法工作 不确定是否因为我卸载 MiniConda 导致 然后开始折腾 VSC 问题如下 Could not
  • 将微信小程序页面转为图片

    最近做项目遇到一个需求 那就是要将某个页面转为图片然后传给后端 我仔细找了一圈 发现官方那个Api也就是wx canvasToTempFilePath生成的图片很有可能为空 太坑了 于是我放弃用它了 选择了用wxml2canvas 安装wx
  • MySQL索引(index)专题

    1 MySQL索引简介 索引 Index 是帮助MySQL高效获取数据的数据结构 它的存在形式是文件 索引能够帮助我们快速定位数据 它可以让mysql高效运行 大大提高mysql的查询 包括排序 分组 效率 Mysql目前主要有以下几种索引
  • 程序员面试题精选100题(04)-二元树中和为某一值的所有路径

    程序员面试题精选100题 04 二元树中和为某一值的所有路径 题目 输入一个整数和一棵二元树 从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径 打印出和与输入整数相等的所有路径 例如输入整数22和如下二元树 10 5 12
  • 集合的父子类关系

    一 Collection的父子类关系 1 Iterable java集合的顶级接口之一 实现此接口的类可以使用新的for循环2 Iterator 接口 遍历器 ListIterator 方法 hasNext next remove 3 Co
  • openstack对接gluster流程

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 在已经部署好的gluster集群里创建相应的卷 可参考https my oschina net u 857184 blog 1506552 mkdir p data bri
  • 还分不清 Cookie、Session、Token、JWT?

    什么是认证 Authentication 通俗地讲就是验证当前用户的身份 证明 你是你自己 比如 你每天上下班打卡 都需要通过指纹打卡 当你的指纹和系统里录入的指纹相匹配时 就打卡成功 互联网中的认证 用户名密码登录 邮箱发送登录链接 手机
  • vscode查询项目代码行数

    vscode版本 4 13 1 1 打开vscode搜索 2 在输入框中输入 b b 并选择输入框内第三个图标使用正则表达式 3 结果出来了 最近知道了另外一个方法 使用命令行进行统计 例如只统计src内代码行数 直接使用git bash执
  • MySQL:explain结果中Extra:Impossible WHERE noticed after reading const tables

    MySQL explain结果中Extra Impossible WHERE noticed after reading const tables 前情提要 出现的情况 原因 前情提要 今天上午有同事突然找我 向我反馈说在对MySQL中的语
  • Qt自动生成ui_xxx.h和moc_xxx.cpp

    在 ui的常规中 命令行 QT DIR bin uic exe Drag2DWidget ui o ui Drag2DWidget h 说明UIC Drag2DWidget ui 输出ui Drag2DWidget h Outputs 附加
  • 包装类和泛型的意思

    目录 包装类 泛型 Generic 若泛型中存在多个类型参数 成员变量的类型就不一定一致 包装类 定义泛型对象时 只能使用类 基本类型不能保存到泛型中 必须使用包装类 Object类可以接收所有引用数据类型 为了让Object可以接收所有的
  • 京东商智功能架构

    京东商智功能架构 数据报表 店铺报表 销售数据 流量数据 客户数据 产品报表 销售数据 流量数据 评价数据 营销报表 活动效果 推广效果 客户获取成本 数据分析 销售分析 销售趋势 销售预测 流量分析 流量来源 流量质量 客户分析 客户画像
  • 【无源物联网】物联网的下一个风口?

    作 者 道哥 10 年嵌入式开发老兵 专注于 C C 嵌入式 Linux 关注下方公众号 回复 书籍 获取 Linux 嵌入式领域经典书籍 回复 PDF 获取所有原创文章 PDF 格式 文章目录 无源物联网 现有的无源物联网设备 从 蓝牙
  • TextView textSize 文字大小

    TextView 很常见的控件 关于文字大小的方法有 android widget TextView getTextSize 返回值的单位是PX return the size in pixels of the default text s
  • busybox简介

    busybox BusyBox 是标准 Linux 工具的一个单个可执行实现 BusyBox 包含了一些简单的工具 例如 cat 和 echo 还包含了一些更大 更复杂的工具 例如 grep find mount 以及 telnet 有些人
  • 150. 逆波兰表达式求值 python

    给你一个字符串数组 tokens 表示一个根据 逆波兰表示法 表示的算术表达式 请你计算该表达式 返回一个表示表达式值的整数 注意 有效的算符为 和 每个操作数 运算对象 都可以是一个整数或者另一个表达式 两个整数之间的除法总是 向零截断
  • 美容行业的翻身仗:ChatGPT带你玩转营销活动

    今天给大家带来一个 用ChatGPT给美容院 美容店 美容行业的商家 出一个营销策划活动方案的实例 在这个竞争激烈的美容行业 想要脱颖而出 你得有点与众不同的手段 别再拿那些陈词滥调的营销策略来忽悠我了 今天我要给你揭示一个行业的秘密武器
  • 【STATA】代码自用

    数据处理 描述性统计 输出 asdoc sum stat N mean sd tstat p1 p99 fs 7 dec 2 结果展示去除变量 reghdfe absorb vr 一对多合并 merge 1 m Symbol Year us