【发布时间】:2021-05-10 15:45:58
【问题描述】:
我正在尝试计算此财务数据的 beta。我想提取回归的第一个系数并将该值放入一个新列中。这必须为每个股票 ID 单独完成。回归应该使用代码所示的最近 30 个月的数据。我使用滚动回归的思路如下:
check[, b := as.data.table(roll_regres(lm(check$RET.USD ~ check$RMRF), width = 30, min_obs = 12))[,2], by = Id]
当我不考虑使用 by = Id 更改 ID 时,roll_regres 函数本身可以正常工作。在我看来,这不起作用是合乎逻辑的,但我想不出不同的方法。我在 3 年内将这些数据与两个 ID 一起使用:
> head(check)
Id RET.USD month year RMRF ym
1: 258580 -8.06 4 2001 7.94 Apr 2001
2: 258580 -11.57 5 2001 0.72 May 2001
3: 258580 -16.94 6 2001 -1.94 Jun 2001
4: 258580 -17.30 7 2001 -2.13 Jul 2001
5: 258580 -13.97 8 2001 -6.46 Aug 2001
6: 258580 -25.06 9 2001 -9.25 Sep 2001
也许你们中的一些人有更好的想法 :) 谢谢!
【问题讨论】:
标签: r regression