R语言 使用fable包进行预测初始化

ecfdbz9o  于 2023-04-03  发布在  其他
关注(0)|答案(2)|浏览(132)

假设我使用fable包估计以下模型,使用涵盖2019年的每日数据,其中x是外生解释变量,术语pdq(p = 1, d = 0, q = 0)PDQ(P = 0, D = 0, Q = 0)意味着这是一个自回归模型。

library(tidyverse)
library(fable)

load(file, "Some data.RData")

fit <- dta_2019 %>%
  tsibble() %>%
  model(ar = ARIMA(y ~ x + pdq(p = 1, d = 0, q = 0) + PDQ(P = 0, D = 0, Q = 0)))

现在我需要使用该模型对2020年的每日数据进行预测,但假设数据从2020年2月开始。

forecast_2020 <- fit %>%
  forecast(new_data = tsibble(dta_2020))

我的理解是,预测的y滞后值将是估计数据集中观察到的最后一个值,由于这是一个自回归模型,因此需要使用该值(dta_2019)。我可以将y的值初始化为其他值吗?我尝试在 dta_2020 中包含一行,在这个特定的示例中,它包含1月31日的观察结果,但这导致预报从1月31日开始。

noj0wjuj

noj0wjuj1#

对于ARIMA模型(使用fable::ARIMA()),您还需要预测2020年1月,以获得感兴趣的2020年2月预测。如果外生回归量可用于两个月,则可以计算预测。需要提供外生回归量x的未来值,但预测不需要y的未来值。

j5fpnvbx

j5fpnvbx2#

最新消息,以防还有点用。
我发现使用函数fabletools::refit()reestimate = FALSE可以将模型更新为通过new_data提供的最后一个相关值,同时保留从原始数据集导出的估计值。
因此,您可以提供2020年1月开始的值。

require(fpp3)

dsub <- us_change[1:190, ]
m <- model(dsub, ARIMA(Consumption))

report(m)
#> Series: Consumption 
#> Model: ARIMA(1,0,3)(1,0,1)[4] w/ mean 
#> 
#> Coefficients:
#>           ar1     ma1     ma2     ma3     sar1    sma1  constant
#>       -0.3474  0.5684  0.3274  0.4123  -0.1367  0.3775    1.1352
#> s.e.   0.1579  0.1486  0.0938  0.0798   0.2164  0.1833    0.1313
#> 
#> sigma^2 estimated as 0.3412:  log likelihood=-164.12
#> AIC=344.25   AICc=345.04   BIC=370.22
  
forecast(m)
  
#> # A fable: 8 x 4 [1Q]
#> # Key:     .model [1]
#>   .model             Quarter   Consumption .mean
#>   <chr>                <qtr>        <dist> <dbl>
#> 1 ARIMA(Consumption) 2017 Q3 N(0.66, 0.34) 0.657
#> 2 ARIMA(Consumption) 2017 Q4  N(0.7, 0.36) 0.698
#> 3 ARIMA(Consumption) 2018 Q1 N(0.69, 0.38) 0.689
#> 4 ARIMA(Consumption) 2018 Q2 N(0.71, 0.42) 0.709
#> 5 ARIMA(Consumption) 2018 Q3 N(0.72, 0.42) 0.724
#> 6 ARIMA(Consumption) 2018 Q4 N(0.73, 0.42) 0.727
#> 7 ARIMA(Consumption) 2019 Q1 N(0.74, 0.42) 0.741
#> 8 ARIMA(Consumption) 2019 Q2 N(0.75, 0.43) 0.748

mfull <- refit(m, new_data = us_change, reestimate = FALSE)

report(mfull)

#> Series: Consumption 
#> Model: ARIMA(1,0,3)(1,0,1)[4] w/ mean 
#> 
#> Coefficients:
#>           ar1     ma1     ma2     ma3     sar1    sma1  constant
#>       -0.3474  0.5684  0.3274  0.4123  -0.1367  0.3775    1.1352
#> s.e.   0.1579  0.1486  0.0938  0.0798   0.2164  0.1833    0.1313
#> 
#> sigma^2 estimated as 0.3207:  log likelihood=-168.58
#> AIC=339.17   AICc=339.19   BIC=342.46

forecast(mfull)

#> # A fable: 8 x 4 [1Q]
#> # Key:     .model [1]
#>   .model             Quarter   Consumption .mean
#>   <chr>                <qtr>        <dist> <dbl>
#> 1 ARIMA(Consumption) 2019 Q3 N(0.68, 0.32) 0.676
#> 2 ARIMA(Consumption) 2019 Q4 N(0.64, 0.34) 0.638
#> 3 ARIMA(Consumption) 2020 Q1 N(0.87, 0.36) 0.869
#> 4 ARIMA(Consumption) 2020 Q2 N(0.73, 0.39) 0.729
#> 5 ARIMA(Consumption) 2020 Q3  N(0.74, 0.4) 0.737
#> 6 ARIMA(Consumption) 2020 Q4  N(0.76, 0.4) 0.755
#> 7 ARIMA(Consumption) 2021 Q1  N(0.81, 0.4) 0.807
#> 8 ARIMA(Consumption) 2021 Q2  N(0.71, 0.4) 0.714

reprex package(v2.0.1)于2023-04-01创建

相关问题