Este reporte cuenta con 2 secciones.
La primera es la sección, EXPLORACIÓN, la cuál es un análisis exploratorio de la base de datos y contiene algunos resultados descriptivos.
La segunda es MANIPULACIÓN, la cuál presenta los hallazgos encontrados a través de modificaciones en el dataset original.
Para ambas secciones, las observaciones estarán en cursivas y nos basaremos en el dataset, flights, el cuál está compuesto por información de los vuelos de todos los aeropuertos de NYC:
data(flights)
flights
## # A tibble: 336,776 x 19
## year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
## <int> <int> <int> <int> <int> <dbl> <int> <int>
## 1 2013 1 1 517 515 2 830 819
## 2 2013 1 1 533 529 4 850 830
## 3 2013 1 1 542 540 2 923 850
## 4 2013 1 1 544 545 -1 1004 1022
## 5 2013 1 1 554 600 -6 812 837
## 6 2013 1 1 554 558 -4 740 728
## 7 2013 1 1 555 600 -5 913 854
## 8 2013 1 1 557 600 -3 709 723
## 9 2013 1 1 557 600 -3 838 846
## 10 2013 1 1 558 600 -2 753 745
## # … with 336,766 more rows, and 11 more variables: arr_delay <dbl>,
## # carrier <chr>, flight <int>, tailnum <chr>, origin <chr>, dest <chr>,
## # air_time <dbl>, distance <dbl>, hour <dbl>, minute <dbl>, time_hour <dttm>
En esta sección desglosaremos el contenido de la base de datos
Para conocer qué datos encontraremos dentro de nuestra base de datos, debemos consultar los tipos de datos que se encuentran dentro de nuestro data set.
str(flights)
## tibble [336,776 × 19] (S3: tbl_df/tbl/data.frame)
## $ year : int [1:336776] 2013 2013 2013 2013 2013 2013 2013 2013 2013 2013 ...
## $ month : int [1:336776] 1 1 1 1 1 1 1 1 1 1 ...
## $ day : int [1:336776] 1 1 1 1 1 1 1 1 1 1 ...
## $ dep_time : int [1:336776] 517 533 542 544 554 554 555 557 557 558 ...
## $ sched_dep_time: int [1:336776] 515 529 540 545 600 558 600 600 600 600 ...
## $ dep_delay : num [1:336776] 2 4 2 -1 -6 -4 -5 -3 -3 -2 ...
## $ arr_time : int [1:336776] 830 850 923 1004 812 740 913 709 838 753 ...
## $ sched_arr_time: int [1:336776] 819 830 850 1022 837 728 854 723 846 745 ...
## $ arr_delay : num [1:336776] 11 20 33 -18 -25 12 19 -14 -8 8 ...
## $ carrier : chr [1:336776] "UA" "UA" "AA" "B6" ...
## $ flight : int [1:336776] 1545 1714 1141 725 461 1696 507 5708 79 301 ...
## $ tailnum : chr [1:336776] "N14228" "N24211" "N619AA" "N804JB" ...
## $ origin : chr [1:336776] "EWR" "LGA" "JFK" "JFK" ...
## $ dest : chr [1:336776] "IAH" "IAH" "MIA" "BQN" ...
## $ air_time : num [1:336776] 227 227 160 183 116 150 158 53 140 138 ...
## $ distance : num [1:336776] 1400 1416 1089 1576 762 ...
## $ hour : num [1:336776] 5 5 5 5 6 5 6 6 6 6 ...
## $ minute : num [1:336776] 15 29 40 45 0 58 0 0 0 0 ...
## $ time_hour : POSIXct[1:336776], format: "2013-01-01 05:00:00" "2013-01-01 05:00:00" ...
A partir las anteriores abreviaciones, podemos determinar el tipo de cada dato:
num = Se refiere a cualquier número entero
chr = Se refiere a una agrupación de carácteres/ texto
dbl = Se refiere a cualquier número que cuente con dos número de precisión (punto decimal)
ddtm= Se refiere a una combinación de date y time en uno mismo: Identifica de forma única un instante en el tiempo
Después, con la siguiente función identificamos que nuestro data set es una tabla, cuyos argumetos son los datos que nos interesan para la empresa.
class(flights)
## [1] "tbl_df" "tbl" "data.frame"
A través de la siguientes funciones , podemos ver que la tabla tiene:
19 columnas que nos ayudarán a describir cada vuelo.
336,776 resgistros, es decir número de vuelos.
Por lo tanto, la dimensión del data set (conjunto de columnas y registros) es de 19 x 336,776
ncol(flights)
## [1] 19
nrow(flights)
## [1] 336776
dim(flights)
## [1] 336776 19
Después generaremos 2 diferentes outputs de flights. El primero nos arrojará los primeros 50 registros de vuelos
head(flights,50)
## # A tibble: 50 x 19
## year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
## <int> <int> <int> <int> <int> <dbl> <int> <int>
## 1 2013 1 1 517 515 2 830 819
## 2 2013 1 1 533 529 4 850 830
## 3 2013 1 1 542 540 2 923 850
## 4 2013 1 1 544 545 -1 1004 1022
## 5 2013 1 1 554 600 -6 812 837
## 6 2013 1 1 554 558 -4 740 728
## 7 2013 1 1 555 600 -5 913 854
## 8 2013 1 1 557 600 -3 709 723
## 9 2013 1 1 557 600 -3 838 846
## 10 2013 1 1 558 600 -2 753 745
## # … with 40 more rows, and 11 more variables: arr_delay <dbl>, carrier <chr>,
## # flight <int>, tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>,
## # distance <dbl>, hour <dbl>, minute <dbl>, time_hour <dttm>
Y el segundo los últimos 20
tail(flights,20)
## # A tibble: 20 x 19
## year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
## <int> <int> <int> <int> <int> <dbl> <int> <int>
## 1 2013 9 30 2150 2159 -9 2250 2306
## 2 2013 9 30 2159 1845 194 2344 2030
## 3 2013 9 30 2203 2205 -2 2339 2331
## 4 2013 9 30 2207 2140 27 2257 2250
## 5 2013 9 30 2211 2059 72 2339 2242
## 6 2013 9 30 2231 2245 -14 2335 2356
## 7 2013 9 30 2233 2113 80 112 30
## 8 2013 9 30 2235 2001 154 59 2249
## 9 2013 9 30 2237 2245 -8 2345 2353
## 10 2013 9 30 2240 2245 -5 2334 2351
## 11 2013 9 30 2240 2250 -10 2347 7
## 12 2013 9 30 2241 2246 -5 2345 1
## 13 2013 9 30 2307 2255 12 2359 2358
## 14 2013 9 30 2349 2359 -10 325 350
## 15 2013 9 30 NA 1842 NA NA 2019
## 16 2013 9 30 NA 1455 NA NA 1634
## 17 2013 9 30 NA 2200 NA NA 2312
## 18 2013 9 30 NA 1210 NA NA 1330
## 19 2013 9 30 NA 1159 NA NA 1344
## 20 2013 9 30 NA 840 NA NA 1020
## # … with 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
## # tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
## # hour <dbl>, minute <dbl>, time_hour <dttm>
Por último (de la sección Exploración) se podrá observar el resumen estadístico del data set.
A partir del cual podemos interpretar que…
La media de retraso de llegada (6.895) es menor que la de el retraso en depegue (12.64)
Lo mínimo que un vuelo dura en el aire es 20 minutos y el máximo son 11hrs con 58 minutos
Lo mínimo que recorre un vuelo es 17 millas y lo máximo son 4,983
Aunuqe exista un retraso en la salida, lo más probable es que este no afecte de manera DRÁSTICA la hora de llegada
La mayoría de los vuelos dura aproximadamente 3 horas y recorre 1389 millas
25% de los vuelos son capaces de despegar incluso antes de lo planeado
75% son capaces de llegar antes de que pasen 15min de su hora estimada de llegada
El promedio de diatncia recorrida en millas es de 1040
summary(flights, na.rm = TRUE)
## year month day dep_time sched_dep_time
## Min. :2013 Min. : 1.000 Min. : 1.00 Min. : 1 Min. : 106
## 1st Qu.:2013 1st Qu.: 4.000 1st Qu.: 8.00 1st Qu.: 907 1st Qu.: 906
## Median :2013 Median : 7.000 Median :16.00 Median :1401 Median :1359
## Mean :2013 Mean : 6.549 Mean :15.71 Mean :1349 Mean :1344
## 3rd Qu.:2013 3rd Qu.:10.000 3rd Qu.:23.00 3rd Qu.:1744 3rd Qu.:1729
## Max. :2013 Max. :12.000 Max. :31.00 Max. :2400 Max. :2359
## NA's :8255
## dep_delay arr_time sched_arr_time arr_delay
## Min. : -43.00 Min. : 1 Min. : 1 Min. : -86.000
## 1st Qu.: -5.00 1st Qu.:1104 1st Qu.:1124 1st Qu.: -17.000
## Median : -2.00 Median :1535 Median :1556 Median : -5.000
## Mean : 12.64 Mean :1502 Mean :1536 Mean : 6.895
## 3rd Qu.: 11.00 3rd Qu.:1940 3rd Qu.:1945 3rd Qu.: 14.000
## Max. :1301.00 Max. :2400 Max. :2359 Max. :1272.000
## NA's :8255 NA's :8713 NA's :9430
## carrier flight tailnum origin
## Length:336776 Min. : 1 Length:336776 Length:336776
## Class :character 1st Qu.: 553 Class :character Class :character
## Mode :character Median :1496 Mode :character Mode :character
## Mean :1972
## 3rd Qu.:3465
## Max. :8500
##
## dest air_time distance hour
## Length:336776 Min. : 20.0 Min. : 17 Min. : 1.00
## Class :character 1st Qu.: 82.0 1st Qu.: 502 1st Qu.: 9.00
## Mode :character Median :129.0 Median : 872 Median :13.00
## Mean :150.7 Mean :1040 Mean :13.18
## 3rd Qu.:192.0 3rd Qu.:1389 3rd Qu.:17.00
## Max. :695.0 Max. :4983 Max. :23.00
## NA's :9430
## minute time_hour
## Min. : 0.00 Min. :2013-01-01 05:00:00
## 1st Qu.: 8.00 1st Qu.:2013-04-04 13:00:00
## Median :29.00 Median :2013-07-03 10:00:00
## Mean :26.23 Mean :2013-07-03 05:22:54
## 3rd Qu.:44.00 3rd Qu.:2013-10-01 07:00:00
## Max. :59.00 Max. :2013-12-31 23:00:00
##
En esta sección identificaremos cuáles son las aerolíneas de mayor tráfico aéreo en origen y destino
De acuerdo con el anterior resumen estadístico, el promedio de distancia es de 1040 millas. Si queremos saber específicamente cuales son las que han recorrido más distancia, necesitaremos saber específicamente cuales sobrepasan la media. Para esto, eliminaremos las celdas sin datos (NA) y crearemos una nueva tabla, que nos muestre solo las aerolíneas que recorren mayor distancia al promedio.
A partir de estos resultados, podemos ver que 8 de 16 aerolíneas sobrepasan la media y que Hawaiian Airlines, Virgin America y Alaska Airlines son las 3 aerolíneas que más distancia recorren en promedio en sus vuelos, sin embargo en términos de distancia en general (suma de distancia recorrida a través del año 2013), United Airlines es el líder y por mucho.
La media de AA se encuentra en 6to lugar y la suma total de su distancia recorrida en el 4to
best_airlines_1 <- flights %>%
group_by(carrier) %>%
summarise(mean_dist= mean(distance), sum_dist=sum(distance)) %>%
filter(mean_dist > 1040)%>%
arrange(desc(mean_dist))
best_airlines_1
## # A tibble: 8 x 3
## carrier mean_dist sum_dist
## <chr> <dbl> <dbl>
## 1 HA 4983 1704186
## 2 VX 2499. 12902327
## 3 AS 2402 1715028
## 4 F9 1620 1109700
## 5 UA 1529. 89705524
## 6 AA 1340. 43864584
## 7 DL 1237. 59507317
## 8 B6 1069. 58384137
Después identificamos las aerolíneas líderes de los tres aeropuertos cuyo origen es Nueva York, para determinar si son las mismas en todos
John F. Kennedy (JFK):
Podemos observar que en el aeropuerto JFK las aerolíneas que más realizaron vuelos fueron JetBlue, Delta y ENDEAVOR.
American Airlines se encuentra en 4to lugar
JFK <- flights %>%
group_by(carrier, origin) %>%
filter(origin == "JFK", na.rm = TRUE)%>%
summarize(count = n()) %>%
arrange(desc(count))%>%
rename(JFK_carrier= carrier)%>%
select(-origin)
## `summarise()` has grouped output by 'carrier'. You can override using the `.groups` argument.
JFK
## # A tibble: 10 x 2
## # Groups: JFK_carrier [10]
## JFK_carrier count
## <chr> <int>
## 1 B6 42076
## 2 DL 20701
## 3 9E 14651
## 4 AA 13783
## 5 MQ 7193
## 6 UA 4534
## 7 VX 3596
## 8 US 2995
## 9 EV 1408
## 10 HA 342
LaGuardia (LGA) :
LGA <- flights %>%
group_by(carrier, origin) %>%
filter(origin == "LGA", na.rm = TRUE)%>%
summarize(count = n()) %>%
arrange(desc(count))%>%
rename(LGA_carrier= carrier)%>%
select(-origin)
## `summarise()` has grouped output by 'carrier'. You can override using the `.groups` argument.
LGA
## # A tibble: 13 x 2
## # Groups: LGA_carrier [13]
## LGA_carrier count
## <chr> <int>
## 1 DL 23067
## 2 MQ 16928
## 3 AA 15459
## 4 US 13136
## 5 EV 8826
## 6 UA 8044
## 7 WN 6087
## 8 B6 6002
## 9 FL 3260
## 10 9E 2541
## 11 F9 685
## 12 YV 601
## 13 OO 26
Newark Liberty (EWR) :
Podemos observar que en el aeropuerto EWR las aerolíneas que más realizaron vuelos fueron United Airlines, ExpressJet, JetBlue.
American Airlines se encuentra en 7mo lugar.
EWR <- flights %>%
group_by(carrier, origin) %>%
filter(origin == "EWR", na.rm = TRUE)%>%
summarize(count = n()) %>%
arrange(desc(count))%>%
rename(EWR_carrier= carrier)%>%
select(-origin)
## `summarise()` has grouped output by 'carrier'. You can override using the `.groups` argument.
EWR
## # A tibble: 12 x 2
## # Groups: EWR_carrier [12]
## EWR_carrier count
## <chr> <int>
## 1 UA 46087
## 2 EV 43939
## 3 B6 6557
## 4 WN 6188
## 5 US 4405
## 6 DL 4342
## 7 AA 3487
## 8 MQ 2276
## 9 VX 1566
## 10 9E 1268
## 11 AS 714
## 12 OO 6
Exactamente la mitad de las aerolíneas estudiadas, superan la media de 1040 millas
American Airlines es bastante superior en cuanto a tráfico aéreo. Su media y suma de distancia son superiores a más de 10 de sus comeptidores y aunque su media de distancia se encuentra en 6to lugar…Su suma total entra en el top 5 y esto es más importante, pues dependiendo de los destinos que maneje la aerolínea, la media se podría ver sesgada.
Es por esto que aerolíneas como Hawaiian Airlines se encuentran más arriba (la mayoría de sus vuelos son con destino a Hawaii)
La aerolínea que cuenta con más presencia y cuya posición en los rankings suele ser más alta es Delta.
Cuenta con el segundo lugar en el aeropuerto JFK, lidera LaGuardua y solamente cae en sexto lugar cuando se trata de Newark Liberty. Por lo tanto, podemos decir que es el competidor más fuerte para American Airlines.
American Airlines también está muy bien posicionada. En JKF ocupa el segundo lugar, en LGA el tercero y solo en EWR ocupa el séptimo
Podemos darnos cuenta que AA no cuenta con tanta presencia en EWR, pero de acuerdo con los datos de NYC, este aeropuerto en particular ha perdido mucha popularidad al ser el más antiguo, por lo tanto, no es de primera necesidad escalar posiciones en ese ranking.
Sin embargo, se podría prestar atención en seguir escalando en LaGuardia, pues aunque AA ocupa el tercer lugar, este es el aeropuerto más importante en cuanto a vuelos nacionales y impulsando la marca con promociones, marketing o mejoras al servcio, facilmente se podría llegar al 2do lugar (MQ solo los rebasa por 1469 vuelos) y el tener más presencia les daría más status y beneficios a corto y largo plazo.