其中,stockid是股票代码,year是年度
针对每家公司(以stockid股票代码区分),采用当年数据和前3年的数据计算DA_delta和PDA_delta的相关系数:
Corr( DA_delta,PDA_delta)。上面是文献中描述的计算方法,我的理解是循环滚动计算。
我尝试写了代码:
gen ES_Corr=.
lab var ES_Corr 相关系数
local n=3
forvalues i=2012/2015 {
bys stockid:corr DA_delta PDA_delta if year>=`i'-`n'&year<=`i' //
replace ES_Corr=r(rho) if year==`i'
}
运行结果:
这个结果中,由于是要求4年窗口滚动计算,所以每个上市公司的2009至2011缺失是对的。但问题是:为何每家公司的年度ES_corr都是一样的啊?查看运行结果,验证都是股票代码为5的公司相关系数值。但stata窗口屏幕上显示,也的确计算出来了每家上市每个年度的相关系数且都不一样,为何在ES_Corr值却以最后一家公司的值替代?难道只保留最后一次运算的值?
我把数据放在下面吧,请帮忙解决下,谢谢