楼主: 6825000514
374 3

倾向性得分匹配PSM怎么控制行业和年份 [分享]

  • 0关注
  • 0粉丝

大专生

30%

还不是VIP/贵宾

-

威望
0
论坛币
1449 个
通用积分
1.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
334 点
帖子
17
精华
0
在线时间
59 小时
注册时间
2019-1-31
最后登录
2020-7-4

6825000514 发表于 2020-6-30 01:06:41 |显示全部楼层
倾向性得分匹配PSM怎么控制行业和年份?怎么把PSM和fixed effect模型合并在一起呢?

我一开始写的code是这样的:
psmatch2 gender x1 x2 x3 x4 i.year i.industry, outcome(Y) n(4) cal(0.01) ate ties logit common


但是我导师说不能用i.year i.industry ,要用if。他的原话是这样的:
Your PSM matching (logistic) regression needs some fine tuning: you are not matching correctly on industry and year. As per your current code, the closest year and industry match will be sought, which is wrong because in case of these two variables we want an EXACT match. For this you need to write a loop and use and “if” statement for an exact match on industry and year.  

于是我上网查了一下,是不是要把code改成这样?  但是跑不出结果,求大神指教!!
forvalues i =1/48{
quietly psmatch2 gender x1 x2 x3 x4 if indsutry == `i', outcome(Y) n(4) ate ties logit common                  
}




关键词:PSM 倾向性 fixed effect regression Variables 倾向性得分匹配PSM

stata SPSS
6825000514 发表于 2020-6-30 18:28:19 |显示全部楼层
更正一下,这个应该不是控制行业和年份,应该是叫做按行业和年份分组,我查了一下官方给的code是这样的:
The following code illustrates how to match within exact cells and then calculate the average effect for the whole population.

        g att = .
        egen g = group(groupvars)
        levels g, local(gr)
        qui foreach j of local gr {
                psmatch2 treatvar varlist if g==`j', out(outvar)
                replace att = r(att) if  g==`j'
        }
        sum att


但是我还是跑不数来结果,结果显示 qui foreach j of local gr {
no observations
r(2000);

求会的大神指教啊!
回复

使用道具 举报

KUAILEDEJINGYU 学生认证  发表于 2020-7-2 17:13:55 |显示全部楼层
6825000514 发表于 2020-6-30 18:28
更正一下,这个应该不是控制行业和年份,应该是叫做按行业和年份分组,我查了一下官方给的code是这样的:
...
请问您解决了吗
回复

使用道具 举报

KUAILEDEJINGYU 学生认证  发表于 2020-7-2 17:17:20 |显示全部楼层
我也需要固定年份行业,但我不知道怎么办
回复

使用道具 举报

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

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2020-7-9 13:10