6814 18

[面板数据求助] 用合成控制法做月度数据遇到的问题求解 [推广有奖]

11
18813961020 发表于 2020-6-4 21:05:35
顾钰娟 发表于 2020-5-7 16:14
请问你做月度数据分析的时候 trperiod(#)填的是什么,我填trperiod(2011m01)和(2011)都会报错。前提已将月 ...
你好 请问你解决了吗?应该怎么填呢?

12
Raindynasty 发表于 2021-3-25 18:14:53 来自手机
我想请问你当时做合成控制法,用的安装指令是什么

13
XieZz_ 发表于 2021-5-15 15:07:50
Lee_iris 发表于 2020-5-14 22:39
不客气,我也是从论坛看来的~
老师  我想请教一下为什么我用30个省作为控制变量可以跑出来  但是同样的程序只是省份数量变成了12个就出现了下面的问题:
could not calculate numerical derivatives flat or discontinuous region encountered

14
Lee_iris 在职认证  学生认证  发表于 2021-5-16 11:22:08
XieZz_ 发表于 2021-5-15 15:07
老师  我想请教一下为什么我用30个省作为控制变量可以跑出来  但是同样的程序只是省份数量变成了12个就出 ...
可能是数据的问题,算不出来

15
XieZz_ 发表于 2021-5-16 15:08:52
Lee_iris 发表于 2021-5-16 11:22
可能是数据的问题,算不出来
好的谢谢您!    最近又遇到一个问题  还是合成控制法 我做安慰剂检验时最后做出来的图只有一条线  画不出像许多期刊上一条黑线许多条灰色线那种  不知道什么原因导致的,还有代码中的问题坠在了代码后,比如倒数第二行,感激不尽


代码如下:

tempname resmat  //设定一个临时矩阵叫做resmat
        forvalues i = 1/29 { //这里的循环是指将1到4个州分别做一次合成控制,也就是把2-4州,分别当做处理组进行合成控制
        synth y x1 x2 x3 x4 x5 ,trunit(`i') trperiod(2010) figure nested allopt
        matrix `resmat' = nullmat(`resmat') \ e(RMSPE)  //临时矩阵等于每个省份做处理进行合成控制时候的rmspe值
        local names `"`names' `"`i'"'"'  //设定暂元names 为 1 2 3 4 ''' 31
        }
        mat colnames `resmat' = "RMSPE"  //临时矩阵的列名定义为RMSPE
        mat rownames `resmat' = `names' // 临时矩阵的行名为names
        matlist `resmat' , row("Treated Unit") //展示临时矩阵,并在行的打头表示为"treated unit"
//各城市预测误差分布图
forval i=1/25{
synth y x1 x2 x3 x4 x5,trunit(`i') trperiod(2010) ///
figure nested allopt keep(synth_`i', replace)
}

forval i=1/25{
use synth_`i', clear
rename _time years //这里还会提示没有time这个变量
gen tr_effect_`i' = _Y_treated - _Y_synthetic, replace
keep years tr_effect_`i'
drop if missing(years)
save synth_`i', replace
}
use synth_1, clear
forval i=2/25{
qui merge 1:1 years using synth_`i', nogenerate
}
local lp1
forval i=1/25 {
   local lp1 `lp1' line tr_effect_`i' years, lpattern(dash) lcolor(gs8) ||
}
twoway `lp1'   || line tr_effect_2 years, ///    这里 line tr_effect_2为什么要用2啊  是随便选还是有什么规则呢
lcolor(black) legend(off) xline(2010, lpattern(dash))

16
Lee_iris 在职认证  学生认证  发表于 2021-7-14 17:30:10 来自手机
XieZz_ 发表于 2021-5-16 15:08
好的谢谢您!    最近又遇到一个问题  还是合成控制法 我做安慰剂检验时最后做出来的图只有一条线   ...
tr_effect_1   tr_effect_2  tr_effect_3  。。这几个变量都是循环synth命令的时候产生的,是在synth_1,synth_2,。。文件里的变量,表示第n个个体的政策效应。后来通过merge合并到一个文档里面,最后一步画图的时候把所有个体的这个变量画出来。
我理解的不一定对,可能lp1是所有的个体变量画出来,然后tr_effect_2 time再单独把处理组画一次,用特别的标记突出描绘出来。
不知道为什么有些回帖没有消息提示,回复较慢,抱歉。

17
ljyyl 发表于 2021-9-6 23:42:21 来自手机
Lee_iris 发表于 2021-5-16 11:22
可能是数据的问题,算不出来
老师,我是合成控制法月度数据,但是按照'=tm(2009m1)'老是出现trperiod invalid .前提是我也定义了面板数据

18
小陈陈陈陈 发表于 2022-1-8 00:16:21
XieZz_ 发表于 2021-5-16 15:08
好的谢谢您!    最近又遇到一个问题  还是合成控制法 我做安慰剂检验时最后做出来的图只有一条线   ...
您好,请问您这个问题解决了吗,我第一次用可以很正常的画出图,第2次就只有一条线了,

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-2-27 22:48