El proposito del Laboratorio 4 es utilizar una base de datos para pronosticar el PIB de República Dominicana.
Para eso primero se cargan las librerías y la base de datos.
library(forecast)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(seasonal)
library(tseries)
library(readxl)
datos <- read_excel(file.choose(), sheet = 2)
datos<-ts(datos$GDP, frequency = 1)
str(datos)
## Time-Series [1:61] from 1 to 61: -2.31 17.05 6.5 6.76 -12.48 ...
tseries::adf.test(datos)
##
## Augmented Dickey-Fuller Test
##
## data: datos
## Dickey-Fuller = -3.1946, Lag order = 3, p-value = 0.09674
## alternative hypothesis: stationary
plot(datos)
data <- datos
diff_ts<-diff(data)
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.7048, Lag order = 3, p-value = 0.01
## alternative hypothesis: stationary
plot(diff_ts)
acf(diff_ts)
pacf(diff_ts)
modelo1 = arima(data, order=c(2,1,1))
modelo2 = arima(data, order=c(2,1,2))
modelo3 = arima(data, order=c(2,1,3))
modelo1$aic
## [1] 379.7082
modelo2$aic
## [1] 381.7082
modelo3$aic
## [1] 378.8351
checkresiduals(modelo3$residuals)
## Warning in modeldf.default(object): Could not find appropriate degrees of
## freedom for this model.
En la primera gráfica no hay una tendencia clara.
En la segunda gráfica ninguno de los lags pasa los límites de tolerancia.
En la tercera gráfica si muestra una forma de campana. Es decir que los residuales se comportan de forma norma.
Box.test(modelo3$residuals, type="Ljung-Box")
##
## Box-Ljung test
##
## data: modelo3$residuals
## X-squared = 0.16436, df = 1, p-value = 0.6852
a<-forecast::forecast(modelo3)
plot(a)