IniziaInizia gratis

Previsioni semplici da un modello MA stimato

Ora che hai stimato un modello MA con i dati di Nile, il passo successivo è fare qualche previsione semplice con il tuo modello. Come per altri tipi di modelli, puoi usare la funzione predict() per ottenere previsioni semplici dal modello MA stimato. Ricorda che il valore $pred è la previsione, mentre $se è l'errore standard associato a quella previsione: entrambi si basano sul modello MA stimato.

Ancora una volta, per fare previsioni per più periodi oltre l'ultima osservazione puoi usare l'argomento n.ahead = h nella chiamata a predict(). Le previsioni sono generate ricorsivamente da 1 fino a h passi in avanti rispetto alla fine della serie storica osservata. Tieni però presente che, a eccezione della previsione a 1 passo, tutte le previsioni del modello MA sono uguali alla media stimata (intercept).

In questo esercizio userai il modello MA ricavato dai dati di Nile per fare previsioni semplici sui futuri livelli di portata del fiume Nilo. Il tuo modello MA dall'esercizio precedente è disponibile nel tuo ambiente.

Questo esercizio fa parte del corso

Analisi delle serie temporali in R

Visualizza il corso

Istruzioni dell'esercizio

  • Usa predict() per fare una previsione del livello di portata del Nilo nel 1971. Salva la previsione in predict_MA.
  • Usa predict_MA insieme a $pred[1] per ottenere la previsione a 1 passo.
  • Fai un'altra chiamata a predict() per ottenere previsioni dal 1971 al 1980. Per farlo, imposta l'argomento n.ahead uguale a 10.
  • Esegui il codice già scritto per tracciare la serie temporale Nile insieme alla previsione e agli intervalli di predizione al 95%.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Make a 1-step forecast based on MA
predict_MA <-

# Obtain the 1-step forecast using $pred[1]


# Make a 1-step through 10-step forecast based on MA


# Plot the Nile series plus the forecast and 95% prediction intervals
ts.plot(Nile, xlim = c(1871, 1980))
MA_forecasts <- predict(MA, n.ahead = 10)$pred
MA_forecast_se <- predict(MA, n.ahead = 10)$se
points(MA_forecasts, type = "l", col = 2)
points(MA_forecasts - 2*MA_forecast_se, type = "l", col = 2, lty = 2)
points(MA_forecasts + 2*MA_forecast_se, type = "l", col = 2, lty = 2)
Modifica ed esegui il codice