Home > Doc > Analisi delle serie storiche con R > I modelli ARIMA III

Analisi delle serie storiche con R

I modelli ARIMA III

Stima dei parametri di un modello MA(1):

fitma<-arima(ma1,c(0,1,1))
Call:
arima(x = ma1, order = c(0, 1, 1))
Coefficients:
ma1
-0.4351
s.e. 0.1716
sigma^2 estimated as 0.8721: log likelihood = -67.63, aic = 139.26

Stima dei parametri di un modello MA(2):

fitma2<-arima(ma2, c(0,1,2))
fitma2
Call:
arima(x = ma2, order = c(0, 1, 2))
Coefficients:
ma1 ma2
-0.6165 0.1567
s.e. 0.1386 0.1640
sigma^2 estimated as 0.8421: log likelihood = -66.84, aic = 139.69

Il commando tsdiad() consente di effettuare la diagnostica di un modello stimato. Esso fornisce in forma grafica: il grafico dei residui standardizzati, la funzione di autocorrelazione dei residui e il p-value per il test di Ljung-Box per tutti i lag.
La diagnostica del modello MA(1) stimato sembra mostra un buon adattamento:

tsdiag(fitma)

Stima dei parametri di un modello ARIMA(1,1,1)

arimafit<-arima(arima1, order=c(1,1,1), include.mean=FALSE)
arimafit
Call:
arima(x = arima1, order = c(1, 1, 1), include.mean = FALSE)
Coefficients:
ar1 ma1
0.1343 0.0709
s.e. 0.7059 0.7119
sigma^2 estimated as 0.7781: log likelihood = -64.7, aic = 135.39
tsdiag(arimafit)

Nel comando arma() del package tseries occorre specificare l’ordine del modello e se includere o meno l’intercetta (include.intercept=FALSE).

Stima dei parametri di un modello ARMA(1,1) mediante il commando arma()

library(tseries)
arimafit2<-arma(arima1, order=c(1,1), include.intercept=FALSE)
arimafit2
Call:
arma(x = arima1, order = c(1, 1), include.intercept = FALSE)
Coefficient(s):
ar1 ma1
0.9635 0.2225
summary(arimafit2)
Call:
arma(x = arima1, order = c(1, 1), include.intercept = FALSE)

Clicca per ingrandire

Alle stime dei modelli ottenute con le funzioni arima() e ar()si può applicare il metodo predict()per avere delle previsioni basate sul modello stimato. È necessario specificare il numero di istanti temporali per i quali si vuole effettuare la previsione (n.ahead).

predict(arfit2,n.ahead=5)
$pred
Time Series:
Start = 51
End = 55
Frequency = 1
[1] -0.39292255 -0.08592028 0.17157831 0.17836027 0.02927696

$se
Time Series:
Start = 51
End = 55
Frequency = 1
[1] 0.4293852 0.5341261 0.5345763 0.5673761 0.5673761

predict(arfit, n.ahead=7)
$pred
Time Series:
Start = 51
End = 57
Frequency = 1
[1] -0.46657296 -0.18890569 -0.04295774 -0.15261519 -0.26285552 -0.23439574
[7] -0.16647208

$se
Time Series:
Start = 51
End = 57
Frequency = 1
[1] 0.4977915 0.8094508 0.9062404 0.9444831 1.0077669 1.1046801 1.1870733

Nel package fSeries si può trovare il comando ArmaModelling che permette la simulazione e la stima dei parametri di modelli AR, MA e ARMA..

Vito Ricci

Successivo: Appendice

Sommario: Index