用stata做EVENT STUDY遇到问题,http://dss.princeton.edu/usingdata/stata/analysis/eventstudy.html#car
按照上面提供的数据和命令,但是到Estimating Normal Performance这个部分的时候指令出现错误
forvalues id=1(1)N{ /*note: replace N with the highest value of id */
2. l id company_id if id==`i' & dif==0
3. reg ret market_return if id==`i' & estimation_window==1
4. predict p if id==`i'
5. replace predicted_return = p if id==`i' & event_window==1
6. drop p
7.
. }
invalid syntax
r(198);
主要是这个指令,有哪位能帮我解决这个问题一下,谢谢啦!看到有个帖子讨论的,还是没有弄明白,求高手指点!
cap drop predicted_return
gen predicted_return=. // 用于存放正常回报率的变量
cap drop id
egen id=group(company_id) // 重新定义公司代码为 1,2,3...,便于执行循环程序
qui tab id
local N = r(r) // 记录公司数目
forvalues i=1(1)`N' {
*-在估计窗口内估计市场模型
qui reg ret market_return if (id==`i' & estimation_window==1)
*-得到全样本范围内的正常回报率,即 market_return 的全样本拟合值
predict p if id==`i'
*-在事件窗口内计算正常回报率
replace predicted_return = p if (id==`i' & event_window==1)
drop p // 把相关结果记录到了predicted_return变量中,变量p已经无用
}