悬赏 5 个论坛币 未解决
求助各位大大,stata进行随机生成实验组的安慰剂检验时,循环了500次,为什么从第二次开始得到的伪DID项的系数和标准误就一模一样了呀 困扰很久了 请各位大大指点一二 参考代码如下:
forvalue i = 1/1000 { use smart_city2018.dta, clear preserve keep if year == 2005 gen randomvar = runiform() sort randomvar keep if id in 1/32 keep id save id_random.dta, replace // 数据集仅保留随机化后的id restore merge m:1 id using id_random.dta // 将随机化id合并至原数据集 gen treat = (_merge == 3) gen did = treat * dt qui reghdfe lnrso did $ctrlvars2 , absorb(id year) cluster(id) gen b_did = _b[did] // 提取单次回归后did的系数 gen se_did = _se[did] // 提取单次回归后did的标准误 keep b_did se_did duplicates drop b_did, force save placebo_`i'.dta, replace } erase id_random.dta use placebo_1.dta, clear forvalue k = 2/1000 { append using placebo_`k'.dta // 将1,000次回归后did的系数和标准误纵向合并(append)至单独的数据集(placebo_1.dta) erase placebo_`k'.dta }