我试图找到一个已有答案的问题,但没有成功。
在R中,假设我有此数据set(abc)
:
Date Stock Index Stock_AR Index_AR
1 1999-01-04 23.5000 5189.68 NA NA
2 1999-01-05 23.7500 5239.99 1.063830e-02 9.694239e-03
3 1999-01-06 22.6250 5362.27 -4.736842e-02 2.333592e-02
4 1999-01-07 22.3000 5356.14 -1.436464e-02 -1.143173e-03
5 1999-01-08 22.8500 5401.23 2.466368e-02 8.418376e-03
6 1999-01-11 23.1250 5322.69 1.203501e-02 -1.454113e-02
7 1999-01-12 23.2750 5250.80 6.486486e-03 -1.350633e-02
8 1999-01-13 22.6250 5005.36 -2.792696e-02 -4.674335e-02
9 1999-01-14 22.5000 5018.86 -5.524862e-03 2.697109e-03
10 1999-01-15 21.0000 4885.62 -6.666667e-02 -2.654786e-02
Stock_AR 和 Index_AR 是计算出的实际每日收益。日期格式为日期。所有其他都是数字。
现在我要计算beta:
(covariance(Stock_AR & Index_AR) / variance (Index_AR))
但是我想在有限的时间范围内滚动滚动(例如,总是包括当前日期在内的最近四天)。
我尝试过:
lm(Stock_AR ~ Index_AR, data.frame(abc))
但是,这为我提供了完整数据集的beta(实际上,它的数据点超过两个星期)。
我将rollapply用于其他计算(例如,求和或均值),但未成功将其应用于此问题。即使阅读了此post:
我们非常感谢您的帮助。