线性模型的R时间序列预测

时间:2020-10-06 11:55:12

标签: r

我有一个XTS数据框,正在尝试将线性模型拟合到一组将来的日期。我已将数据框分为过去和现在(出于其他原因),并按如下所示拟合线性模型

lin_mod <- lm(PastExchg ~ Time, data = BackDF)

很好。但是,当我尝试使用predict列上的Time来预测将来的数据时,会出现错误

ForwDF$pred <- predict(lin_mod, newdata= ForwDF$Time)

我怀疑这可能与Time列为“日期”格式有关。也许Time列是不规则的。我该如何解决?

ForwDF外观

              PLN       Time
2004-06-28 4.5331 2004-06-28
2004-06-29 4.5270 2004-06-29
2004-06-30 4.5025 2004-06-30
2004-07-01 4.5155 2004-07-01
2004-07-02 4.5258 2004-07-02
2004-07-05 4.5304 2004-07-05
2004-07-06 4.5138 2004-07-06
2004-07-07 4.5330 2004-07-07

PLN是该列的真实值(我将在以后将pred中的预测与它进行比较-一旦可以得到它们!)。

2 个答案:

答案 0 :(得分:3)

尝试一下:

ForwDF$pred <- predict(lin_mod, newdata= data.frame(Time = ForwDF$Time))

让我知道它是否有效。

编辑:请参阅Jason的评论,以了解为什么您的解决方案无法正常工作。

答案 1 :(得分:0)

这有效:

# Create similar data
Time <- sort(sample(seq(Sys.Date(), Sys.Date() - 200, length.out = 200))[1:100])
df <- data.frame(y = rnorm(100), Time = Time)

# Linear regression and prediction
lin_mod <- lm(y ~ Time, data = df)
df$pred <- predict(lin_mod, newdata=list(Time = df$Time)