楼主: Harlur
976 0

[学习心得] logit回归的安慰剂检验 [推广有奖]

  • 0关注
  • 0粉丝

已卖:2份资源

本科生

76%

还不是VIP/贵宾

-

威望
0
论坛币
530 个
通用积分
251.6083
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1860 点
帖子
59
精华
0
在线时间
157 小时
注册时间
2020-10-27
最后登录
2025-10-29

楼主
Harlur 学生认证  发表于 2024-11-28 22:49:15 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
自己在做安慰剂检验时参考网络上的资料,发现大多数仅适用于xtreg回归,适用于logit回归的比较少,代码也不完全通用,参考Accessing the t-stat and p-values from -logit- results.该篇文章提出的部分观点后成功运行代码,特此分享:
clear all

mat b  = J(500,1,0)
mat se = J(500,1,0)
mat p  = J(500,1,0)

global 公司层面控制变量 "Z1 Z2"
global 管理层层面控制变量 "Z3 Z4"

forvalues i=1/500{
        qui{
                use"C:\回归原始数据-检查后.dta",clear
                duplicates drop CITYCODE, force
                sample 81, count   
                keep CITYCODE
                merge m:m CITYCODE using "C:\回归原始数据-检查后.dta"
                gen treat1 = (_merge == 3)
                gen newdid = treat1 * time
                encode Ind, gen(Industry)
                rename(Industry)(Ind)
                drop IndustryCode
                logit Y newdid $公司层面控制变量 $管理层层面控制变量 i.year i.Ind, vce(cluster CITYCODE)
        }

        mat b[`i',1] = _b[newdid]
        mat se[`i',1] = _se[newdid]
        mat p[`i', 1] = 2 * normal(-abs(_b[newdid] / _se[newdid]))
        dis `i'
}

svmat b, names(coef)
svmat se, names(se)
svmat p, names(pvalue)

keep coef1 se1 pvalue1

rename *1 *

drop if pvalue == .
label var pvalue p值
label var coef 估计系数
label var se 标准误

save "C:\实证结果\安慰剂检验结果.dta",replace

count if pvalue <= 0.05

twoway   ///
(scatter pvalue coef, mcolor(black) msize(vsmall)),   ///
xline(5.7036, lwidth(medium) lpattern(dash))   ///
xlabel(-2(1)2)ylabel(0(0.1)1,format(%4.1f)) legend(off)   ///
yline(0.05, lwidth(medium) lpattern(dash))   ///
xtitle(`"{fontface "宋体":估计系数}"')  ///
ytitle(`"{fontface "宋体":P-Value}"')  ///
scheme(s1mono)

graph save "C:\实证结果\安慰剂检验结果.gph",replace
graph export "C:\实证结果\安慰剂检验结果.png",replace width(2000)


原代码中较关键的也是比较容易出错的部分为:
  1.         mat b[`i',1] = _b[newdid]
  2.         mat se[`i',1] = _se[newdid]
  3.         scalar df_r=e(N)-e(df_m)-1
  4.         mat p[`i',1] = 2*ttail(e(df_r), abs(_b[newdid]/_se[newdid]))
复制代码
修改后为:
  1.         mat b[`i',1] = _b[newdid]
  2.         mat se[`i',1] = _se[newdid]
  3.         mat p[`i', 1] = 2 * normal(-abs(_b[newdid] / _se[newdid]))
复制代码



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:logit Log 安慰剂 Accessing forvalues logit logit模型 安慰剂检验

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-8 10:13