SERIE DE TIEMPO I
set.seed(300)
timeseries=ts(arima.sim(list(order = c(1,1,2), ma=c(0.32,0.47), ar=0.8), n = 50)+20, start=2010, frequency = 4)
plot(timeseries)
plot(decompose(timeseries))
adf.test(timeseries)
##
## Augmented Dickey-Fuller Test
##
## data: timeseries
## Dickey-Fuller = -0.58049, Lag order = 3, p-value = 0.975
## alternative hypothesis: stationary
Siendo:
H0: La serie tiene raices unitarias. No es estacionaria > 0.05 Ha: La serie no tiene raices unitarias. Es estacionaria < 0.05
Se observa un valor P = 0.975, es decir, una serie de tiempo no estacionaria por lo que corresponde aplicarle diferencias.
diff_ts<-(diff(timeseries))
plot(diff_ts)
plot(decompose(diff_ts))
adf.test(diff_ts)
##
## Augmented Dickey-Fuller Test
##
## data: diff_ts
## Dickey-Fuller = -2.5981, Lag order = 3, p-value = 0.3344
## alternative hypothesis: stationary
Después de aplicar la primera diferencia se observa un P valor = 0.3344, la serie no es estacionaria por lo que se aplica una segunda diferencia:
diff_ts<-diff(diff(timeseries))
plot(diff_ts)
plot(decompose(diff_ts))
adf.test(diff_ts)
##
## Augmented Dickey-Fuller Test
##
## data: diff_ts
## Dickey-Fuller = -3.5551, Lag order = 3, p-value = 0.04613
## alternative hypothesis: stationary
Después de aplicar la segunda diferencia, se observa un P valor = 0.04613, convirtiendo la serie de tiempo en una serie estacionaria.
acf(timeseries)
pacf(timeseries)
Las gráficas parecen indicar que se debe usar un modelo AR (Autorregresivo)
modelo1 = arima(timeseries, order=c(1,2,0))
modelo2 = arima(timeseries, order=c(2,2,0))
modelo1$aic
## [1] 153.4622
modelo2$aic
## [1] 153.0968
Después de probar dos posibles modelos se escoge el de menor valor el cual representa el modelo con el menor error.
El modelo oficial queda en (2,2,0)
Evaluamos la correlación del modelo para asegurarnos que no exista tendencia:
checkresiduals(modelo2$residuals)
## Warning in modeldf.default(object): Could not find appropriate degrees of
## freedom for this model.
Box.test(modelo2$residuals, type="Ljung-Box")
##
## Box-Ljung test
##
## data: modelo2$residuals
## X-squared = 0.44874, df = 1, p-value = 0.5029
autoplot(forecast(modelo2))
SERIE DE TIEMPO II
set.seed(400)
timeseries=ts(arima.sim(list(order = c(1,1,2), ma=c(0.32,0.47), ar=0.8), n = 50)+20, start=2010, frequency = 4)
plot(timeseries)
plot(decompose(timeseries))
adf.test(timeseries)
##
## Augmented Dickey-Fuller Test
##
## data: timeseries
## Dickey-Fuller = -1.9818, Lag order = 3, p-value = 0.5817
## alternative hypothesis: stationary
Siendo:
H0: La serie tiene raices unitarias. No es estacionaria > 0.05 Ha: La serie no tiene raices unitarias. Es estacionaria < 0.05
Se observa un valor P = 0.5817, es decir, una serie de tiempo no estacionaria por lo que corresponde aplicarle diferencias.
diff_ts<-diff(timeseries)
plot(diff_ts)
plot(decompose(diff_ts))
adf.test(diff_ts)
##
## Augmented Dickey-Fuller Test
##
## data: diff_ts
## Dickey-Fuller = -3.0634, Lag order = 3, p-value = 0.1477
## alternative hypothesis: stationary
Después de aplicar la primera diferencia, se observa un P valor = 0.1477, la serie de tiempo aún no es estacionaria por lo que se le aplica una segunda diferencia.
diff_ts<-diff(diff(timeseries))
plot(diff_ts)
plot(decompose(diff_ts))
adf.test(diff_ts)
##
## Augmented Dickey-Fuller Test
##
## data: diff_ts
## Dickey-Fuller = -3.2214, Lag order = 3, p-value = 0.09434
## alternative hypothesis: stationary
Después de aplicar la segunda diferencia se obtiene un valor P = 0.09434, la serie de tiempo aún no es estacionaria por lo que se procede a realizarle otra diferencia.
diff_ts<-diff(diff(diff(timeseries)))
plot(diff_ts)
plot(decompose(diff_ts))
adf.test(diff_ts)
## Warning in adf.test(diff_ts): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: diff_ts
## Dickey-Fuller = -4.2759, Lag order = 3, p-value = 0.01
## alternative hypothesis: stationary
Después de aplicarle una tercera diferencia se obtiene un valor p = 0.01 que indica que la serie es estacionaria.
acf(timeseries)
pacf(timeseries)
Las gráficas parecen indicar que se debe usar un modelo AR (Autorregresivo)
modelo1 = arima(timeseries, order=c(1,3,0))
modelo2 = arima(timeseries, order=c(2,3,0))
modelo1$aic
## [1] 137.1494
modelo2$aic
## [1] 137.0585
Se escoge el resultado de menor valor ya que indica que la serie de tiempo tiene menor error, escogemos el segundo modelo con 137.0585.
El modelo oficial es (2,3,0)
Evaluamos la correlación del modelo para comprobar que no exista tendencia:
checkresiduals(modelo2$residuals)
## Warning in modeldf.default(object): Could not find appropriate degrees of
## freedom for this model.
Box.test(modelo2$residuals, type="Ljung-Box")
##
## Box-Ljung test
##
## data: modelo2$residuals
## X-squared = 0.0045289, df = 1, p-value = 0.9463
autoplot(forecast(modelo2))
SERIE DE TIEMPO III
set.seed(500)
timeseries=ts(arima.sim(list(order = c(1,1,2), ma=c(0.32,0.47), ar=0.8), n = 50)+20, start=2010, frequency = 4)
plot(timeseries)
plot(decompose(timeseries))
adf.test(timeseries)
##
## Augmented Dickey-Fuller Test
##
## data: timeseries
## Dickey-Fuller = -1.0237, Lag order = 3, p-value = 0.926
## alternative hypothesis: stationary
Siendo:
H0: La serie tiene raices unitarias. No es estacionaria > 0.05 Ha: La serie no tiene raices unitarias. Es estacionaria < 0.05
Se observa un valor P = 0.926, es decir, una serie de tiempo no estacionaria por lo que corresponde aplicarle diferencias.
diff_ts<-(diff(timeseries))
plot(diff_ts)
plot(decompose(diff_ts))
adf.test(diff_ts)
##
## Augmented Dickey-Fuller Test
##
## data: diff_ts
## Dickey-Fuller = -2.5316, Lag order = 3, p-value = 0.3611
## alternative hypothesis: stationary
Después de aplicar la segunda diferencia P valor = 0.3611 por lo que la serie no es estacionaria, corresponde aplicarle una segunda diferencia
diff_ts<-diff(diff(timeseries))
plot(diff_ts)
plot(decompose(diff_ts))
adf.test(diff_ts)
##
## Augmented Dickey-Fuller Test
##
## data: diff_ts
## Dickey-Fuller = -4.032, Lag order = 3, p-value = 0.01574
## alternative hypothesis: stationary
Después de aplicar la segunda diferencia obtenemos un P valor = 0.01574 por lo que la serie de tiempo es estacionaria.
acf(timeseries)
pacf(timeseries)
Las gráficas parecen indicar que se debe usar un modelo AR
(Autorregresivo)
modelo1 = arima(timeseries, order=c(1,2,0))
modelo2 = arima(timeseries, order=c(2,2,0))
modelo1$aic
## [1] 165.4344
modelo2$aic
## [1] 159.0431
Se escoge el resultado de menor valor ya que indica que la serie de tiempo tiene menor error, escogemos el segundo modelo con 159.0431
El modelo oficial es (2,2,0)
Evaluamos la correlación del modelo para comprobar que no exista tendencia:
checkresiduals(modelo2$residuals)
## Warning in modeldf.default(object): Could not find appropriate degrees of
## freedom for this model.
Box.test(modelo2$residuals, type="Ljung-Box")
##
## Box-Ljung test
##
## data: modelo2$residuals
## X-squared = 1.5191, df = 1, p-value = 0.2178
autoplot(forecast(modelo2))