library(janitor) # Herramientas para limpiar y organizar datos
##
## Adjuntando el paquete: 'janitor'
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
library(tidyverse) # Conjunto de paquetes para manipulacion y visualizacion de datos
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.1 ✔ stringr 1.5.2
## ✔ ggplot2 4.0.0 ✔ tibble 3.3.0
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ purrr 1.1.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(lubridate) # Herramientas para trabajar con fechas y horas
library(graphics) # Representacion grafica de datos
# Establecer directorio de trabajo
setwd("C:/OSCAR/RESPALDO CESAR/OSCAR/CURSOS/R DGTIC OCT 2025/Ej3")
getwd()
## [1] "C:/OSCAR/RESPALDO CESAR/OSCAR/CURSOS/R DGTIC OCT 2025/Ej3"
# Importacion de datos. Se hace la codificación UTF-8 y el formato recomendado para los nombres de las variables
pasajeros <- read.csv("C:/OSCAR/RESPALDO CESAR/OSCAR/CURSOS/R DGTIC OCT 2025/Ej3/S5_ASA_estadisticasPasajeros.csv", header=TRUE, sep=",", encoding = "UTF-8")
pasajeros <- clean_names(pasajeros)
# Una vez que se corrigen los nombres de las variables se verifica los nombres asignados
names(pasajeros)
## [1] "anio_mes" "codigo_iata"
## [3] "descripcion" "estado"
## [5] "pasajeros_nacionales" "pasajeros_internacionales"
# Se revisa la estructura de los datos
str(pasajeros)
## '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(pasajeros)
## [1] 216 6
# Se tiene una base de datos con 216 filas y 6 columnas
# Con head corroboramos que los tipos de variables definidos con str son correctos
head(pasajeros)
## 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
# Para detectar si hay duplicados
datos_unicos <- distinct(pasajeros)
Se puede observar que tenemos 216 filas y 6 variables. Los nombres originales han sido modificados de acuerdo a los estándares de programación recomendadas en R. Se tiene que la variable anio_mes, pasajeros_nacionales y pasajeros_internacionales son de tipo numérico mientras que codigo_iata, descripcion y estado son variables tipo cadena. No se observaron duplicados.
Caracterizacion del comportamiento general de los datos. Estadisticas básicas globales
Se presentan las estadÃsticas básicas para el número total de pasajeros nacionales e internacionales asà como desagregadas por mes.
summary(pasajeros$pasajeros_nacionales)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 63 1198 7947 10608 14884 56418
summary(pasajeros$pasajeros_internacionales)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0 7.0 107.0 818.2 584.0 7042.0
# Estadisticas basicas de pasajeros por mes
pasajeros %>%
group_by(anio_mes) %>%
summarise(
pas_nal_media = mean(pasajeros_nacionales),
pas_nal_min = min(pasajeros_nacionales),
pas_nal_max = max(pasajeros_nacionales),
pas_inter_media = mean(pasajeros_internacionales),
pas_inter_min = min(pasajeros_internacionales),
pas_inter_max = max(pasajeros_internacionales),
) %>%
arrange(anio_mes)
## # A tibble: 12 × 7
## anio_mes pas_nal_media pas_nal_min pas_nal_max pas_inter_media pas_inter_min
## <int> <dbl> <int> <int> <dbl> <int>
## 1 201501 10355. 108 56079 779. 0
## 2 201502 8970. 204 48255 759. 0
## 3 201503 10647. 172 50333 880. 0
## 4 201504 10251. 89 47173 863. 0
## 5 201505 10268. 158 49967 853. 0
## 6 201506 10243. 89 48395 771. 0
## 7 201507 11606. 162 50061 795. 0
## 8 201508 10885. 131 44891 843. 0
## 9 201509 9636. 98 44283 679. 0
## 10 201510 10681. 63 48342 822. 0
## 11 201511 11207. 91 46957 890. 0
## 12 201512 12552. 135 56418 886. 0
## # ℹ 1 more variable: pas_inter_max <int>
El promedio global para pajajeros nacionales es de 7,947 y para pasajeros internacionales es de 107.
Considerando los meses, en pasajeros nacionales se tiene que en octubre del 2015 se presentó el número mÃnimo de pasajeros transportados (63), mientras que el máximo se presenta en diciembre con 56,418 pasajeros. Esta diferencia tan grande puede suponerse a que en el mes de diciembre las personas suelen trasladarse a pasar las fiestas decembrinas con sus familiares.
Para pasajeros internacionales el mÃnimo global y por mes es cero, esto es, hay aeropuertos que no presentan vuelos internacionales con pasajeros transportados. El número máximo de pasajeros internacionales transportados corresponde al mes de agosto.
A continuación se presentan estas mismas estadÃsticas básicas en un concentrado de estado y aeropuertos.
# Estadisticas basicas de pasajeros por estado y codigo de aeropuerto
pasajeros %>%
group_by(estado, codigo_iata) %>%
summarise(
pas_nal_media = mean(pasajeros_nacionales),
pas_nal_min = min(pasajeros_nacionales),
pas_nal_max = max(pasajeros_nacionales),
pas_inter_media = mean(pasajeros_internacionales),
pas_inter_min = min(pasajeros_internacionales),
pas_inter_max = max(pasajeros_internacionales),
) %>%
arrange(estado)
## `summarise()` has grouped output by 'estado'. You can override using the
## `.groups` argument.
## # A tibble: 18 × 8
## # Groups: estado [12]
## estado codigo_iata pas_nal_media pas_nal_min pas_nal_max pas_inter_media
## <chr> <chr> <dbl> <int> <int> <dbl>
## 1 Baja Calif… LTO 1050. 651 1708 3775.
## 2 Campeche CME 49263. 44283 56418 2667.
## 3 Campeche CPE 14892. 12797 16645 253.
## 4 Colima CLQ 9388 7267 12295 77.2
## 5 Michoacan UPN 7970. 5581 10370 1203.
## 6 Nayarit TPQ 9420. 7062 14143 0
## 7 Oaxaca PXM 15142. 11025 21871 302
## 8 Puebla PBC 22063. 16316 26609 5255.
## 9 Puebla TCN 234. 153 337 0
## 10 Quintana R… CTM 14938. 11110 18830 9.83
## 11 San Luis P… TSL 133. 63 205 0
## 12 Sonora CEN 19867. 15430 24333 590.
## 13 Sonora GYM 1063. 772 1322 345.
## 14 Sonora NOG 218. 98 342 29.6
## 15 Tamaulipas CVM 6124. 4695 8116 139.
## 16 Tamaulipas MAM 8079. 6443 9845 58.9
## 17 Tamaulipas NLD 6057. 5221 7499 24.2
## 18 Veracruz PAZ 5048. 4276 5756 0
## # ℹ 2 more variables: pas_inter_min <int>, pas_inter_max <int>
El aeropuerto que transporta menos pasajeros nacionales está identificado como TSL en San Luis Potosà con 63 pasajeros. El aeropuerto con más movilidad de pasajeros está en Campeche (CME) con 56,148 y . En el caso de los pasajeros internacionales, varios aeropuertos presentan nula movilidad, estos aeropuertos se encuentran en los estados de Nayarit (TPQ), Puebla (TCN), San Luis Potosà (TSL) y Veracruz (PAZ).
Como se mencionó anteriormente, el aeropuerto de Campeche (CME) es que transporta más pasajeros nacionales con 56,418, le sigue el estado de Puebla (PBC) con 26,609 pasajeros. En el caso de los pasajeros nacionales, Puebla (PBC) tiene el máximo con 7,042 pasajeros.
En las siguientes tablas veremos la participación porcentual del total de pasajeros de los aeropuertos y estados para una mejor identificación.
# Participacion porcentual de cada aeropuerto para pasajeros nacionales en el total global
pasajeros %>%
group_by(codigo_iata) %>%
summarise(
total_nal = sum(pasajeros_nacionales)
) %>%
mutate(
porcentaje_nal = round(100 * total_nal / sum(total_nal), 2)
) %>%
arrange(desc(porcentaje_nal))
## # A tibble: 18 × 3
## codigo_iata total_nal porcentaje_nal
## <chr> <int> <dbl>
## 1 CME 591154 25.8
## 2 PBC 264755 11.6
## 3 CEN 238409 10.4
## 4 PXM 181706 7.93
## 5 CTM 179259 7.82
## 6 CPE 178710 7.8
## 7 TPQ 113043 4.93
## 8 CLQ 112656 4.92
## 9 MAM 96947 4.23
## 10 UPN 95635 4.17
## 11 CVM 73491 3.21
## 12 NLD 72688 3.17
## 13 PAZ 60575 2.64
## 14 GYM 12757 0.56
## 15 LTO 12602 0.55
## 16 TCN 2812 0.12
## 17 NOG 2622 0.11
## 18 TSL 1598 0.07
# Participacion porcentual de cada aeropuerto para pasajeros internacionales en el total global
pasajeros %>%
group_by(codigo_iata) %>%
summarise(
total_inter = sum(pasajeros_internacionales)
) %>%
mutate(
porcentaje_inter = round(100 * total_inter / sum(total_inter), 2)
) %>%
arrange(desc(porcentaje_inter))
## # A tibble: 18 × 3
## codigo_iata total_inter porcentaje_inter
## <chr> <int> <dbl>
## 1 PBC 63056 35.7
## 2 LTO 45305 25.6
## 3 CME 32000 18.1
## 4 UPN 14432 8.17
## 5 CEN 7083 4.01
## 6 GYM 4138 2.34
## 7 PXM 3624 2.05
## 8 CPE 3041 1.72
## 9 CVM 1665 0.94
## 10 CLQ 927 0.52
## 11 MAM 707 0.4
## 12 NOG 355 0.2
## 13 NLD 290 0.16
## 14 CTM 118 0.07
## 15 PAZ 0 0
## 16 TCN 0 0
## 17 TPQ 0 0
## 18 TSL 0 0
# Crea una tabla de frecuencias para la variable estados y su frecuencia relativa
pasajeros %>%
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%
Los estados de Sonora y Tamaulipas son los que más aportan con 3 aeropuertos cada uno. Campeche y Puebla, que son los estados que presentan mayor número de pasajeros, cuentan con dos aeropuertos en cada entidad.
# Grafico de densidad de pasajeros nacionales
ggplot(pasajeros, aes(x=pasajeros_nacionales)) +
geom_density(binwidth=5, fill="blue",
color="black", alpha=0.7) +
labs(title="Densidad de pasajeros nacionales", x="Número de pasajeros", y="Frecuencia")
## Warning in geom_density(binwidth = 5, fill = "blue", color = "black", alpha =
## 0.7): Ignoring unknown parameters: `binwidth`
# Grafico de densidad de pasajeros internacionales
ggplot(pasajeros, aes(x=pasajeros_internacionales)) +
geom_density(binwidth=5, fill="blue",
color="black", alpha=0.7) +
labs(title="Densidad de pasajeros internacionales", x="Número de pasajeros", y="Frecuencia")
## Warning in geom_density(binwidth = 5, fill = "blue", color = "black", alpha =
## 0.7): Ignoring unknown parameters: `binwidth`
En la gráfica para pasajeros nacionales podemos observar que la mayor parte del total de pasajeros es menor de 25,000 y como se ha analizado muy pocos aeropuertos presentan cantidades mayores a 40 mil pasajeros. En el caso de los pasajeros internacionales, la mayor concentración de pasajeros se encuentra en menos de 2,000 pasajeros.
A continuación se presentan las gráficas de barras del total de pasajeros, tanto por estado como por aeropuerto.
# Para la gráfica de barras por el total de pasajeros por estado y por aeropuerto
# se hace la suma total
# Suma el numero de pasajeros nacionales por estado
sum_pas_nal_edo <- pasajeros %>%
group_by(estado) %>%
summarise(
suma_nal_edo = sum(pasajeros_nacionales, na.rm = TRUE)
) %>%
arrange(estado)
print(sum_pas_nal_edo)
## # A tibble: 12 × 2
## estado suma_nal_edo
## <chr> <int>
## 1 Baja California Sur 12602
## 2 Campeche 769864
## 3 Colima 112656
## 4 Michoacan 95635
## 5 Nayarit 113043
## 6 Oaxaca 181706
## 7 Puebla 267567
## 8 Quintana Roo 179259
## 9 San Luis Potosi 1598
## 10 Sonora 253788
## 11 Tamaulipas 243126
## 12 Veracruz 60575
# Grafica de barras de totales de pasajeros nacionales por estado
ggplot(sum_pas_nal_edo, aes(x = estado, y = suma_nal_edo)) +
geom_bar(stat = "identity", fill="green", color="black", alpha
=0.7) +
labs(title="Grafico de barras de pasajeros nacionales"
, x="Estado", y="Total")
# Suma el numero de pasajeros nacionales por aeropuerto
sum_pas_nal_iata <- pasajeros %>%
group_by(codigo_iata) %>%
summarise(
suma_nal_iata = sum(pasajeros_nacionales, na.rm = TRUE)
) %>%
arrange(codigo_iata)
print(sum_pas_nal_iata)
## # A tibble: 18 × 2
## codigo_iata suma_nal_iata
## <chr> <int>
## 1 CEN 238409
## 2 CLQ 112656
## 3 CME 591154
## 4 CPE 178710
## 5 CTM 179259
## 6 CVM 73491
## 7 GYM 12757
## 8 LTO 12602
## 9 MAM 96947
## 10 NLD 72688
## 11 NOG 2622
## 12 PAZ 60575
## 13 PBC 264755
## 14 PXM 181706
## 15 TCN 2812
## 16 TPQ 113043
## 17 TSL 1598
## 18 UPN 95635
# Grafica de barras de totales de pasajeros nacionales por aeropuerto
ggplot(sum_pas_nal_iata, aes(x = codigo_iata, y = suma_nal_iata)) +
geom_bar(stat = "identity", fill="green", color="black", alpha
=0.7) +
labs(title="Grafico de barras de pasajeros nacionales"
, x="Aeropuerto IATA", y="Total")
COn la gráfica de barras por estado podemos confirmar que Campeche ocupa por mucho, el primer lugar en la transportación de pasajeros nacionales, le sigue Puebla, Sonora y Tamaulipas.
# Suma el numero de pasajeros internacionales por estado
sum_pas_inter_edo <- pasajeros %>%
group_by(estado) %>%
summarise(
suma_inter_edo = sum(pasajeros_internacionales, na.rm = TRUE)
) %>%
arrange(estado)
print(sum_pas_inter_edo)
## # A tibble: 12 × 2
## estado suma_inter_edo
## <chr> <int>
## 1 Baja California Sur 45305
## 2 Campeche 35041
## 3 Colima 927
## 4 Michoacan 14432
## 5 Nayarit 0
## 6 Oaxaca 3624
## 7 Puebla 63056
## 8 Quintana Roo 118
## 9 San Luis Potosi 0
## 10 Sonora 11576
## 11 Tamaulipas 2662
## 12 Veracruz 0
# Grafica de barras de totales de pasajeros internacionales por estado
ggplot(sum_pas_inter_edo, aes(x = estado, y = suma_inter_edo)) +
geom_bar(stat = "identity", fill="green", color="black", alpha
=0.7) +
labs(title="Grafico de barras de pasajeros internacionales"
, x="Estado", y="Total")
# Suma el numero de pasajeros internacionales por aeropuerto
sum_pas_inter_iata <- pasajeros %>%
group_by(codigo_iata) %>%
summarise(
suma_inter_iata = sum(pasajeros_internacionales, na.rm = TRUE)
) %>%
arrange(codigo_iata)
print(sum_pas_inter_iata)
## # A tibble: 18 × 2
## codigo_iata suma_inter_iata
## <chr> <int>
## 1 CEN 7083
## 2 CLQ 927
## 3 CME 32000
## 4 CPE 3041
## 5 CTM 118
## 6 CVM 1665
## 7 GYM 4138
## 8 LTO 45305
## 9 MAM 707
## 10 NLD 290
## 11 NOG 355
## 12 PAZ 0
## 13 PBC 63056
## 14 PXM 3624
## 15 TCN 0
## 16 TPQ 0
## 17 TSL 0
## 18 UPN 14432
# Grafica de barras de totales de pasajeros nacionales por aeropuerto
ggplot(sum_pas_inter_iata, aes(x = codigo_iata, y = suma_inter_iata)) +
geom_bar(stat = "identity", fill="green", color="black", alpha
=0.7) +
labs(title="Grafico de barras de pasajeros internacionales"
, x="Aeropuerto IATA", y="Total")
En la gráfica correspondiente a pasajeros internacionales por estado y aeropuerto, Puebla (PBC) ocupa la primera posición seguido por Baja California Sur (LTO).
# Graficos de boxplot de pasajeros nacionales por aeropuerto
ggplot(pasajeros, aes(x =codigo_iata, y = pasajeros_nacionales)) +
geom_boxplot()
# Graficos de boxplot de pasajeros internacionales por aeropuerto
ggplot(pasajeros, aes(x =codigo_iata, y = pasajeros_internacionales)) +
geom_boxplot()
# Graficos de boxplot de pasajeros nacionales por estado
ggplot(pasajeros, aes(x =estado, y = pasajeros_nacionales)) +
geom_boxplot()
# Graficos de boxplot de pasajeros internacionales por estado
ggplot(pasajeros, aes(x =estado, y = pasajeros_internacionales)) +
geom_boxplot()