全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2137 2
2019-01-31
悬赏 200 个论坛币 未解决
数据如下图, sh.PNG
按照PERMNO分组,每个PERMNO代表股票编号,每个股票有每个月的收益(RET),现在想实现按PERMNO分组,然后进行rolling regression(reg RET on Mkt.RF+SMB+HML+UMD+LIQ),window=60, 我之前的代码如下:
f2<-data
attach(f2)
result<-f2[,as.list(coef(roll_regres(er~Mkt.RF+SMB+HML+UMD+LIQ,data=.SD,width = 60))),keyby=.(PERMNO)]

报错如下
Error in f2[, as.list(coef(roll_regres(er ~ Mkt.RF + SMB + HML + UMD +  :
  Assertion on 'width' failed: All elements must be <= 33.
现在有几个关键问题需要解决,一个是roll_regres能否直接嵌套在里面用,就像一般的Lm一样。
第二个:不是所有的股票观测月数都大于60,所以如果用roll_regres width=60很有可能会报错,对于观测月数小于60的,就按照它最大的观测月份进行回归就好了,比如假设PERMNO=10002的股票,只有40个观测月份,那么就按照40个数据点进行回归。最后按把回归结果按照PERMNO和date储存起来。



sh.PNG

原图尺寸 50.72 KB

sh.PNG

二维码

扫码加我 拉你入群

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

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

全部回复
2019-1-31 09:20:26
对了,补充一下,每个股票的第一个观测时间不一定都是一样的,数据容量挺大的,我觉得可能最好不要写循环
二维码

扫码加我 拉你入群

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

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

2019-1-31 10:31:14
https://stackoverrun.com/cn/q/7773021
如果这可以帮助到你,请帮我点赞,点赞选项在我回复页面的右下方。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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