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).
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.
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.
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).
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")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.
plot(y=rstandard(modelo3),x=as.vector(time(psgrt)),xlab='Tiempo',ylab='Residuales estandarizados',type='o')hist(rstandard(modelo3),xlab='Residuales estandarizados')qqnorm(rstandard(modelo2));qqline(rstandard(modelo3),col='red')ggAcf(rstandard(modelo3))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.