13.5 Intervalli di previsione per aggregazioni

Un problema piuttosto comune è quello di prevedere l’aggregazione dei dati su più periodi temporali utilizzando un modello stimato per dati sui singoli periodi. Per esempio, potremmo avere dati mensili ma voler preveder il totale per il prossimo anno. Oppure, potremmo avere dati settimanali, e voler prevedere il totale per le prossime quattro settimane.

Se le previsioni puntuali sono delle medie, allora la loro somma fornisce una buona stima del totale. Ma gli intervalli di previsione sono più complicati a causa dellacorrelazione tra gli errori di previsione.

Una soluzione generale consiste nel ricorrere a delle simulazioni. Qui di seguito, un esempio che utilizza modelli ETS models applicati alle vendite australiane di cibo per asporto e che assume di voler prevedere il ricavo aggregato nei prossimi 12 mesi.

fit <- auscafe %>%
  # Fit a model to the data
  model(ETS(Turnover))
futures <- fit %>%
  # Simulate 10000 future sample paths, each of length 12
  generate(times = 10000, h = 12) %>%
  # Sum the results for each sample path
  as_tibble() %>%
  group_by(.rep) %>%
  summarise(.sim = sum(.sim)) %>%
  # Store as a distribution
  summarise(total = distributional::dist_sample(list(.sim)))

Possiamo calcolare la media dei dati simulati insieme agli intervalli di previsione:

futures %>%
  mutate(
    mean = mean(total),
    pi80 = hilo(total, 80),
    pi95 = hilo(total, 95)
  )
#> # A tibble: 1 × 4
#>           total   mean             pi80             pi95
#>          <dist>  <dbl>           <hilo>           <hilo>
#> 1 sample[10000] 19212. [18330, 20118]80 [17851, 20628]95

Come atteso, la media dei dati simulati è prossima alla somma delle previsioni individuali.

forecast(fit, h = 12) %>%
  as_tibble() %>%
  summarise(total = sum(.mean))
#> # A tibble: 1 × 1
#>    total
#>    <dbl>
#> 1 19212.