Yes - many thanks!
(1) Just to confirm, if
bootstrap = TRUE, would the following be bootstrapping the forecasts of each model, and then averaging each models bootstrap forecasts?
filter(year(date) <= 2018) |>
model(ETS = ETS(turnover),
ARIMA = ARIMA(turnover ~
pdq(d=1) + PDQ(D=1))
forecast(h = "1 year", bootstrap = TRUE) |>
turnover = dist_mixture(
mutate(.model = "ENSEMBLE") |>
data = auscafe,
measures = list(crps=CRPS, rmse=RMSE)
And the same question for a Combination?
mutate(COMB = (ETS + ARIMA)/2)
The code in the repo plots distributions for Combination and Mixture models, with no transformation and
bootstrap = FALSE, as Normals and Mixture of Normals i.e. as "smoothed" distributions.
The models I have used in fable, are:
- ENSEMBLE: ARIMA and ETS
for various series, with transformations:
- none (back-transformed Normal distribution),
- log (back-transformed Log-Normal distribution)
- sqrt (back-transformed Non-Central Chi-squared distribution),
bootstrap = TRUE, as a Normal distribution for the residuals may be an unreasonable assumption.
(2) For the single models ARIMA, and ETS, I have used
bootstrap = TRUE. Correct?
(3) For the ENSEMBLE will
geom_density suffice or is there an equivalent
dist_mixture( ?, ?, weights = c(0.5, 0.5))) for
geom_density? If, not how to plot the forecast distribution for an ENSEMBLE with
bootstrap = TRUE?
(4) Also, as per fable: Combination Models, Methodology and Simple Numerical Example - #6 by mitchelloharawild, exactly how are the forecast SE's calculated/aggregated for an ENSEMBLE? I'd very much appreciate a simple numerical example.