【问题标题】:Predict on xts object not generating dates for future forecasted points预测 xts 对象不为未来预测点生成日期
【发布时间】:2015-08-08 13:58:18
【问题描述】:

我有一个数据框,其中一列代表我的每日观察值,而日期列使用 as.Dates 函数格式化为“2014-10-01”。

我正在创建一个执行以下操作的 xts 对象:

xtsObject <- as.xts(vector$values, order.by = vector$dates)

然后我将 xtsObject 传递给 ets 预测函数,并在结果对象上调用 predict 来预测接下来的三个时间步长,如下所示:

fit <- ets(xtsObject)
pred <- predict(fit,3)

结果如下:

       Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
366              0     0     0     0     0
367              0     0     0     0     0
368              0     0     0     0     0

(传入的向量由全零组成,因此预测按预期工作)

我的问题是无论如何将这三个未来预测点与适当的日期相关联?我的数据是每天的,因此最好查看“10-01-2015”、“10-02-2015”、“10-03-2015”而不是“366”、“367”、“368”来了解这些是这些预测点所属的日期。我尝试过 zoo、xts 和 ts,都产生了类似的输出。想法?

【问题讨论】:

    标签: r time-series xts zoo


    【解决方案1】:

    使用输入 zoo 对象,然后将预测转换为数据帧,使用适当转换的索引行名称将该数据帧转换为 zoo 对象:

    library(zoo)
    
    # test input
    set.seed(123)
    z <- zoo(rnorm(25, 1:25), as.Date("2000-01-01") + 0:24)
    
    e <- ets(z)
    p <- predict(e, 3)
    
    DF <- as.data.frame(p)
    zoo(DF, as.Date(as.numeric(rownames(DF))))
    

    给予:

               Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
    2000-01-26       25.15238 23.97099 26.33377 23.34559 26.95916
    2000-01-27       26.07805 24.89666 27.25945 24.27127 27.88484
    2000-01-28       27.00373 25.82234 28.18512 25.19695 28.81052
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-01
      • 2023-02-16
      • 2018-05-09
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 1970-01-01
      相关资源
      最近更新 更多