13.7 Serie storiche molto lunhe e molto corte

Previsione di serie storiche molto corte

Spesso ci viene chiesto come si può stimare un modello per serie storiche avendo a disposizione pochi dati. Come per quasi tutte le domande che si riferiscono alla dimensione campionaria, non c’è una risposta semplice ed esaustiva. Essa dipende da quanti sono i parametri del modello che bisogna stimare e dalla variabilità dei dati. La numerosità capionaria richiesta cresce con il numero di parametri da stimare e con la quantità di rumore presente nei dati.

Alcuni testi forniscono delle semplici regole del pollice che suggeriscono la numerosità campionaria minima per vari tipi di serie storiche. Generalmente, queste regole sono fuorvianti e non hanno una giustificazione né teorica né pratica. Inoltre, esse ignorano la variabilità sottostante ai dati e spesso trascurano il numero di parametri da stimare. Per esempio, non c’è nessuna giustificazione per il numero magico di 30 che spesso viene indicato come il minimo per la modellazione ARIMA. Il solo limite teorico è che bisogna avere almeno più osservazioni di quanti siano i parametri del modello predittivo considerato. In pratica, però, di solito è necessario avere un numero di osservazioni ben più grande di questo minimo.

Idealmente, si vorrebbe testare se il modello prescelto funziona bene fuori dal periodo campionario (out-of-sample) in confronto a qualche approccio più semplice. Tuttavia, con serie corte non ci sono abbastanza dati da permettere di tenere da parte alcune osservazioni per testare la performance out-of-sample, e perfino i metodi di validazione incrociata possono essere difficile da applicare. Il criterio AICc qui è particolarmente utile, perché è una proxy dell’errore quadratico medio (MSE) di previsione a un passo out-of-sample. Scegliere il modello minimizzando AICc permette di tenere in considerazione sia il numero di parametri che l’entità del rumore.

Con serie storiche corte, AICc tende a selezionare modelli semplici perché modelli con più di uno o due parametri producono previsioni inaccurate a causa dell’errore di stima degli stessi. Adatteremo un modello ARIMA alle serie annuali, presenti nel dataset della competizione M3, che hanno meno di 20 osservazioni. Prima, però, dobbiamo creare un tsibble, contenente queste serie.

m3totsibble <- function(z) {
  bind_rows(
    as_tsibble(z$x) %>% mutate(Type = "Training"),
    as_tsibble(z$xx) %>% mutate(Type = "Test")
  ) %>%
    mutate(
      st = z$st,
      type = z$type,
      period = z$period,
      description = z$description,
      sn = z$sn,
    ) %>%
    as_tibble()
}
short <- Mcomp::M3 %>%
  subset("yearly") %>%
  purrr::map_dfr(m3totsibble) %>%
  group_by(sn) %>%
  mutate(n = max(row_number())) %>%
  filter(n <= 20) %>%
  ungroup() %>%
  as_tsibble(index = index, key = c(sn, period, st))

Ora possiamo stimare un modello ARIMA per ciascuna serie.

short_fit <- short %>%
  model(arima = ARIMA(value))

Dei 152 modelli identificati, 21 avevano zero parametri (white noise e random walk), 86 avevano un parametro, 31 avevano due parametri, 13 aevano tre parametri, e solo 1 modello aveva quattro parametri.

Previsione di serie storiche molto lunghe

La maggior parte dei modelli per serie storiche non funziona bene con serie molto lunghe. Il problema è che i dati reali non sono stati generati dal modello che stiam usando. Quando il numero di osservazioni non è troppo elevato (diciamo fino a 200 circa) i modelli producono delle buone approssimazioni di qualsiasi processo abbia generato i dati. Ma, quando avremo un numero di osservazioni sufficientemente elevato, le differenze tra il vero processo generatore e il modello comincieranno ad evidenziarsi. Un problema ulteriore è che la fase di ottimizzazione dei parametri richiede sempre più tempo a causa del numero di osservazioni coinvolte.

Cosa sia meglio fare in questi frangenti dipende dalle finalità del modello. Si potrebbe usare un modello più flessibile e più complesso, ma questo comunque assume che la struttura del modello continui ad essere valida al di fuori del periodo in cui i dati sono stati osservati. Spesso, un approccio migliore è quello di permettere al modello di cambiare nel tempo. I modelli ETS sono stati pensati proprio per questa situazione e permettono alle componenti di trend e stagionali di evolvere nel tempo. I modelli ARIMA con differenziazione hanno una proprietà simile. Ma i modelli di regressione dinamica non permettono alcuna evoluzione delle componenti del modello.

Se si è interessati solamente ad una previsione di breve periodo, un approccio semplice è quello di scartare le osservazioni più lontante nel tempo e adattare un modello utilizzando solo le osservazioni più recenti. In questo caso anche un modello non flessibile può funzionare bene perché non c’è abbastanza tempo perché le relazioni cambino in modo sostanziale.

Per esempio, in Sezione 13.1, è stato stimato un modello di regressione armonica dinamica a 26 anni di dati settimanali relativi alla produzione di benzina. Probabilmente, è irrealistico assumere che l’andamento stagionale rimanga lo stesso per tre decenni. Si può quindi, semplicemente, adattare un modello solo ai dati più recenti.