Carga y visualización del data frame

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:

Variables con formato alfanumérico:

  • Codigo.IATA
  • Descripcion
  • Estado

Variables con formato numérico (enteros):

  • Anio.mes
  • Pasajeros.nacionales
  • Pasajeros.internacionales
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

Resúmenes numéricos de cada variable numérica

Número total de pasajeros por aeropuerto

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:

  1. Ciudad del Carmen
  2. Puebla
  3. Cd. Obregón
  4. Puerto Escondido
  5. Campeche

Mientras que los cinco menos frecuentados por los viajeros son, en orden descendente:

  1. Loreto, BCS
  2. Guaymas
  3. Nogales
  4. Tehuacán
  5. Tamuín, SLP
## 
## 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

Resúmenes numéricos

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

Tablas elaboradas con las variables categóricas

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

Gráficos descriptivos

Un histograma de pasajeros nacionales

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.

Un histograma de pasajeros internacionales

## <ggplot2::labels> List of 3
##  $ x    : chr "Núm. pasajeros nacionales por mes"
##  $ y    : chr "Frecuencia"
##  $ title: chr "Histograma de Pasajeros.internacionales"

Gráfico de barras con el total de pasajeros por estado

Gráfico de cajas con la distribución mensual de pasajeros

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

Un gráfico que relacione una variable numérica y una categórica

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.

Un gráfico que relacione dos variables numéricas

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.")