【发布时间】:2016-04-21 14:19:59
【问题描述】:
假设我有一个 R data.table DT,它有一个返回列表:
Date Return
2016-01-01 -0.01
2016-01-02 0.022
2016-01-03 0.1111
2016-01-04 -0.006
...
我想对 Return 的前 N 个观察值进行滚动多元回归,以预测某个窗口 K 上的下一个 Return。例如在过去的 K = 120 天内,对最后的 N = 14 次观察进行回归以预测下一次观察。一旦我有了这个回归,我想使用 predict 函数根据回归得到每一行的预测。在伪代码中它会是这样的:
DT[, Prediction := predict(lm(Return[prev K - N -1] ~ Return[N observations prev for each observation]), Return[N observations previous for this observation])]
要明确我想做一个多元回归,所以如果 N 为 3,它将是:
lm(Return ~ Return[-1] + Return[-2] + Return[-3]) ## where the negatives are the prev rows
我该如何写(尽可能高效)。
谢谢
【问题讨论】:
-
听起来你想做一个自动回归。为什么不将其设置为 ARIMA 模型?
-
我不熟悉 ARIMA - 特别是结果如何与滚动多元回归进行比较,但我会调查这个以及你的答案和评论和/或标记为正确一旦我开心,谢谢!
-
当然。自动回归是一种滚动回归,按日期滚动。这就是 ARIMA 的“AR”部分。 “MA”代表移动平均线。 I 用于集成,只是自回归移动平均回归的概括。如果您愿意,可以使用
arima或auto.arima函数在没有移动平均多项式的情况下进行自回归。 en.wikipedia.org/wiki/Autoregressive_integrated_moving_average
标签: r data.table regression