gen DID=TAX*TIME
order Stkcd Accper PLACE TIME TAX DID //TIME时间 TAX组别
xtset Stkcd Accper
global xlist "SIZE TOP LEV TAT"
reghdfe CSR DID $xlist ,absorb(Stkcd Accper) vce(cluster Stkcd )
*****************安慰剂检验-虚构处理组
mat b = J(200,1,0)
mat se = J(200,1,0)
mat p = J(200,1,0)
forvalues i=1/200{
use "F:\实证数据\7.dta", clear
xtset Stkcd Accper //面板数据声明
keep if Accper==2017 //保留一期数据
sample 2700, count //随机抽取
keep Stkcd //得到所抽取样本的编号
save match_id.dta, replace //另存编号数据
merge 1:m Stkcd using "F:\实证数据\7.dta" //与原数据匹配
gen treat = (_merge == 3) //将所抽取样本赋值为1,其余为0,得到政策分组虚拟变量
gen period = (Accper >= 2018) //生成政策时间虚拟变量
gen did = treat*period
reghdfe CSR did $xlist ,absorb(Stkcd Accper) vce(cluster Stkcd )
* 将回归结果赋值到对应矩阵的对应位置
mat b[`i',1] = _b[did] //* 系数矩阵
mat se[`i',1] = _se[did] //* 标准误矩阵
* 计算P值并赋值于矩阵
mat p[`i',1] = 2*ttail(e(df_r), abs(_b[did]/_se[did]))
}
代码是这样的,我检查了文件,发现match_id.sta里面的id是按照顺序排的,没有随机抽样,请问是哪里出了问题