Veamos la cantidad de vuelos a lo largo de los años para ver que tanto decrecieron a partir del comienzo de la pandemia. Para esto creamos un nuevo dataframe que contiene la información de los vuelos del 2021 junto con los de años anteriores.
Para realizar el análisis vamos a tomar solamente los despegues y los vuelos regulares. Además agregamos una nueva columna con el año que lo podemos extraer a partir de la fecha del vuelo.
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.3 v dplyr 1.0.7
## v tidyr 1.1.3 v stringr 1.4.0
## v readr 2.0.0 v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
vuelos_ant <- read.csv('./csv/datos_14_a_20.csv', sep=';')
data_2021 <- read.csv('./csv/202109-informe-ministerio.csv', sep=';', encoding = 'UTF-8')
#Construyo un df que contenga los vuelos del 2021 junto con los de años anteriores
datos_ant <- vuelos_ant %>%
select(Tipo.de.Movimiento, Fecha, Clase.de.Vuelo)
datos_act <- data_2021 %>%
mutate(Clase.de.Vuelo = Clase.de.Vuelo..todos.los.vuelos.) %>%
select(Tipo.de.Movimiento, Fecha, Clase.de.Vuelo)
vuelos_completos <- rbind(datos_ant, datos_act)
#dim(datos_ant)[1] + dim(datos_act)[1] == dim(vuelos_completos)[1]
#Vamos a tomar despegues y vuelos regulares
unique(vuelos_completos$Tipo.de.Movimiento)
## [1] "Aterrizaje" "Despegue " "Tipo de Movimiento"
## [4] "Despegue"
unique(vuelos_completos$Clase.de.Vuelo)
## [1] "No Regular "
## [2] "Regular "
## [3] "Vuelo Privado con Matrícula Nacional"
## [4] "Vuelo Privado con Matrícula Extranje"
## [5] "Clase de Vuelo"
## [6] "Regular"
## [7] "No Regular"
## [8] "Trabajo Aéreo"
## [9] "Vuelo de Adiestramiento"
## [10] "Vuelo Escuela"
## [11] "Vuelo Oficial Nacional"
## [12] "Vuelo Privado con Matrícula Extranjera"
## [13] "Vuelo Oficial Extranjero"
#algunos estan mal anotados como 'Despegue ', los corrijo
vuelos_completos.desp <- vuelos_completos %>%
mutate(Tipo.de.Movimiento = ifelse(Tipo.de.Movimiento=='Despegue ',
'Despegue',Tipo.de.Movimiento),
Clase.de.Vuelo = ifelse(Clase.de.Vuelo=='Regular ','Regular',Clase.de.Vuelo)) %>%
filter(Tipo.de.Movimiento=='Despegue', Clase.de.Vuelo=='Regular')
#Calculo el año de cada vuelo para poder agruparlos
vuelos_completos.desp <- vuelos_completos.desp %>%
#el 3er elemento en fecha contiene el año
mutate(Year=sapply(strsplit(Fecha, split='/'), function(x) x[[3]]))
#Agrupo los vuelos a partir del año (no tomo 2021, los meses estan incompletos)
vuelos.by.year <- vuelos_completos.desp %>% filter(Year != 2021) %>%
group_by(Year) %>% summarise(count=n())
ggplot(vuelos.by.year, mapping=aes(x=Year,y=count, group=2)) +
geom_smooth(col='black', size=1.1) +
geom_bar(stat='identity', fill='blue', alpha=.5) +
labs(x='Años', y='Cantidad de vuelos', title='Vuelos por año') +
theme(plot.title = element_text(hjust = 0.5)) +
ylim(c(0, 2.0e5))
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## Warning in max(ids, na.rm = TRUE): ningun argumento finito para max; retornando
## -Inf
Para esta primera visualización no consideramos los datos del 2021 ya que obviamente no tenemos los meses completos. No obstante se puede ver que la cantidad de vuelos en el 2020 fue muy reducida respecto a años anteriores. También puede apreciarse una baja en la actividad en el 2015 la cual se fue incrementando en los años siguientes.
Ahora agreguemos otra nueva columna pero con los meses. A partir de esto vemos la cantidad de vuelos por mes a lo largo de los últimos 8 años.
#Agrego columna con los meses
vuelos_completos.desp <- vuelos_completos.desp %>%
mutate(Month=sapply(strsplit(Fecha, split='/'), function(x) x[[2]]))
unique(vuelos_completos.desp$Month)
## [1] "01" "02" "03" "04" "05" "06" "07" "08" "09" "10" "11" "12" "1" "2" "3"
## [16] "4" "5" "6" "7" "8" "9"
#Algunos fueron anotados como '1' en lugar de '01', '2' en vez de '02'...etc
#quiero los nombres de los meses en vez del numero correspondiente
meses <- c('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre')
vuelos_completos.desp <- vuelos_completos.desp %>%
mutate(Month = case_when(Month == '01' ~ meses[1],
Month == '02' ~ meses[2],
Month == '03' ~ meses[3],
Month == '04' ~ meses[4],
Month == '05' ~ meses[5],
Month == '06' ~ meses[6],
Month == '07' ~ meses[7],
Month == '08' ~ meses[8],
Month == '09' ~ meses[9],
Month == '10' ~ meses[10],
Month == '11' ~ meses[11],
Month == '12' ~ meses[12],
#ahora los que tenian otra notacion
Month == '1' ~ meses[1],
Month == '2' ~ meses[2],
Month == '3' ~ meses[3],
Month == '4' ~ meses[4],
Month == '5' ~ meses[5],
Month == '6' ~ meses[6],
Month == '7' ~ meses[7],
Month == '8' ~ meses[8],
Month == '9' ~ meses[9]))
unique(vuelos_completos.desp$Month)
## [1] "Enero" "Febrero" "Marzo" "Abril" "Mayo"
## [6] "Junio" "Julio" "Agosto" "Septiembre" "Octubre"
## [11] "Noviembre" "Diciembre"
#Creo una lista donde voy a guardar la cantidad de vuelos por mes a lo largo de los años
graficos <- list()
i <- 1
for(mes in meses) {
grafico_mes <- filter(vuelos_completos.desp, Month==mes) %>%
group_by(Year) %>% summarise(count=n()) %>%
ggplot(vuelos.by.year, mapping=aes(x=Year,y=count, group=2)) +
geom_smooth(col='black', size=1.1, se=F) +
geom_bar(stat='identity', fill='blue', alpha=.5) +
labs(x='Años', y='Cantidad de vuelos', title=mes) +
theme(plot.title = element_text(hjust = 0.5)) +
ylim(c(0, 18000))
graficos[[i]] <- grafico_mes
i <- i+1
}
La libreria gridExtra
permite agrupar los graficos, sin embargo, es necesario cambiar las dimensiones para que puedan entrar todos los graficos juntos.
##
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
##
## combine
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
Se puede observar como a partir del comienzo de la pandemia decrece drásticamente la cantidad de vuelos. Enero y febrero del 2020, los 2 meses antes del inicio de esta, tuvieron muchos más vuelos respecto a los que se veían observando en estos 2 meses años anteriores.
A partir de diciembre del 2020 la cantidad de vuelos vuelve a crecer poco a poco. Pero todavía son muy pocos respecto a los que eran antes de la pandemia.
Veamos más en detalle que sucedió a lo largo del 2020:
vuelos_2020 <- filter(vuelos_completos.desp, Year==2020) %>%
group_by(Month) %>% summarise(count=n())
#los meses aparecen desordenados en vuelos_2020, los ordeno a partir del vector de meses que ya tengo construido
vuelos_2020$Month <- factor(vuelos_2020$Month, levels=meses)
#ahora reordeno los meses en el data frame
vuelos_2020 <- vuelos_2020[order(vuelos_2020$Month), ]
ggplot(vuelos_2020, mapping=aes(x=Month, y=count, group=2)) +
geom_smooth(col='black', size=1.1, se=F) +
geom_bar(stat='identity', fill='blue', alpha=.5) +
labs(x='Mes', y='Cantidad de vuelos', title='Vuelos a lo largo del 2020') +
theme(plot.title = element_text(hjust = 0.5),
axis.text.x = element_text(angle = 90)) +
ylim(c(0, 18000))
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## Warning: Removed 2 rows containing missing values (geom_smooth).
vuelos_2020
mean(vuelos_2020$count[4:9])
## [1] 180.1667
La cantidad de vuelos entre abril y septiembre es prácticamente nula (en promedio unos 180 vuelos), sobretodo si comparamos respecto a otros años. A partir de noviembre o posiblemente mediados de octubre parece volver a aumentar de a poco.
Por último veamos como se distribuyó en promedio la cantidad de vuelos por mes a lo largo de los años. Este análisis puede servirnos para tratar de identificar cuando son las temporadas alta y baja.
vuelos.agrupados <- vuelos_completos.desp %>% group_by(Month, Year) %>%
summarise(count=n())
## `summarise()` has grouped output by 'Month'. You can override using the `.groups` argument.
promedio.mes <- c()
for(m in meses) {
#me quedo con mes m en cada iteracion y calculo el promedio del total de vuelos para ese mes a lo largo de los años
promedio.mes <- c(promedio.mes, mean(vuelos.agrupados[vuelos.agrupados$Month==m,]$count))
}
summary(promedio.mes)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 7072 8403 9132 8902 9393 10405
#comparo respecto al promedio antes de la pandemia
vuelos.agrupados.ant <- vuelos_completos.desp %>% filter(Year < 2020) %>%
group_by(Month, Year) %>% summarise(count=n())
## `summarise()` has grouped output by 'Month'. You can override using the `.groups` argument.
promedio.mes.ant <- c()
for(m in meses) {
#me quedo con mes m en cada iteracion y calculo el promedio del total de vuelos para ese mes a lo largo de los años
promedio.mes.ant <- c(promedio.mes.ant,
mean(vuelos.agrupados.ant[vuelos.agrupados.ant$Month==m,]$count))
}
summary(promedio.mes.ant)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 9020 9482 10591 10347 11184 11524
Los valores varían al calcular el promedio mirando los datos de todos los años o únicamente los años anteriores a la pandemia, aunque no considerablemente. Aún asi realizamos el analisis de los vuelos por mes con los datos previos al 2020 para obtener un resultado algo más adecuado a lo que se observaría normalmente.
meses <- factor(meses, levels=meses) #sin agregar esta línea los meses aparecen en otro orden en el gráfico
ggplot(mapping = aes(x=meses, y=promedio.mes.ant, group=2)) +
geom_smooth(col='black', size=1.1, se=F) +
geom_bar(stat='identity', fill='blue', alpha=.5) +
labs(x='Mes', y='Cantidad de vuelos', title='Promedio de vuelos a lo largo de los meses') +
theme(plot.title = element_text(hjust = 0.5),
axis.text.x = element_text(angle = 90)) +
ylim(c(0,12800))
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
vuelos.agrupados.ant$Month <- factor(vuelos.agrupados.ant$Month, levels=meses)
vuelos.agrupados.ant <- vuelos.agrupados.ant[order(vuelos.agrupados.ant$Month),]
ggplot(vuelos.agrupados.ant, mapping = aes(x=Month, y=count, fill=Month)) +
geom_violin(alpha=0.2) +
geom_boxplot(outlier.shape=NA) +
labs(x='Mes', y='Cantidad de vuelos', title='Vuelos por mes a lo largo de los años')+
theme(plot.title=element_text(hjust=0.5),
axis.text.x = element_text(angle=90))
Los meses de temporada alta parecen ser principalmente los de julio, agosto, diciembre e incluso octubre. Mientras que la temporada más baja está en febrero, abril, mayo y junio.
No obstante, la cantidad de años que estamos considerando es algo acotada como para poder sacar grandes conclusiones, ya que estamos tomando el promedio para cada mes a partir de unicamente 6 observaciones (los años 2014 a 2019). Si tuviesemos disponibles datos de más años, probablemente el análisis sería algo más robusto.
En los boxplots podemos ver la variabilidad en la cantidad de vuelos para cada mes y comparando ambos gráficos se ve que la mediana suele estar basrante cerca del promedio.
Para esta otra parte veamos si encontramos alguna relación entre la cantidad de pasajeros que viajan en un avión y el modelo de dicho avión, buscando determinar cuáles son los aviones más grandes.
#Nos interesa quedarnos unicamente con los vuelos que tienen pasajeros
dim(data_2021)
## [1] 219803 11
vuelos_con_pasajeros <- data_2021 %>% filter(Pasajeros > 0)
dim(vuelos_con_pasajeros)
## [1] 99793 11
#veamos que modelos de avion tenemos
unique(vuelos_con_pasajeros$Aeronave)
## [1] "BO-B737-8MB" "BO-737-800" "BO-B-737-76N"
## [4] "EMB-ERJ190100IGW" "0" "BO-B737-800"
## [7] "BO-737-8SH" "BO-737-86J" "BO-B737-81D"
## [10] "BO-737-8BK" "BO-B737-8LP" "BO-737-8HX"
## [13] "BO-B-737-81D" "PAA-PA-A-28-161" "AIB-A-330-223"
## [16] "BE-200" "BO-B-737-7BD" "GU-GV"
## [19] "BE-B-200-GT" "CE-T240" "BE-C-90"
## [22] "CE-550" "BE-B-200" "LJ-31-A"
## [25] "AIB-A330-202" "CE-525" "LJ-35"
## [28] "AIB-A320-232" "FA-SA-227-AC" "CE-208-B"
## [31] "BO-B-737-700" "PA-PA-32-260" "EMB-EMB-145LR"
## [34] "BE-BARON 95-B55" "EUR-EC-135T2" "PA-PA-32R-301T"
## [37] "AIB-A330-203" "CE-500" "BE-E-90"
## [40] "HDJ-HA-420" "LJ-35A" "BE-C-90-A"
## [43] "EMB-EMB-500" "BEL-429" "CIR-SR 22T"
## [46] "PA-PA-28R-200" "RO-R-44-II" "EL-407"
## [49] "BO-B737-8BK" "CE-560" "CE-172-N"
## [52] "HAB-HAWKER-900XP" "HAB-B-200-GT" "PAA-PA-A-28-181"
## [55] "TXA-560XL" "LJ-60" "RO-R66"
## [58] "LJ-25-C" "CE-501" "BE-A-100"
## [61] "CE-210" "LJ-31" "HAW-800-XP"
## [64] "DAS-FALCON 2000" "LJ-45" "LAV-PA-25-260"
## [67] "PA-PA-28-181" "EL-430" "PAA-PA-A-31-310"
## [70] "BE-58" "HAB-G-58" "CE-U-206-G"
## [73] "DOR-228-202" "PA-PA-31" "AEP-ATR-42-320"
## [76] "FA-SA-227-DC" "EL-206-L-3" "BE-300-LW"
## [79] "II-ARAVA 102" "LJ-45-XR" "CE-525B"
## [82] "BE-65-A-90" "BEF-F-90" "BOM-BD-100-1A10"
## [85] "BE-BARON 58" "ARH-AS350B3" "TXA-B200GT"
## [88] "EUR-MBB-BK-117C2" "GU-GIV-G400-" "LJ-35-A"
## [91] "CE-560-XL" "RO-R-66" "PA-PA-34-200-T"
## [94] "EUR-AS-350-B3" "RO-R-44RAVEN-I" "DH-DHC-6"
## [97] "CE-206" "RO-R-44" "PAA-PA-A-25-235"
## [100] "CE-A-182-K" "CE-310-R" "TXA-208B"
## [103] "GU-G IV-X G450" "CE-182-H" "PA-PA-39"
## [106] "TXA-B200" "BE-58-TC" "CE-210-J"
## [109] "BE-36-A" "CE-525A" "TEA-P2002-JF"
## [112] "GU-G-IV" "BE-BARON E-55" "BE-C90GT"
## [115] "BE-A-36" "BE-B-300" "CE-152"
## [118] "CE-650" "PAA-PA-A-28R201T" "MO-M20TN"
## [121] "CIR-SR-22" "PAA-PA-A-34-200T" "RAY-800XP"
## [124] "EXP-EXPRESS CT" "AB-115" "BE-G58"
## [127] "CE-551-CITATION" "VAN-RV-10" "PAA-PA-A-28-236"
## [130] "PAA-PA-A-32RT300" "BE-35-A33" "CE-182-T"
## [133] "TXA-182T" "EMB-EMB-135BJ" "HAB-C-90-GTI"
## [136] "RO-R-44RAVEN-II" "CE-560-XI" "CIT-SR22"
## [139] "CE-T-210-L" "BE-BEECHJET400A" "AU-J-5G"
## [142] "CE-180-H" "CE-A-182-N" "RO-R-44 I"
## [145] "PAA-PA-A-31-T" "CE-182-R" "BE-400-A"
## [148] "TXA-525" "CH-BD-100-1A10" "TXA-U-206-G"
## [151] "BE-90-A" "BE-1900D" "RAY-C-90-GT"
## [154] "CE-182" "CE-172-I" "TEA-P92 EAGLET G5"
## [157] "PA-PA-31-350" "HAB-C-90-A" "CE-182-E"
## [160] "FA-SA-226-TC" "LJ-60-XR" "HAB-BEECHJET-400"
## [163] "ARH-EC 130 T2" "CE-172-A" "BE-58-P"
## [166] "BOM-CL-600-2B16" "CE-172-K" "BOM-BD-700-1A11"
## [169] "CE-510" "BE-G36" "PI-PC-12-47E"
## [172] "PA-PA-30" "CE-402-B" "BE-A36TC"
## [175] "CE-TR-182" "CE-210-N" "EL-427"
## [178] "CE-T-206-H" "DAS-FALCON 900EX" "BOM-CL600-2B16"
## [181] "BE-E55" "PA-PA-28-R-201T" "CE-180"
## [184] "CE-402-C" "PA-PA-34-220-T" "BE-35-C33A"
## [187] "BE-35-B33" "CE-182-G" "CE-R-172-K"
## [190] "PA-PA-28-235" "DAS-FALCON 7X" "PA-PA-46-350-P"
## [193] "CE-T-210-N" "EL-206-B-III" "BE-BARON 55"
## [196] "TEA-P2002 SIERRA" "TEA-P2010" "EUR-MBB-BK-117C1"
## [199] "MO-M20R" "CIR-SR22 GTS" "PA-PA-31-T"
## [202] "EUR-EC-145" "RAY-C90A" "LJ-LJ45"
## [205] "CE-150-L" "CE-A-182-J" "CE-340A"
## [208] "MAC-MB-308" "TEA-P2002" "CE-337-F"
## [211] "CE-150-M" "CE-A-188-B" "DC-DC-9-88"
## [214] "CE-182-A" "CE-R-182" "BEL-505"
## [217] "RW-690-A" "CE-208" "EL-412-EP"
## [220] "CE-T182T" "CE-A172N" "RW-690-C"
## [223] "ARH-BO-105S CBS4" "PAA-PA-A-28-R201" "CE-551"
## [226] "PAA-PA-A-28-235" "RH-369HS" "CE-680"
## [229] "PAA-PA-A-38-112" "PA-PA-34-200" "TEA-P92 EAGLET"
## [232] "EUR-EC-135-T2" "PA-PA-28-161" "CE-TU-206-E"
## [235] "PAA-PA-A-31-325" "LJ-25-D" "CE-C-150-K"
## [238] "PAA-PA-A-32-300" "BE-BARON B-55" "PAA-PA-A-28-180"
## [241] "BEL-407" "CE-172" "CE-C-501"
## [244] "CE-337" "CE-150-G" "ARH-EC155B1"
## [247] "CIR-SR20" "CE-175" "PA-PA-46-500TP"
## [250] "CE-150-H" "CE-150-K" "PAA-PA-A-23-250"
## [253] "CE-C-337-G" "CE-206-B" "BE-B-36-TC"
## [256] "CE-182-D" "VA-RV-8" "CE-182-C"
## [259] "TXA-G36" "PA-PA-46-600TP" "EL-407 GXP"
## [262] "PA-PA-46-350T" "CE-172-RG" "PA-PA-28-151"
## [265] "CE-C-172-M" "BE-C-90-GTI" "TXA-58"
## [268] "AET-601-P" "PA-PA-46R-350T" "HAF-HA-420"
## [271] "CE-AA-150" "EAE-EA500" "PA-PA-32-R-301"
## [274] "GR-AA5A-CHEETAH" "RCK-S-2R" "RW-690"
## [277] "BE-95-B55" "PA-PA-11" "AET-600-A"
## [280] "CE-310-Q" "CE-172-B" "CE-337-H"
## [283] "MO-M20L" "AB-115-AB" "PA-PA-32-300"
## [286] "BE-F-33-A" "BE-V-35-B" "LBG-SH2"
## [289] "TEA-P2006T" "TXA-T206H" "RW-690-B"
## [292] "PAA-PA-A-31-350" "CE-182-L" "PA-PA-24-250"
## [295] "TRU-S2R-T34" "PAA-PA-A-32R-300" "CE-210-G"
## [298] "BO-B737-8SH" "ARH-MBB-BK117 D-2" "PAA-PA-A-34-220T"
## [301] "CE-170-A" "PA-PA-31-310" "CE-150-J"
## [304] "AB-180-RVR" "RAY-HAWKER 800XP" "BE-36"
## [307] "PA-PA-31-325" "PA-PA-28-140" "LPA-AW169"
## [310] "CE-172-L" "CE-172-S" "EUR-EC-120-B"
## [313] "BO-737-8" "PRP-912I" "CE-T-210-K"
## [316] "PAA-PA-A-28-R200" "PIP-VIRUS-SW" "CE-172-P"
## [319] "CE-C-172-L" "AG-A-109-C" "CE-182-J"
## [322] "TXA-B300" "RW-500-S" "BO-767-316"
## [325] "PZL-106-601-BT" "EUR-BO-105-S" "CE-182-P"
## [328] "BE-A36" "CE-210-M" "CE-A-182-L"
## [331] "BE-C-90-B" "PA-PA-46R-350" "BO-B737-86J"
## [334] "CE-170-B" "EUR-BO-105-CBS4" "BE-A-35"
## [337] "CE-TU-206-F" "CE-177-RG" "CE-P210N"
## [340] "CE-172RG" "EUR-EC-30-B4" "BE-65-B-80"
## [343] "TXA-208" "PZL-PW-5" "RAB-S 12 AIRALE"
## [346] "PAA-PA-A-28-140" "AET-601-B" "VA-RV6"
## [349] "CE-182-F" "PA-PA-28-180" "HAB-400-A"
## [352] "SOC-TBM-700" "VA-RV6A" "MT-MU-2B-35"
## [355] "PA-PA-25-150" "PA-PA-18A-150" "PA-PA-38-112"
## [358] "TXA-G58" "PA-PA-23-250" "BE-M-35"
## [361] "BE-F-35" "BE-95" "TXA-182P"
## [364] "CE-210-C" "CE-206-H" "FT-2"
## [367] "BRT-LSA" "BE-J35" "EUR-EC-135-T1"
## [370] "CE-210-B" "AIR-AT-802A" "EL-206-L-4"
## [373] "PAA-PA-A-23-250F" "BE-DUKE B-60" "PA-PA-28-200R"
## [376] "BE-V-35" "VSC-RV-4" "CE-P-201-N"
## [379] "PI-PC-12" "CE-150" "TXA-95-B55"
## [382] "CE-310-P" "CE-185" "CE-177-B"
## [385] "CE-210-K" "CE-150-F" "CE-182-Q"
## [388] "PIP-ALPHA TRAINER" "TEA-P2008" "CE-402"
## [391] "BE-C-23" "MO-M-20-F" "BE-BARON B-58"
## [394] "CE-T-303" "CE-A-150-L" "CE-210-D"
## [397] "CE-170" "MC-BO-105-CBS" "BO-737-8Q8"
## [400] "BE-23" "BO-B737-8" "CE-172-F"
## [403] "BE-B-35" "TEA-P2008-JC" "BO-B-737-7SV"
## [406] "ARH-MBB-BK117 C2" "CE-310-D" "TXA-172M"
## [409] "AIR-AT-502-B" "RQ-SUPERRANQUEL" "EL-206-B"
## [412] "VAP-RV-10" "TEA-P2012 TRAVELLER" "CE-T-337-C"
## [415] "AGW-AW 109SP" "CE-R-172-G" "TEA-P92"
#hay muchos modelos, veamos cuales son los mas frecuentes
agrupados <- vuelos_con_pasajeros %>% filter(Aeronave != '0') %>% group_by(Aeronave) %>% summarise(count=n()) %>% arrange(desc(count))
quantile(agrupados$count)
## 0% 25% 50% 75% 100%
## 1.00 4.00 14.00 62.25 22147.00
mas.frecuentes <- agrupados[1:20, 1]
mas.frecuentes <- unlist(mas.frecuentes$Aeronave)
#ahora nos quedamos con los vuelos con modelo de avion entre los mas frecuentes
vuelos_frecuentes <- vuelos_con_pasajeros %>% filter(Aeronave %in% mas.frecuentes) %>%
select(Aeronave, Pasajeros) %>% arrange(Pasajeros)
arrange(vuelos_frecuentes, desc(Pasajeros))
ggplot(vuelos_frecuentes,
mapping=aes(x=reorder(Aeronave, Pasajeros), y=Pasajeros, fill=Aeronave)) +
geom_boxplot(show.legend=F) +
labs(x='Modelo', y='Cantidad de pasajeros',
title='Distribución de pasajeros en modelos más frecuentes') +
theme(plot.title = element_text(hjust = 0.5),
axis.text.x = element_text(angle = 90)) +
ylim(c(0, 200))
Vemos que los aviones de la serie Boeing 737 son los más utilizados y suelen llevar en su mayoría la mayor cantidad de pasajeros. No obstante el A320 es el que tuvo la máxima cantidad de pasajeros si nos fijamos en los outliers (alrededor de 180 pero en pocas ocasiones).
Por otro lado los Embraer ERJ y los Learjet también son muy utilizados pero llevan una cantidad mucho más reducida de pasajeros, lo que nos hace pensar que son más pequeños. De hecho los Learjet son jets probablemente utilizados en vuelos privados (por esto tienen por debajo de 25 pasajeros).