使用R

时间:2018-10-05 08:03:21

标签: r window

假设我有一个名为ForcDF的数据框,具有以下观察结果:

rk_parzen   lag_otcd    lag_otcw    lag_otcm    lag_rk_parzend  lag_rk_parzenw  lag_rk_parzenm
0.1526254   0.272405508 0.334758    -0.1578856  0.33086609  0.45841442  1.05087961
0.32810743  -0.5532207  0.3033109   -0.08269962 0.1526254   0.46578762  1.05311702
0.09988565  0.553947079 0.1277503   0.06266097  0.32810743  0.45310285  0.80120331
0.80273637  -0.19515946 0.348732    0.1109986   0.09988565  0.43996977  0.76912554
0.47181709  0.392927814 0.01949308  0.152771    0.80273637  0.22787114  0.80103164
0.31639981  1.292184025 0.04962366  0.06195646  0.47181709  0.34583871  0.70587798
0.09988565  -0.10416503 0.5109749   -0.07778483 NA          NA          NA
0.48331801  -0.93381443 0.3464468   0.06444518  NA          NA          NA

实际上,这是大约15年的数据的基本布局。 lag_rk_parzen(d / w / m)分别表示1个滞后时段,2-5个滞后时段和6-22个滞后时段的平均值。

我想对其他变量线性回归rk_parzen。这可以通过lm()轻松完成。但是,假设我想要一个包含5个观察值的移动窗口,并使用前5个观察值训练模型。然后,我想预测第6个rk_parzen,并使用预测来计算滞后值,然后移动窗口并根据实际rk_parzen值重新训练模型。

我尝试执行此操作的效率极低且不正确,因此我再次尝试使用以下方法:

pred = function(x) tail(fitted(lm(ForcDF[,"rk_parzen"] ~., as.data.frame(ForcDF))), 1)
  newdf = transform(ForcDF, pred = rollapplyr(ForcDF, 5, pred, by.column = FALSE, fill = NA))

这似乎只是提取样本中的最终拟合值,而不是使用模型系数和数据预测下一个值,这不是我想要的。

如果有人使用过rugarch软件包,则除了线性回归外,其他都类似于ugarchroll。

基本上,仅使用模型系数使用滞后变量预测rk_parzen,然后使用预测的rk_parzen从样本中构建滞后变量。样本窗口中将是前5个观测值。

感谢您的帮助!

0 个答案:

没有答案