IniziaInizia gratis

Previsioni con dati settimanali

Con i dati settimanali è difficile gestire la stagionalità usando modelli ETS o ARIMA perché la lunghezza stagionale è troppo grande (circa 52). In alternativa, puoi usare la regressione armonica, che utilizza seni e coseni per modellare la stagionalità.

La funzione fourier() semplifica la generazione delle armoniche necessarie. Più alto è l’ordine (\(K\)), più "ondulato" può essere l’andamento stagionale. Con \(K=1\), è una semplice sinusoide. Puoi scegliere il valore di \(K\) minimizzando l’AICc. Come hai visto nel video, fourier() richiede una serie temporale, il numero di termini di Fourier da generare e, in modo opzionale, il numero di righe da prevedere:

> # fourier(x, K, h = NULL)

> fit <- auto.arima(cafe, xreg = fourier(cafe, K = 6),
                    seasonal = FALSE, lambda = 0)
> fit %>%
    forecast(xreg = fourier(cafe, K = 6, h = 24)) %>%
    autoplot() + ylim(1.6, 5.1)

I dati gasoline pre-caricati comprendono dati settimanali sui prodotti finiti di benzina per motori negli Stati Uniti. In questo esercizio, adatterai una regressione armonica a questo insieme di dati e produrrai previsioni per i prossimi 3 anni.

Questo esercizio fa parte del corso

Previsioni in R

Visualizza il corso

Istruzioni dell'esercizio

  • Crea una matrice xreg chiamata harmonics usando il metodo fourier() su gasoline con ordine \(K=13\), scelto per minimizzare l’AICc.
  • Stima un modello di regressione dinamica in fit. Imposta xreg uguale a harmonics e seasonal su FALSE perché la stagionalità è gestita dai regressori.
  • Crea una nuova matrice xreg chiamata newharmonics in modo analogo, quindi calcola le previsioni per i prossimi tre anni come fc.
  • Infine, traccia il grafico delle previsioni fc.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Set up harmonic regressors of order 13
harmonics <- fourier(___, K = ___)

# Fit regression model with ARIMA errors
fit <- auto.arima(___, xreg = ___, seasonal = ___)

# Forecasts next 3 years
newharmonics <- fourier(___, K = ___, h = ___)
fc <- forecast(___, xreg = ___)

# Plot forecasts fc
___
Modifica ed esegui il codice