Introducción

Este reporte presenta un análisis descriptivo de los pasajeros nacionales e internacionales por estado y mes. Se incluyen tablas de frecuencias, estadísticas descriptivas y gráficos

Definiendo el directorio de trabajo y leyendo el archivo en formato CSV
setwd("~/Curso R Octubre 2025")
archivo<-read.csv("S4_ASA_estadisticasPasajeros.csv",header=TRUE,sep=",")
Los paquetes que se usarán.
library(dplyr)
## 
## 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
library(janitor)
## 
## Adjuntando el paquete: 'janitor'
## The following objects are masked from 'package:stats':
## 
##     chisq.test, fisher.test
library(ggplot2)
Viendo la estructura del archivo
str(archivo)
## '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 ...
Exploramos las variables categóricas con frecuencias absolutas y relativas
archivo %>%
  tabyl(Anio.mes) %>%
  adorn_totals("row") %>%
  adorn_pct_formatting(digits = 2)
##  Anio.mes   n percent
##    201501  18   8.33%
##    201502  18   8.33%
##    201503  18   8.33%
##    201504  18   8.33%
##    201505  18   8.33%
##    201506  18   8.33%
##    201507  18   8.33%
##    201508  18   8.33%
##    201509  18   8.33%
##    201510  18   8.33%
##    201511  18   8.33%
##    201512  18   8.33%
##     Total 216 100.00%
archivo %>%
  tabyl(Codigo.IATA) %>%
  adorn_totals("row") %>%
  adorn_pct_formatting(digits = 2)
##  Codigo.IATA   n percent
##          CEN  12   5.56%
##          CLQ  12   5.56%
##          CME  12   5.56%
##          CPE  12   5.56%
##          CTM  12   5.56%
##          CVM  12   5.56%
##          GYM  12   5.56%
##          LTO  12   5.56%
##          MAM  12   5.56%
##          NLD  12   5.56%
##          NOG  12   5.56%
##          PAZ  12   5.56%
##          PBC  12   5.56%
##          PXM  12   5.56%
##          TCN  12   5.56%
##          TPQ  12   5.56%
##          TSL  12   5.56%
##          UPN  12   5.56%
##        Total 216 100.00%
archivo %>%
  tabyl(Descripcion) %>%
  adorn_totals("row") %>%
  adorn_pct_formatting(digits = 2)
##        Descripcion   n percent
##           Campeche  12   5.56%
##           Chetumal  12   5.56%
##     Ciudad Obregon  12   5.56%
##    Ciudad Victoria  12   5.56%
##  Ciudad del Carmen  12   5.56%
##             Colima  12   5.56%
##            Guaymas  12   5.56%
##             Loreto  12   5.56%
##          Matamoros  12   5.56%
##            Nogales  12   5.56%
##       Nuevo Laredo  12   5.56%
##          Poza Rica  12   5.56%
##             Puebla  12   5.56%
##   Puerto Escondido  12   5.56%
##             Tamuin  12   5.56%
##           Tehuacan  12   5.56%
##              Tepic  12   5.56%
##            Uruapan  12   5.56%
##              Total 216 100.00%
archivo %>%
  tabyl(Estado) %>%
  adorn_totals("row") %>%
  adorn_pct_formatting(digits = 2)
##                Estado   n percent
##  Baja California  Sur  12   5.56%
##              Campeche  24  11.11%
##                Colima  12   5.56%
##             Michoacan  12   5.56%
##               Nayarit  12   5.56%
##                Oaxaca  12   5.56%
##                Puebla  24  11.11%
##          Quintana Roo  12   5.56%
##       San Luis Potosi  12   5.56%
##                Sonora  36  16.67%
##            Tamaulipas  36  16.67%
##              Veracruz  12   5.56%
##                 Total 216 100.00%
Veremos ahora los valores descriptivos de las variables cuantitativas
tabla_cuant <- archivo %>%
  summarise(
    Variable = "Pasajeros.nacionales",
    n = sum(!is.na(Pasajeros.nacionales)),
    min = min(Pasajeros.nacionales, na.rm = TRUE),
    q1 = quantile(Pasajeros.nacionales, 0.25, na.rm = TRUE),
    mediana = median(Pasajeros.nacionales, na.rm = TRUE),
    media = mean(Pasajeros.nacionales, na.rm = TRUE),
    q3 = quantile(Pasajeros.nacionales, 0.75, na.rm = TRUE),
    max = max(Pasajeros.nacionales, na.rm = TRUE),
    sd = sd(Pasajeros.nacionales, na.rm = TRUE)
  ) %>%
  bind_rows(
    archivo %>%
      summarise(
        Variable = "Pasajeros.internacionales",
        n = sum(!is.na(Pasajeros.internacionales)),
        min = min(Pasajeros.internacionales, na.rm = TRUE),
        q1 = quantile(Pasajeros.internacionales, 0.25, na.rm = TRUE),
        mediana = median(Pasajeros.internacionales, na.rm = TRUE),
        media = mean(Pasajeros.internacionales, na.rm = TRUE),
        q3 = quantile(Pasajeros.internacionales, 0.75, na.rm = TRUE),
        max = max(Pasajeros.internacionales, na.rm = TRUE),
        sd = sd(Pasajeros.internacionales, na.rm = TRUE)
      )
  )

tabla_cuant
##                    Variable   n min     q1 mediana      media       q3   max
## 1      Pasajeros.nacionales 216  63 1198.5    7947 10608.4213 14883.75 56418
## 2 Pasajeros.internacionales 216   0    7.0     107   818.2454   584.00  7042
##          sd
## 1 11609.621
## 2  1522.768

A partir de la exploración anterior se puede observar que se trata de una base de datos con 216 casos y 8 variables y corresponde a datos de 18 aeropuertos ubicados en 12 entidades mexicanas, observadas en los 12 meses de 2015. Cada caso (aeropuerto-mes) contiene la información del número total de pasajeros nacionales e internacionales. Los datos cuantitativos nos indican volumenes muy diferentes de pasajeros manejados, en el caso de los nacionales oscilan entre 63 y 56,418 pasajeros por mes; en el caso de pasajeros internacionales algunos aeropuertos no manejean esta categoría pues los datos indican un mínimo de cero. El volumen de pasajeros internacionales es inferior al de los nacionales ya que se tiene un número máximo de 7,042.

A continuación se presentan dos histogramas, uno del número de pasajeros nacionales y el otro para el caso de los internacionales
# Histograma de pasajeros nacionales
ggplot(archivo, aes(x = Pasajeros.nacionales)) +
  geom_histogram(bins = 5, fill = "steelblue", color = "white") +
  theme_minimal() +
  labs(
    title = "Distribución de pasajeros nacionales",
    x = "Pasajeros nacionales",
    y = "Frecuencia"
  )

ggplot(archivo, aes(x = Pasajeros.internacionales)) +
  geom_histogram(bins = 5, fill = "darkorange", color = "white") +
  theme_minimal() +
  labs(
    title = "Distribución de pasajeros internacionales",
    x = "Pasajeros internacionales",
    y = "Frecuencia"
  )

####### Observamos que sólo algunos aeropuertos manejan una cantidad grande de pasajeros tanoto nacionales como internacionales.

Realizaremos una gráfica de barras con el total de pasajeros por Entidad
total_estado <- archivo %>%
  group_by(Estado) %>%
  summarise(
    Total_pasajeros = sum(Pasajeros.nacionales + Pasajeros.internacionales, na.rm = TRUE)
  ) %>%
  arrange(desc(Total_pasajeros))

# Gráfico de barras
ggplot(total_estado, aes(x = reorder(Estado, Total_pasajeros), y = Total_pasajeros)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  theme_minimal() +
  labs(
    title = "Total de pasajeros por Entidad",
    x = "Entidad",
    y = "Número total de pasajeros"
  )

De los doce estados considerados en el análisis Campeche es el que manejo más pasajeros durante 2015 y San Luis Potosí el que menos.

Gráfica de cajas con datos de pasajeros por mes, primero etiquetamos los meses, calculamos el total de pasajeros y graficamos
library(lubridate)
## 
## Adjuntando el paquete: 'lubridate'
## The following objects are masked from 'package:base':
## 
##     date, intersect, setdiff, union
archivo <- archivo %>%
  mutate(
    Fecha = ymd(paste0(Anio.mes, "01")),   # agrega día 01
    Mes = month(Fecha, label = TRUE, abbr = TRUE) # etiquetas cortas: Ene, Feb, Mar...
  )


pasajeros_mes <- archivo %>%
  group_by(Mes, Descripcion) %>%
  summarise(
    Total = sum(Pasajeros.nacionales + Pasajeros.internacionales, na.rm = TRUE)
  )
## `summarise()` has grouped output by 'Mes'. You can override using the `.groups`
## argument.
ggplot(pasajeros_mes, aes(x = Mes, y = Total)) +
  geom_boxplot(fill = "skyblue", color = "gray40") +
  theme_minimal() +
  labs(
    title = "Dispersión del total de pasajeros por mes",
    x = "Mes",
    y = "Total de pasajeros"
  )

No se observa un mes especial donde se dispare el número de pasajeros en los aeropuertos analizados, notamos que en cada mes, hay al menos un aeropuerto que tiene valores más grande que el resto. Analizando los datos nos percatamos que corresponde al aeropuerto de Ciudad del Carmen.

Gráfica de Pasajeros por estado.
# Calcular el total de pasajeros por aeropuerto y estado
pasajeros_Estado <- archivo %>%
  group_by(Estado, Codigo.IATA) %>%
  summarise(
    Total = sum(Pasajeros.nacionales + Pasajeros.internacionales, na.rm = TRUE)
  )
## `summarise()` has grouped output by 'Estado'. You can override using the
## `.groups` argument.
# Crear boxplot
ggplot(pasajeros_Estado, aes(x = Estado, y = Total)) +
  geom_boxplot(fill = "skyblue", color = "gray40") +
  theme_minimal() +
  labs(
    title = "Dispersión del total de pasajeros por estado",
    x = "Entidad",
    y = "Total de pasajeros"
  )

La gráfica muestra que los valores más altos de pasajeros corresponden a Campeche y por lo que vimos en el punto anterior se refiere en particular al aeropuerto Ciudad del Carmen.

Relación entre número de pasajeros nacionales e internacionales por entidad
ggplot(archivo, aes(x = Pasajeros.nacionales, y = Pasajeros.internacionales, color = Estado)) +
  geom_point(alpha = 0.7, size = 3) +
  theme_minimal() +
  labs(
    title = "Relación entre pasajeros nacionales e internacionales",
    x = "Pasajeros nacionales",
    y = "Pasajeros internacionales"
  ) +
  theme(legend.position = "bottom")

Se puede observar que no hay relación lineal entre ambas variables, pero se observa que del total de pasajeros la mayoría son del tipo nacional y que hay varios aeropuertos que tuvieron en algunos meses un número muy bajo de pasajeros internacioanles, y en sentido contrario el estado de Baja California Sur y Sonora tuvieron principalmente pasajeros internacionales.