全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
4245 3
2017-06-23
我的数据是下图这个样子的:
其中,stockid是股票代码,year是年度

QQ图片20170623184851.png

针对每家公司(以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'
}
运行结果:
QQ图片20170623190035.png
这个结果中,由于是要求4年窗口滚动计算,所以每个上市公司的2009至2011缺失是对的。但问题是:为何每家公司的年度ES_corr都是一样的啊?查看运行结果,验证都是股票代码为5的公司相关系数值。但stata窗口屏幕上显示,也的确计算出来了每家上市每个年度的相关系数且都不一样,为何在ES_Corr值却以最后一家公司的值替代?难道只保留最后一次运算的值?
我把数据放在下面吧,请帮忙解决下,谢谢




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-6-24 09:45:02
你那个replace并不是by的一部分。我觉得你可能得在你现在的循环外面再加一个对stockid的循环。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-6-24 10:11:24
请先安装 ssc install rangestat 并修改下例
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-7-23 11:18:07
好久没上论坛了,才看到回复,多谢二位!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群