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
Istruzioni dell'esercizio
- Usa
predict()per fare una previsione del livello di portata del Nilo nel 1971. Salva la previsione inpredict_MA. - Usa
predict_MAinsieme 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'argomenton.aheaduguale a10. - Esegui il codice già scritto per tracciare la serie temporale
Nileinsieme 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)