【问题标题】:Recursive daily forecast递归每日预测
【发布时间】:2016-04-21 17:16:19
【问题描述】:

我正在使用不同的时间序列模型对 2010 年进行递归一步提前每日预测。例如:

set.seed(1096)
Datum=seq(as.Date("2008/1/1"), as.Date("2010/12/31"), "days")
r=rnorm(1096)
y=xts(r,order.by=as.Date(Datum))
List.y=vector(mode = "list", length = 365L)

for (i in 1:365) {
window.y <- window(y[,1], end = as.Date("2009-12-30") + i) 
fit.y <- arima(window.y, order=c(5,0,0))
List.y[[i]] <- forecast(fit.y , h = 1)
}

列表如下所示:

List.y
[[1]]
Point Forecast     Lo 80    Hi 80     Lo 95    Hi 95
732  -0.0506346 -1.333437 1.232168 -2.012511 1.911242
[[2]]
Point Forecast     Lo 80    Hi 80     Lo 95   Hi 95
733   0.03905936 -1.242889 1.321008 -1.921511 1.99963

....

[[365]]
 Point Forecast   Lo 80    Hi 80     Lo 95    Hi 95
 1096  0.09242849 -1.1794 1.364257 -1.852665 2.037522

现在我只想提取每个时期 [1]-[365] 的预测值,这样我就可以使用预测数据。但是,我不确定如何执行此操作。 我试过了

sa=sapply(List.y[1:365], `[`, 4)

但我只得到这个:

$mean
Time Series:
Start = 732 
End = 732 
Frequency = 1 
[1] -0.0506346

$mean
Time Series:
Start = 733 
End = 733 
Frequency = 1 
[1] 0.03905936

...

$mean
Time Series:
Start = 1096 
End = 1096 
Frequency = 1 
[1] 0.09242849

但我想要一个数字向量或其他东西中的所有 365 [1] 值,所以我可以处理数据。

【问题讨论】:

  • 谢谢,这很有帮助。在运行 rnorm 之前,您需要设置种子 ?set.seed,这样每个人都将获得与您获得的完全相同的值。
  • 我编辑了 set.seed。谢谢,希望有人能帮帮我
  • 不过,您需要重新运行代码。 rnorm 调用现在会给出不同的输出,所以所有的结果都会不同。别担心,Stack Overflow 上的某个人应该可以提供帮助。

标签: time-series forecasting mse


【解决方案1】:

只需使用这个:sa2=as.numeric(sa)sa2 将是预测均值的数字向量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-20
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 2017-03-06
    • 2021-05-02
    相关资源
    最近更新 更多