如何在时间序列预测图中显示日期而不是x轴的周期?

时间:2017-11-29 09:08:33

标签: r forecasting holtwinters

我有一个简单的时间序列数据集:df1,格式如下:

    Item | Date     | Var
      1  | 20000101 | 12
      2  | 20000102 | 13
      3  | 20000103 | 16
      4  | 20000104 | 18
      5  | 20000105 | 29
      6  | 20000106 | 36
      ...
      ...
      ...
      ...
      365| 20001231 | 78

我的代码是:

    varts <- ts(df1$var, frequency=7)
    comp <- decompose(varts)
    plot(comp)
    fcmodel <- HoltWinters(varts)
    plot(forecast(fcmodel, h=30, level=c(80,95)))

我得到了一个简单的预测图,但x轴的范围是0到50而不是日期 我想在x轴上呈现真实日期的情节,这对解释我的数据很有意义 但我在网上的解释很多,我发现的每一种方法都失败了 如果有人能帮忙解决这个问题,我真的很感激。

1 个答案:

答案 0 :(得分:2)

library(forecast)
library(lubridate)

# generate dummy data
df1 <- data.frame(seq(1, 365, 1), seq(as.Date('2000-01-01'), as.Date('2000-12-30'), 1), round(100*runif(365), 0))
names(df1) <- c('item','date','var')

varts <- ts(df1$var, frequency=7)
comp <- decompose(varts)
plot(comp)
fcmodel <- HoltWinters(varts)

plot(forecast(fcmodel, h=30, level=c(80,95)), xaxt='n')
axis(1, at=seq(0, 80,10) , las=2, labels=seq(as.Date('2000-01-01'), as.Date('2000-12-31')+weeks(30), length.out=9) )

最后两行基本上是从这里复制方法Replace X-axis with own values

您可以通过编辑&#39; at =&#39;来编辑标签及其位置。和&#39; lables =&#39; α参数。

Here is what the output looks like