全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
1117 2
2023-03-30
在进行安慰剂检验时碰到两个问题:(1)单独跑循环命令里面的代码时,到这行命令mat b[`i',1] = _b[SDdid_new]时总是显示invalid syntax;(2)用循环命令跑到向量转为矩阵那块时总显示no; dataset in memory has changed since last saved   求助各位大神为啥命令总是报错,谢谢!
clear
set matsize 5000
mat b=J(500,1,0)
mat se=J(500,1,0)
mat p=J(500,1,0)
forvalues i=1/500{
        use 数据1.dta
        xtset c year
        keep if year==2004
        sample 35,count      //从所有样本城市中随机抽取与真实试点城市数等量35的城市作为处理组
        keep city c
        save "atchcity",replace
        merge 1:m c using 数据1.dta
        xtset c year
        gen SDtreatnew=0            //生成伪处理组的虚拟变量
        replace SDtreatnew=1 if _merge==3
        drop _merge
        save "matchcity`i'.dta",replace
        use "数据1.dta",clear
        xtset c year
        bsample 1 ,strata(c)   //根据c分组,每组随机抽取一个年份
        keep year
        save "matchyear.dta",replace
        mkmat year, matrix(sampleyear)     //向量转化为矩阵
        use "matchcity`i'.dta",replace
        xtset c year
        gen policy_new=0
        foreach j of numlist 1/111{
                replace policy_new=1 if (c==`j'&year>=sampleyear[`j',1])
        }
        gen  SDdid_new=policy_new*SDtreatnew
        global convar "lnrgdp2004 high tec es lnpop lnfdi"
         xtreg lnY SDdid_new  $convar i.year, fe r
        mat b[`i',1] = _b[SDdid_new]
        mat se[`i',1] = _se[SDdid_new]
        scalar df_r = e(N) - e(df_m) -1
        mat p[`i',1] = 2*ttail(df_r,abs(_b[SDdid_new]/_se[SDdid_new]))
}
svmat b,names(coef)
svmat se,names(se)
svmat p,names(pvalue)
drop if pvalue1==.
label var pvalue1 p值
label var cof1 估计系数

二维码

扫码加我 拉你入群

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

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

全部回复
2023-5-11 19:25:27
请问解决了吗
二维码

扫码加我 拉你入群

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

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

2023-10-13 17:03:58
解决了吗
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群