En este reporte se exploran los datos provenientes de los aeropuertos nacionales operados por el organismo denominado Aeropuertos y Servicios Auxilares (ASA) en México, correspondientes al año 2015.
El data frame está integrado por seis columnas (variables) y 216 renglones (observaciones) relacionadas con las operaciones mensuales de varios aeropuertos.
Tres de las variables son del tipo carácter y otras tres, del tipo número entero:
ASA_pasajeros2015 <- read.csv("S4_ASA_estadisticasPasajeros.csv", header = TRUE)
names(ASA_pasajeros2015)
## [1] "Anio.mes" "Codigo.IATA"
## [3] "Descripcion" "Estado"
## [5] "Pasajeros.nacionales" "Pasajeros.internacionales"
head(ASA_pasajeros2015)
## Anio.mes Codigo.IATA Descripcion Estado Pasajeros.nacionales
## 1 201501 CEN Ciudad Obregon Sonora 17149
## 2 201501 CLQ Colima Colima 8486
## 3 201501 CME Ciudad del Carmen Campeche 56079
## 4 201501 CPE Campeche Campeche 13264
## 5 201501 CTM Chetumal Quintana Roo 13153
## 6 201501 CVM Ciudad Victoria Tamaulipas 4695
## Pasajeros.internacionales
## 1 721
## 2 124
## 3 3126
## 4 215
## 5 0
## 6 139
str(ASA_pasajeros2015)
## 'data.frame': 216 obs. of 6 variables:
## $ Anio.mes : int 201501 201501 201501 201501 201501 201501 201501 201501 201501 201501 ...
## $ Codigo.IATA : chr "CEN" "CLQ" "CME" "CPE" ...
## $ Descripcion : chr "Ciudad Obregon" "Colima" "Ciudad del Carmen" "Campeche" ...
## $ Estado : chr "Sonora" "Colima" "Campeche" "Campeche" ...
## $ Pasajeros.nacionales : int 17149 8486 56079 13264 13153 4695 1315 1050 6684 5609 ...
## $ Pasajeros.internacionales: int 721 124 3126 215 0 139 386 2684 61 10 ...
dim(ASA_pasajeros2015)
## [1] 216 6
El número total de pasajeros por terminal, que incluye tanto a los nacionales como a los internacionales, muestra gran diversidad, pues la demanda está heterogéneamente distribuida. Así, las cinco terminales aéreas más frecuentadas por los pasajeros son, según el listado de códigos IATA en línea https://www.inm.gob.mx/static/pdf/IATA_ANEXO-2.pdf:
Mientras que los cinco menos frecuentados por los viajeros son, en orden descendente:
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
ASA_pasajeros2015 %>%
group_by(Codigo.IATA) %>%
summarise(
pas_nal = sum(Pasajeros.nacionales),
pas_int = sum(Pasajeros.internacionales),
pas_total = pas_nal + pas_int
) %>%
arrange(desc(pas_total))
## # A tibble: 18 × 4
## Codigo.IATA pas_nal pas_int pas_total
## <chr> <int> <int> <int>
## 1 CME 591154 32000 623154
## 2 PBC 264755 63056 327811
## 3 CEN 238409 7083 245492
## 4 PXM 181706 3624 185330
## 5 CPE 178710 3041 181751
## 6 CTM 179259 118 179377
## 7 CLQ 112656 927 113583
## 8 TPQ 113043 0 113043
## 9 UPN 95635 14432 110067
## 10 MAM 96947 707 97654
## 11 CVM 73491 1665 75156
## 12 NLD 72688 290 72978
## 13 PAZ 60575 0 60575
## 14 LTO 12602 45305 57907
## 15 GYM 12757 4138 16895
## 16 NOG 2622 355 2977
## 17 TCN 2812 0 2812
## 18 TSL 1598 0 1598
De cinco números más la media (Tukey) para las variables cuantitativas, y sólo el conteo de datos de las variables categóricas. Se destaca el hecho de que las temporadas altas desbordadas contrastan con las de baja afluencia, en las que, en ocasiones, no hay ningún pasajero o sólo algunas decenas por mes.
.
summary(ASA_pasajeros2015)
## Anio.mes Codigo.IATA Descripcion Estado
## Min. :201501 Length:216 Length:216 Length:216
## 1st Qu.:201504 Class :character Class :character Class :character
## Median :201507 Mode :character Mode :character Mode :character
## Mean :201507
## 3rd Qu.:201509
## Max. :201512
## Pasajeros.nacionales Pasajeros.internacionales
## Min. : 63 Min. : 0.0
## 1st Qu.: 1198 1st Qu.: 7.0
## Median : 7947 Median : 107.0
## Mean :10608 Mean : 818.2
## 3rd Qu.:14884 3rd Qu.: 584.0
## Max. :56418 Max. :7042.0
Cada una de las terminales tiene un dato registrado por mes en el año indicado:
library(janitor)
##
## Adjuntando el paquete: 'janitor'
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
ASA_pasajeros2015 %>%
tabyl(Codigo.IATA)
## Codigo.IATA n percent
## CEN 12 0.05555556
## CLQ 12 0.05555556
## CME 12 0.05555556
## CPE 12 0.05555556
## CTM 12 0.05555556
## CVM 12 0.05555556
## GYM 12 0.05555556
## LTO 12 0.05555556
## MAM 12 0.05555556
## NLD 12 0.05555556
## NOG 12 0.05555556
## PAZ 12 0.05555556
## PBC 12 0.05555556
## PXM 12 0.05555556
## TCN 12 0.05555556
## TPQ 12 0.05555556
## TSL 12 0.05555556
## UPN 12 0.05555556
library(janitor)
ASA_pasajeros2015 %>%
tabyl(Codigo.IATA) %>%
adorn_totals("row")
## Codigo.IATA n percent
## CEN 12 0.05555556
## CLQ 12 0.05555556
## CME 12 0.05555556
## CPE 12 0.05555556
## CTM 12 0.05555556
## CVM 12 0.05555556
## GYM 12 0.05555556
## LTO 12 0.05555556
## MAM 12 0.05555556
## NLD 12 0.05555556
## NOG 12 0.05555556
## PAZ 12 0.05555556
## PBC 12 0.05555556
## PXM 12 0.05555556
## TCN 12 0.05555556
## TPQ 12 0.05555556
## TSL 12 0.05555556
## UPN 12 0.05555556
## Total 216 1.00000000
library(ggplot2)
ggplot(ASA_pasajeros2015, aes(x=Pasajeros.nacionales)) +
geom_histogram(binwidth=5000, fill="darkgreen",
color="darkred", alpha=0.55)
labs(title = "Histograma de Pasajeros.nacionales",
x = "Núm. pasajeros nacionales por mes", y = "Frecuencia")
## <ggplot2::labels> List of 3
## $ x : chr "Núm. pasajeros nacionales por mes"
## $ y : chr "Frecuencia"
## $ title: chr "Histograma de Pasajeros.nacionales"
Tanto esta distribución de pasajeros nacionales, como la siguiente de los internacionales, muestran un notable sesgo a la cola superior, con el intervalo modal ubicado en algunas centenas de pasajeros mensuales.
## <ggplot2::labels> List of 3
## $ x : chr "Núm. pasajeros nacionales por mes"
## $ y : chr "Frecuencia"
## $ title: chr "Histograma de Pasajeros.internacionales"
Todos los meses muestran un patrón consistente: todos tienen medidas descriptivas resistentes (mediana y cuartiles), pero en todos los meses hay un caso atípico; considero que se trata del mismo aeropuerto
Pasajeros internacionales por aeropuerto.
ggplot(ASA_pasajeros2015, aes(x=Anio.mes, y=Pasajeros.internacionales)) +
geom_line(color ="red", size=1) +
labs(title ="Fluidez de pasajeros internacionales a lo largo de 2015",
x="Fecha", y="Núm. pasajeros")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Pasajeros nacionales vs. internacionales.
ggplot(ASA_pasajeros2015, aes(x=Pasajeros.nacionales, y=Pasajeros.internacionales)) +
geom_point( color ="green", size=2, alpha =0.7) +
labs(title = "Diagrama de dispersión de nacionales vs internacionales", x="Núm. pasajeros nal.", y="Núm. pasajeros intern.")