楼主: talentmsy
2204 2

[问答] 如果做分组滚动回归? [推广有奖]

  • 0关注
  • 0粉丝

svip1

高中生

92%

还不是VIP/贵宾

-

威望
0
论坛币
10201 个
通用积分
0.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
71 点
帖子
9
精华
0
在线时间
67 小时
注册时间
2013-3-2
最后登录
2025-11-14

楼主
talentmsy 发表于 2019-1-31 09:03:04 |AI写论文
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

关键词:滚动回归 regression regressio rolling regress

沙发
talentmsy 发表于 2019-1-31 09:20:26
对了,补充一下,每个股票的第一个观测时间不一定都是一样的,数据容量挺大的,我觉得可能最好不要写循环

藤椅
铁锷未残 学生认证  发表于 2019-1-31 10:31:14
https://stackoverrun.com/cn/q/7773021
如果这可以帮助到你,请帮我点赞,点赞选项在我回复页面的右下方。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 00:02