# PUNTO 1 Graficar las series y analizar estacionalidad

Analisis : Con respecto a la demanda de pasajeros aĆ©reos en Estados Unidos (1949–1960) se puede observar una con claridad una tendencia que incrementa a lo largo de los aƱos, es decir, que el nĆŗmero promedio de pasajeros crece a lo largo del periodo. AdemĆ”s, la serie muestra un patrón estacional repetitivo, en donde, los picos de la grafica se concentran en los meses de junio, julio y agosto, en los cuales la demanda es mayor por debido a las temporadas de verano, tambiĆ©n se evidencia que el los meses de diciembre esta tendencia se reduce, infiriendo que la demanda es menor.

De acuerdo con la grÔfica la tendencia de la serie se ve reflejado desde los años 50 donde los avances tecnológicos dieron impulso a la aeronÔutica y la creación de aviones.

Con respecto al codigo de descomposición de la serie, se muestra que esta posee estacionalidad, donde se presenta una tendencia positiva a lo largo de los años. Esto afirma que la demanda de pasajeros presenta mayor actividad en los meses de verano con respecto a los meses de invierno, marcando un efecto calendario

#  graficar la serie 

ts_plot(AirPassengers, slider = TRUE,
        title = "Demanda promedio mensual de pasajeros en Estados Unidos de 1949-1960",
        Ytitle = "pasajeros",
        Xtitle = "aƱos" ) 
# descomponer 

ts_decompose(AirPassengers, type = "both")

# PUNTO 2, Descomposición aditiva y multiplicativa

Analisis: Cuando se desestacionaliza la serie, se evidencia una tendencia de crecimiento de la demanda de pasajeros mÔs estable en comparación con la original, la cual no depende del número de pasajeros durante los meses sino factores generales como los costos, el crecimiento económico y los avances del medio aéreo

demanda_descom <- decompose(AirPassengers, type = "additive")

demanda_des <- AirPassengers - demanda_descom$seasonal

demanda <- data.frame("demanda_ob" = as.numeric(AirPassengers)) %>% 
 mutate(demanda_des = as.numeric(demanda_des), 
          fecha = demanda_air$fecha)

ts_plot(demanda, slider = TRUE,
        title = "Demanda de pasajeros grafico normal y desetacionalizada",
        Ytitle = "pasajeros",
        Xtitle = "aƱos")

# PUNTO 3 Estacionariedad (a priori, correlograma, Dickey-Fuller)

Analisis: Cuando analizamos la serie de pasajeros apriori, lo primero que se nota es que no es estacionaria, porque presenta una tendencia positiva, en la cual con el paso de los aƱos la demanda de pasajeros aumenta generando picos mƔs altos. Lo que significa que que los valores de la serie no se mantienen estables en el tiempo.

Al revisar el test de correlogramas, se observa que la serie muestra un comportamiento autorregresivo (AR), específicamente un AR(2), lo que significa que los valores pasados influyen bastante en los futuros, también muestra que la correlación disminuye lentamente.

Luego, al aplicar la prueba de Dickey-Fuller Aumentada, el resultado arrojó un p-value mayor a 0.05, lo cual indica que no podemos rechazar la hipótesis nula, esto confirma que la serie no es estacionaria.

Por esta razón, para trabajar con el modelo es necesario transformar la serie y volverla estacionaria, para ellos se realizarÔ una transformacion logarítimica, el cual busca reducir la variabiliad de los datos. como se muestra en la serie original los picos on muchos mas altos, una vez realizada la transformación se evidenica que las oscilaciones cambian a lo largo de los años.

PUNTO 4; Identificación p, d, q

Analisis: Para identifica el modelo se evidencia que los correlogramas sugieren un ARIMA (2,1,1), esto se identifica a travƩs de el PACF donde posee dos resagos, ademas se muestra una diferencia junto con una media movil.Luego, se utiliza auto.arima para ver a sugerencia que el software me da para identificar el mejor modelo, en ese caso ARIMA(2,1,1)(0,1,0)[12]

# Estacionariedad (a priori, correlograma, Dickey-Fuller)

# test de Dickey Fuller

df <- ur.df(AirPassengers, type = "trend", lags = 1)
summary(df) 

Augmented Dickey-Fuller Test Unit Root Test

Test regression trend

Call: lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)

Residuals: Min 1Q Median 3Q Max -64.98 -20.02 0.50 18.51 85.51

Coefficients: Estimate Std. Error t value Pr(>|t|)
(Intercept) 36.56047 6.53666 5.593 1.15e-07 z.lag.1 -0.41315 0.05399 -7.652 3.08e-12 tt 1.11017 0.15534 7.147 4.69e-11 z.diff.lag 0.52003 0.07380 7.046 7.99e-11 — Signif. codes: 0 ā€˜ā€™ 0.001 ’’ 0.01 ’’ 0.05 ā€˜.’ 0.1 ’ ’ 1

Residual standard error: 27.33 on 138 degrees of freedom Multiple R-squared: 0.363, Adjusted R-squared: 0.3491 F-statistic: 26.21 on 3 and 138 DF, p-value: 1.767e-13

Value of test-statistic is: -7.6523 19.6836 29.279

Critical values for test statistics: 1pct 5pct 10pct tau3 -3.99 -3.43 -3.13 phi2 6.22 4.75 4.07 phi3 8.43 6.49 5.47

dwtest(df@testreg)
Durbin-Watson test

data: DW = 2.0808, p-value = 0.6172 alternative hypothesis: true autocorrelation is greater than 0

# test de correlogramas ACF Y PACF 

par(mfcol = c(1,2))
acf(AirPassengers,)
pacf(AirPassengers)

# Transformación logarítmica para pasar la serie a estacionaria
AirPassengers_log <- log(AirPassengers)

ts_plot(AirPassengers_log, 
        title = "Serie AirPassengers en Logaritmo", 
        Ytitle = "log(pasajeros)", 
        Xtitle = "AƱos")
model_ar <- auto.arima(AirPassengers)
summary(model_ar)

Series: AirPassengers ARIMA(2,1,1)(0,1,0)[12]

Coefficients: ar1 ar2 ma1 0.5960 0.2143 -0.9819 s.e. 0.0888 0.0880 0.0292

sigma^2 = 132.3: log likelihood = -504.92 AIC=1017.85 AICc=1018.17 BIC=1029.35

Training set error measures: ME RMSE MAE MPE MAPE MASE ACF1 Training set 1.3423 10.84619 7.86754 0.420698 2.800458 0.245628 -0.00124847

checkresiduals(model_ar)

Ljung-Box test

data: Residuals from ARIMA(2,1,1)(0,1,0)[12] Q* = 37.784, df = 21, p-value = 0.01366

Model df: 3. Total lags used: 24

# Estimación del Modelo ARIMA

arima_ar2 <- arima(AirPassengers, c(2, 1, 1))

stargazer(arima_ar2, type = "html") 
Dependent variable:
AirPassengers
ar1 1.091***
(0.078)
ar2 -0.489***
(0.074)
ma1 -0.844***
(0.043)
Observations 143
Log Likelihood -685.169
sigma2 844.608
Akaike Inf. Crit. 1,378.338
Note: p<0.1; p<0.05; p<0.01
demanda <- demanda %>% mutate(resid = arima_ar2$residuals, demanda_est = as.numeric(demanda_ob-resid)) %>% select(demanda_ob, demanda_est, fecha) 

ts_plot(demanda, slider = TRUE,
        title = "Demanda de pasajeros grafico normal y estimada",
        Ytitle = "pasajeros",
        Xtitle = "aƱos")
# Mostrar errores, mediante el histograma y jaeque bera

ts_plot(arima_ar2$residuals, slider = TRUE,
        title = "Residuos",
        Ytitle = "",
        Xtitle = "aƱos") 
par(mfcol = c(1,2))
hist(arima_ar2$residuals)
qqnorm(arima_ar2$residuals)
qqline(arima_ar2$residuals, col = "blue")

library(tseries)
jarque.bera.test(arima_ar2$residuals)
Jarque Bera Test

data: arima_ar2$residuals X-squared = 2.2565, df = 2, p-value = 0.3236

# Utilización del auto.arima 

arima_auto <- auto.arima(AirPassengers, trace = T)

ARIMA(2,1,2)(1,1,1)[12] : Inf ARIMA(0,1,0)(0,1,0)[12] : 1031.539 ARIMA(1,1,0)(1,1,0)[12] : 1020.582 ARIMA(0,1,1)(0,1,1)[12] : 1021.192 ARIMA(1,1,0)(0,1,0)[12] : 1020.488 ARIMA(1,1,0)(0,1,1)[12] : 1021.103 ARIMA(1,1,0)(1,1,1)[12] : Inf ARIMA(2,1,0)(0,1,0)[12] : 1022.583 ARIMA(1,1,1)(0,1,0)[12] : 1022.583 ARIMA(0,1,1)(0,1,0)[12] : 1020.733 ARIMA(2,1,1)(0,1,0)[12] : 1018.165 ARIMA(2,1,1)(1,1,0)[12] : 1018.395 ARIMA(2,1,1)(0,1,1)[12] : 1018.84 ARIMA(2,1,1)(1,1,1)[12] : Inf ARIMA(3,1,1)(0,1,0)[12] : 1019.565 ARIMA(2,1,2)(0,1,0)[12] : 1019.771 ARIMA(1,1,2)(0,1,0)[12] : 1024.478 ARIMA(3,1,0)(0,1,0)[12] : 1023.984 ARIMA(3,1,2)(0,1,0)[12] : Inf

Best model: ARIMA(2,1,1)(0,1,0)[12]

htmlreg(arima_auto)
Statistical models
Ā  Model 1
ar1 0.60***
Ā  (0.09)
ar2 0.21*
Ā  (0.09)
ma1 -0.98***
Ā  (0.03)
AIC 1017.85
AICc 1018.17
BIC 1029.35
Log Likelihood -504.92
Num. obs. 131
***p < 0.001; **p < 0.01; *p < 0.05

PUNTO 5, Diagnostico y pronostico de los proximos 5 meses

Analisis: Una vez ajustado el modelo anterior, se muestra un pronostico de 5 meses, donde se presenta una tendencia creciente, dondela demnada de pasajeros en Estados Unidos muestra picos importantes, gracias al consumo en temporadas especificas

demanda <- demanda %>% mutate(resid = arima_auto$residuals, demanda_est = as.numeric(demanda_ob-resid)) %>% select(demanda_ob, demanda_est, fecha)

ts_plot(demanda, slider = TRUE,
        title = "Demanda de pasajeros grafico normal y estimada",
        Ytitle = "pasajeros",
        Xtitle = "aƱos") 
par(mfcol = c(1,2 ))
hist(arima_auto$residuals)
qqnorm(arima_auto$residuals)
qqline(arima_auto$residuals, col = "yellow")

jarque.bera.test(arima_auto$residuals)
Jarque Bera Test

data: arima_auto$residuals X-squared = 15.131, df = 2, p-value = 0.0005181

furval <- forecast(arima_auto, h = 6, level = c(0.95))

par(mfcol = c(1, 1 ))   
plot(furval) 

```