data <- read.table(file.choose(),head=TRUE,sep=";")
data <- data.frame(data)
datos_ts<-ts(data$PIBGr, frequency = 1)
plot(datos_ts,main="Serie de tiempo",ylab="Crecimiento del PIB",xlab="Años")
tseries::adf.test(datos_ts)
##
## Augmented Dickey-Fuller Test
##
## data: datos_ts
## Dickey-Fuller = -3.4234, Lag order = 3, p-value = 0.06039
## alternative hypothesis: stationary
De acuerdo con el resultado de la prueba se obtuvo un p-value de 0.06039. Por ello es necesario realizar una diferenciación a la serie de tiempo para que esta sea estacionaria.
diff_ts<-diff(datos_ts)
plot(diff_ts,main="Serie de tiempo",ylab="Crecimiento del PIB",xlab="Años")
tseries::adf.test(diff_ts)
## Warning in tseries::adf.test(diff_ts): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: diff_ts
## Dickey-Fuller = -5.2713, Lag order = 3, p-value = 0.01
## alternative hypothesis: stationary
Luego de realizar una diferenciación a la serie de tiempo, se observa en la gráfica que no hay tendencia. Además, con la prueba de Dickey-Fuller se obtuvo un p-value de 0.01 que es menor a 0.05. Por lo cual, la serie de tiempo con una diferenciación sí es estacionaria.
acf(diff_ts)
pacf(diff_ts)
En la gráfica de ACF se puede observar una caída instantánea y en la gráfica de PACF se observa una caída gradual. Por ello se utilizará un modelo de medias móviles (MA).
modelo1 = arima(datos_ts, order=c(0,0,1))
modelo2 = arima(datos_ts, order=c(0,0,2))
modelo1$aic
## [1] 357.8585
modelo2$aic
## [1] 359.759
En base al criterio de información de Akaike obtenido de ambos modelos, se selecciona el modelo 1 porque presenta el valor más bajo, que es correspondiente a 357.8585
checkresiduals(modelo1$residuals)
## Warning in modeldf.default(object): Could not find appropriate degrees of
## freedom for this model.
Box.test(modelo1$residuals, type="Ljung-Box")
##
## Box-Ljung test
##
## data: modelo1$residuals
## X-squared = 0.00093954, df = 1, p-value = 0.9755
Por medio de la prueba de Ljung-Box se obtuvo un p-value de 0.9755. Dado que este valor es mayor a 0.05 se afirma que existe ruido blanco en el modelo de la serie de tiempo, lo cual significa que los residuos del modelo se deben a causas estocásticas.
a<-forecast::forecast(modelo1)
plot(a)