|
*估计正常回报率
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已经无用
}
****估计估计超额回报率和累积超额回报率****
很久之前的帖子统一回复一下子吧,具体细节记不太清了,上面 这是我可以跑的,在执行循环的时候如果出现invalid syntax 我记得当时分开执行就好了,对于连老师的有个版本的(当然我不知道是不是连老师原始版本,在论坛里面有),是在定义窗口的时候有个变量弄混了(我记不清了),你仔细研究一下他的意思就可以发现
|