Llegadas aéreas de pasajeros extranjeros.

Esta serie de tiempo muestra el numero de llegadas internacionales de pasajeros vía aviación comercial regular.

Tiene una periodicidad mensual, la unidad de medida es el número de pasajeros (en miles), los datos considerados van desde enero de 2006 hasta julio de 2018.

Los datos fueron tomados del banco de información del INEGI y la fuente es: SCT. Aeropuertos y Servicios Auxiliares (ASA).

Gráfica y análisis

El primer paso para el análisis de esta serie de tiempo es leer y graficar la base de datos

library(forecast)
library(fpp2)
## Loading required package: ggplot2
## Loading required package: fma
## Loading required package: expsmooth
library(ggplot2)
library(TSA)
## 
## Attaching package: 'TSA'
## The following objects are masked from 'package:stats':
## 
##     acf, arima
## The following object is masked from 'package:utils':
## 
##     tar
library(gridExtra)
base<-read.csv('C:/Users/lugub/Documents/econometria/tareas1,2,4/base2.csv')
colnames(base)<-c("fecha","pasajeros")
#View(base)
pasajeros=base$pasajeros
#View(npsgr)
psgrt<-ts(base$pasajeros,frequency = 12,start=c(2006,12))
plot(psgrt,col="orange",main="Llegada de pasajeros internacionales",ylab="Número de pasajeros en miles",xlab="Date")

Se observa que esta serie presenta un patrón de tendencia con una pendiente positiva ya que se observa un incremento de largo plazo en los datos.

También presenta estacionalidad, esto tiene sentido ya que la mayor afluencia de visitantes extranjeros que llegan al país es durante las vacaciones.

Estacionalidad

ggseasonplot(psgrt)

De esta grafica se observa que la serie de tiempo presenta estacionalidad, con escepción del año 2010, en el que el mes de abril se comporta diferente.

ggseasonplot(psgrt,polar = TRUE)

Lo mismo se observa al tomar las coordenadas polares.

monthplot(psgrt)

En todos las gráficas se observa estacionalidad de la serie de tiempo. Esta grafica nos indica que el numero de pasajeros extranjeros aumenta durante los periodos vacacionales.

Descomposición de series de tiempo

Medias móviles

MM1<-autoplot(psgrt,series="pasajeros")+autolayer(ma(psgrt,3,centre=FALSE),series="3-MA")+xlab("Date")+ylab("Número de pasajeros")+ggtitle("Llegada pasajeros internacionales")

MM2<-autoplot(psgrt,series="pasajeros")+autolayer(ma(psgrt,5,centre=FALSE),series="5-MA")+xlab("Date")+ylab("Número de pasajeros")+ggtitle("Llegada pasajeros internacionales")

MM3<-autoplot(psgrt,series="pasajeros")+autolayer(ma(psgrt,7,centre=FALSE),series="7-MA")+xlab("Date")+ylab("Número de pasajeros")+ggtitle("Llegada pasajeros internacionales")

MM4<-autoplot(psgrt,series="pasajeros")+autolayer(ma(psgrt,9,centre=FALSE),series="9-MA")+xlab("Date")+ylab("Número de pasajeros")+ggtitle("Llegada pasajeros internacionales")

grid.arrange(MM1,MM2,MM3,MM4)
## Warning: Removed 2 rows containing missing values (geom_path).
## Warning: Removed 4 rows containing missing values (geom_path).
## Warning: Removed 6 rows containing missing values (geom_path).
## Warning: Removed 8 rows containing missing values (geom_path).

Descomposición clásica

Debido a que no es una serie económica el modelo aditivo es el más apropiado.

fit<-decompose(psgrt,type="additive")
autoplot(fit)

Del gráfico anterior se muestra que existe evidencia de estacionalidad.

El gráfico de la serie original y serie desestacionalizada es el siguiente:

autoplot(psgrt,series="base")+autolayer(seasadj(fit),series="Seasonally  adj.  data")+xlab("Date")+ylab("Número de pasajeros (en miles)")+ggtitle("Llegada de pasajeros internacionales")

Tendencias

Métodos de regresión - Tendencias lineales y cuadráticas

mes.<-season(psgrt)
modelo1<-lm(pasajeros~mes.)
summary(modelo1)
## 
## Call:
## lm(formula = pasajeros ~ mes.)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -781.53 -253.87  -60.89  275.63  814.66 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    1443.12     121.28  11.900   <2e-16 ***
## mes.February    -38.70     171.51  -0.226   0.8219    
## mes.March        62.19     171.51   0.363   0.7176    
## mes.April      -138.36     171.51  -0.807   0.4217    
## mes.May        -134.86     171.51  -0.786   0.4335    
## mes.June         -3.62     171.51  -0.021   0.9832    
## mes.July         54.30     171.51   0.317   0.7522    
## mes.August     -266.89     176.21  -1.515   0.1329    
## mes.September  -422.75     176.21  -2.399   0.0182 *  
## mes.October    -250.88     176.21  -1.424   0.1575    
## mes.November    -36.85     176.21  -0.209   0.8348    
## mes.December    101.70     171.51   0.593   0.5545    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 383.5 on 104 degrees of freedom
## Multiple R-squared:  0.1436, Adjusted R-squared:  0.05305 
## F-statistic: 1.586 on 11 and 104 DF,  p-value: 0.1137
autoplot(psgrt)+geom_smooth(method="lm",se=FALSE)

mes2.<-season(psgrt)
modelo2<-lm(psgrt~time(psgrt)+mes2.)
summary(modelo2)
## 
## Call:
## lm(formula = psgrt ~ time(psgrt) + mes2.)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -603.53  -81.03  -13.02   92.36  292.63 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    -2.373e+05  1.070e+04 -22.174  < 2e-16 ***
## time(psgrt)     1.187e+02  5.319e+00  22.310  < 2e-16 ***
## mes2.February  -4.859e+01  7.136e+01  -0.681 0.497516    
## mes2.March      4.241e+01  7.137e+01   0.594 0.553626    
## mes2.April     -1.680e+02  7.138e+01  -2.354 0.020463 *  
## mes2.May       -1.744e+02  7.139e+01  -2.443 0.016256 *  
## mes2.June      -5.306e+01  7.140e+01  -0.743 0.459038    
## mes2.July      -5.029e+00  7.141e+01  -0.070 0.943994    
## mes2.August    -2.768e+02  7.332e+01  -3.775 0.000268 ***
## mes2.September -4.425e+02  7.332e+01  -6.035 2.53e-08 ***
## mes2.October   -2.805e+02  7.333e+01  -3.826 0.000224 ***
## mes2.November  -7.640e+01  7.334e+01  -1.042 0.299954    
## mes2.December   1.116e+02  7.136e+01   1.564 0.120968    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 159.6 on 103 degrees of freedom
## Multiple R-squared:  0.8532, Adjusted R-squared:  0.8361 
## F-statistic: 49.87 on 12 and 103 DF,  p-value: < 2.2e-16
autoplot(psgrt)+geom_smooth(method = "lm", se=FALSE)

mes3.<-season(psgrt)
modelo3<-lm(psgrt~time(psgrt)+I(time(psgrt)^2)+mes3.)
summary(modelo3)
## 
## Call:
## lm(formula = psgrt ~ time(psgrt) + I(time(psgrt)^2) + mes3.)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -530.87  -71.20   12.19   91.82  276.71 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       4.777e+07  7.289e+06   6.553 2.33e-09 ***
## time(psgrt)      -4.761e+04  7.247e+03  -6.570 2.16e-09 ***
## I(time(psgrt)^2)  1.186e+01  1.801e+00   6.586 2.00e-09 ***
## mes3.February    -4.826e+01  6.007e+01  -0.803  0.42364    
## mes3.March        4.291e+01  6.007e+01   0.714  0.47670    
## mes3.April       -1.675e+02  6.008e+01  -2.789  0.00632 ** 
## mes3.May         -1.741e+02  6.009e+01  -2.897  0.00461 ** 
## mes3.June        -5.306e+01  6.010e+01  -0.883  0.37933    
## mes3.July        -5.523e+00  6.011e+01  -0.092  0.92697    
## mes3.August      -2.577e+02  6.178e+01  -4.171 6.39e-05 ***
## mes3.September   -4.233e+02  6.179e+01  -6.850 5.70e-10 ***
## mes3.October     -2.613e+02  6.179e+01  -4.228 5.15e-05 ***
## mes3.November    -5.729e+01  6.180e+01  -0.927  0.35610    
## mes3.December     1.111e+02  6.007e+01   1.849  0.06729 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 134.3 on 102 degrees of freedom
## Multiple R-squared:  0.897,  Adjusted R-squared:  0.8838 
## F-statistic: 68.31 on 13 and 102 DF,  p-value: < 2.2e-16
autoplot(psgrt)+geom_smooth()
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

Con el modelo 3 se puede observar que la \(R^2\) es 89.7% por lo que es conveniente utilizar este modelo para estudiar los residuales de la serie.

Análisis residual

Gráfica en el tiempo

plot(y=rstandard(modelo3),x=as.vector(time(psgrt)),xlab='Tiempo',ylab='Residuales  estandarizados',type='o')

Histograma

hist(rstandard(modelo3),xlab='Residuales  estandarizados')

Gráfico cuantil - cuantil

qqnorm(rstandard(modelo2));qqline(rstandard(modelo3),col='red')

Función de autocorrelación

ggAcf(rstandard(modelo3))

Shapiro-Wilk test

shapiro.test(rstandard(modelo3))
## 
##  Shapiro-Wilk normality test
## 
## data:  rstandard(modelo3)
## W = 0.96705, p-value = 0.005925

Esta prueba nos indica que se rechaza la hipótesis nula ya que el p-value es menor a 0.05.