我想使用auto.arima生成预测,但是我看不到将来的日期。我如何获得有关日期的未来预测。我有每周数据,想生成直到2020年12月的预测
我正在R中使用预测包
fit <- auto.arima(zoo_ts)
fcast <- forecast(fit, h=83)
需要从2019年7月开始的每周预测,日期间隔为一周。我没有提供任何数据。任何人都可以分享如何做到这一点很棒
答案 0 :(得分:0)
forecast
包使用ts
个对象,这些对象不太适合每周数据。时间指数以年为单位以数字形式存储。所以2019.5385表示2019年的28周(因为28/52 = 0.5385)。
一种替代方法是使用fable
和tsibble
软件包。这是使用每周数据的示例。
library(tsibble)
library(fable)
library(fpp3) # For the data
# Fit the model
fit <- us_gasoline %>% model(arima = ARIMA(Barrels))
# Produce forecasts
fcast <- forecast(fit, h = 83)
fcast
#> # A fable: 83 x 4 [1W]
#> # Key: .model [1]
#> .model Week Barrels .distribution
#> <chr> <week> <dbl> <dist>
#> 1 arima 2017 W04 8.30 N(8.3, 0.072)
#> 2 arima 2017 W05 8.44 N(8.4, 0.077)
#> 3 arima 2017 W06 8.53 N(8.5, 0.082)
#> 4 arima 2017 W07 8.59 N(8.6, 0.086)
#> 5 arima 2017 W08 8.48 N(8.5, 0.091)
#> 6 arima 2017 W09 8.49 N(8.5, 0.096)
#> 7 arima 2017 W10 8.61 N(8.6, 0.101)
#> 8 arima 2017 W11 8.52 N(8.5, 0.106)
#> 9 arima 2017 W12 8.58 N(8.6, 0.111)
#> 10 arima 2017 W13 8.47 N(8.5, 0.115)
#> # … with 73 more rows
时间索引在这里以周为单位存储。可以使用as.Date
将其转换为日期:
# Convert weekly index to a date
fcast %>% mutate(date = as.Date(Week))
#> # A fable: 83 x 5 [1W]
#> # Key: .model [1]
#> .model Week Barrels .distribution date
#> <chr> <week> <dbl> <dist> <date>
#> 1 arima 2017 W04 8.30 N(8.3, 0.072) 2017-01-23
#> 2 arima 2017 W05 8.44 N(8.4, 0.077) 2017-01-30
#> 3 arima 2017 W06 8.53 N(8.5, 0.082) 2017-02-06
#> 4 arima 2017 W07 8.59 N(8.6, 0.086) 2017-02-13
#> 5 arima 2017 W08 8.48 N(8.5, 0.091) 2017-02-20
#> 6 arima 2017 W09 8.49 N(8.5, 0.096) 2017-02-27
#> 7 arima 2017 W10 8.61 N(8.6, 0.101) 2017-03-06
#> 8 arima 2017 W11 8.52 N(8.5, 0.106) 2017-03-13
#> 9 arima 2017 W12 8.58 N(8.6, 0.111) 2017-03-20
#> 10 arima 2017 W13 8.47 N(8.5, 0.115) 2017-03-27
#> # … with 73 more rows
由reprex package(v0.3.0)于2019-10-16创建