5.6 Previsione usando trasformazioni

Alcune trasformazioni comuni sono state discusse nel paragrafo 3.1. Quando si fanno previsioni da un modello con trasformazioni, si producono prima le previsioni dei dati trasformati. Si deve poi invertire la trasformazione (back-transform) per ottenere previsioni dei valori originali. Per le trasformazioni Box-Cox ottenute applicando la formula (3.1), la trasformazione inversa è data da

\[\begin{equation} \tag{5.2} y_{t} = \begin{cases} \exp(w_{t}) & \text{if $\lambda=0$};\\ \text{sign}(\lambda w_t+1)|\lambda w_t+1|^{1/\lambda} & \text{altrimenti}. \end{cases} \end{equation}\]

Il package fable calcola automaticamente le previsioni in senso inverso ogni volta che una trasformazione viene utilizzata nella definizione del modello. La distribuzione di previsione contro-trasformata è quindi una distribuzione “normale trasformata”.

Intervalli di previsione con transformazioni

Se è stata utilizzata una trasformazione, come primo passo l’intervallo di previsione viene calcolato sulla scala trasformata, gli estremi vengono quindi contro-trasformati per ottenere un intervallo di previsione nella scala originale. Questo approccio conserva la copertura di probabilità dell’intervallo di previsione, anche se questo non sarà più simmetrico intorno alla previsione puntuale.

La contro-trasformazione degli intervalli di previsione viene fatta automaticamente quando si usa il package fable, a condizione che sia stata utilizzata una trasformazione nella formula del modello.

A volte le trasformazioni hanno un impatto limitato sulle previsioni puntuali ma possono avere un grande effetto sugli intervalli di previsione.

Correzione delle distorsioni

In generale l’uso di trasformazioni matematiche come le trasformazioni Box-Cox fa si che la previsione puntuale contro-trasformata non sarà la media della distribuzione della previsione ma la mediana (assumendo che la distribuzione nello spazio trasformato sia simmetrica). Per molti scopi, questo risulato è accettabile, anche se la media è di solito preferibile. Ad esempio, si potrebbero voler sommare le previsioni di vendita di varie regioni per formare una previsione per l’intero paese: le mediane non si sommano, mentre le medie sì.

Per una trasformazione Box-Cox, la media contro-trasformata è data (approssimativamente) da \[\begin{equation} \tag{5.3} \hat{y}_{T+h|T} = \begin{cases} \exp(\hat{w}_{T+h|T})\left[1 + \frac{\sigma_h^2}{2}\right] & \text{if $\lambda=0$;}\\ (\lambda \hat{w}_{T+h|T}+1)^{1/\lambda}\left[1 + \frac{\sigma_h^2(1-\lambda)}{2(\lambda \hat{w}_{T+h|T}+1)^{2}}\right] & \text{altrimenti;} \end{cases} \end{equation}\]

dove \(\hat{w}_{T+h|T}\) è la media delle previsioni \(h\) passa avanti e \(\sigma_h^2\) è la varianza di queste previsioni sulla scala trasformata. Più grande è la varianza della previsione, più grande è la differenza tra la media e la mediana.

La differenza tra la semplice previsione contro-trasformata data dalla (5.2) e la media data dalla (5.3) è chiamata distorsione (bias). Quando si utilizza la media piuttosto che la mediana, si dice che le previsioni puntuali sono state aggiustate per il bias.

Per quantificare il bias-adjustment, si consideri il seguente esempio, dove il prezzo medio annuale delle uova viene previsto usando il metodo della deriva con una trasformazione logaritmica \((\lambda=0)\). La trasformazione logaritmica è utile in questo caso per assicurare che le previsioni e gli intervalli di previsione rimangano positivi.

prices %>%
  filter(!is.na(eggs)) %>%
  model(RW(log(eggs) ~ drift())) %>%
  forecast(h = 50) %>%
  autoplot(prices %>% filter(!is.na(eggs)),
    level = 80, point_forecast = lst(mean, median)
  ) +
  labs(title = "Prezzo annuale delle uova",
       y = "$US (in centesimi corrette per l'inflazione) ")
Previsioni dei prezzi delle uova mediante il metodo del drift applicato ai dati osservati. La linea continua mostra le previsioni medie corrette per l'errore; la linea tratteggiata mostra le previsioni mediane

Figura 5.17: Previsioni dei prezzi delle uova mediante il metodo del drift applicato ai dati osservati. La linea continua mostra le previsioni medie corrette per l’errore; la linea tratteggiata mostra le previsioni mediane

La linea tratteggiata in figura 5.17 mostra le mediane delle previsioni mentre la linea continua mostra le medie delle previsioni. Si noti come la distribuzione di previsione tira verso l’alto la media della distribuzione di previsione; questo è il risultato del termine aggiunto dalla correzione della distorsione.

Le medie delle previsioni corrette per la distorsione sono calcolate automaticamente nel package fable. La mediana della previsione (la previsione puntuale prima della correzione della distorsione) può essere ottenuta usando la funzione median() sulla colonna della distribuzione.