library(nycflights13)
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(ggplot2)
library(plotly)
##
## Adjuntando el paquete: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(shiny)
library(shinydashboard)
##
## Adjuntando el paquete: 'shinydashboard'
## The following object is masked from 'package:graphics':
##
## box
library(lubridate)
##
## Adjuntando el paquete: 'lubridate'
## The following objects are masked from 'package:base':
##
## date, intersect, setdiff, union
library(DT)
##
## Adjuntando el paquete: 'DT'
## The following objects are masked from 'package:shiny':
##
## dataTableOutput, renderDataTable
library(RColorBrewer)
library(viridis)
## Cargando paquete requerido: viridisLite
library(kableExtra)
##
## Adjuntando el paquete: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
#Acerca de esta base de datos ###Este conjunto de datos proporciona un análisis completo de los vuelos que partieron de los tres principales aeropuertos de Nueva York en 2013: John F. Kennedy International Airport (JFK), LaGuardia Airport (LGA), y Newark Liberty International Airport (EWR). Contiene información detallada sobre horarios, aerolíneas, retrasos, y distancias, lo que permite explorar patrones de tráfico aéreo y desempeño de los vuelos a lo largo del año.
Esta es la información de los campos que describen la base de datos.
####Información básica: #year: Año del vuelo (siempre 2013). #month: Mes del vuelo (del 1 al 12). #day: Día del vuelo. #dep_time: Hora real de salida del vuelo (en formato HHMM). #arr_time: Hora real de llegada del vuelo (en formato HHMM). #carrier: Código de la aerolínea (por ejemplo, “UA” para United Airlines). #flight: Número del vuelo. #origin: Aeropuerto de origen del vuelo (JFK, LGA o EWR). #dest: Aeropuerto de destino del vuelo. #air_time: Duración del vuelo (en minutos). #distance: Distancia del vuelo (en millas).
####Métricas de rendimiento: #dep_delay: Retraso en la salida (en minutos; positivo si el vuelo salió tarde). #arr_delay: Retraso en la llegada (en minutos; positivo si el vuelo llegó tarde). #sched_dep_time: Hora programada de salida (en formato HHMM). #sched_arr_time: Hora programada de llegada (en formato HHMM). #cancelled: Indicador de cancelación (1 = Sí, 0 = No). #diverted: Indicador de desvío a otro aeropuerto (1 = Sí, 0 = No).
####Información del avión: #tailnum: Número de identificación del avión. #plane_model: Modelo del avión (obtenido de datos adicionales del avión). #plane_age: Edad del avión al momento del vuelo.
##Atributos adicionales: #taxi_out: Tiempo que el avión pasó en la pista antes de despegar (en minutos). #taxi_in: Tiempo que el avión pasó en la pista después de aterrizar (en minutos).
###Base de Datos vuelos EE.UU. 2013.
data("flights")
###Creación de dataframe con los códigos y nombres de las aerolíneas
airlines <- data.frame(
carrier = c("9E", "AA", "AS", "B6", "DL", "EV", "F9", "FL", "HA", "MQ", "OO", "UA", "US", "VX", "WN", "YV"),
name = c("Endeavor Air Inc.", "American Airlines Inc.", "Alaska Airlines Inc.", "JetBlue Airways",
"Delta Air Lines Inc.", "ExpressJet Airlines Inc.", "Frontier Airlines Inc.",
"AirTran Airways Corporation", "Hawaiian Airlines Inc.", "Envoy Air", "SkyWest Airlines Inc.",
"United Air Lines Inc.", "US Airways Inc.", "Virgin America", "Southwest Airlines Co.",
"Mesa Airlines Inc.")
)
###Tablas de aerolineas.
airlines %>%
kable("html", col.names = c("Código de Aerolínea", "Nombre de la Aerolínea"), align = "c") %>%
kable_styling(full_width = F, bootstrap_options = c("striped", "hover", "condensed", "responsive"))
| Código de Aerolínea | Nombre de la Aerolínea |
|---|---|
| 9E | Endeavor Air Inc. |
| AA | American Airlines Inc. |
| AS | Alaska Airlines Inc. |
| B6 | JetBlue Airways |
| DL | Delta Air Lines Inc. |
| EV | ExpressJet Airlines Inc. |
| F9 | Frontier Airlines Inc. |
| FL | AirTran Airways Corporation |
| HA | Hawaiian Airlines Inc. |
| MQ | Envoy Air |
| OO | SkyWest Airlines Inc. |
| UA | United Air Lines Inc. |
| US | US Airways Inc. |
| VX | Virgin America |
| WN | Southwest Airlines Co. |
| YV | Mesa Airlines Inc. |
###Gráfico de Barras: “Retraso Promedio por Aerolínea”
# Agrupamos por aerolínea y calculamos el retraso promedio
avg_delay_by_airline <- flights %>%
group_by(carrier) %>%
summarise(avg_delay = mean(arr_delay, na.rm = TRUE))
# Usamos una paleta de colores continua de viridis
p1 <- ggplot(avg_delay_by_airline, aes(x = reorder(carrier, avg_delay), y = avg_delay, fill = carrier)) +
geom_bar(stat = "identity") +
scale_fill_viridis_d() + # Aplicamos la paleta viridis para una cantidad mayor de colores
coord_flip() +
labs(title = "Retraso Promedio por Aerolínea", x = "Aerolínea", y = "Retraso Promedio (min)") +
theme_minimal()
# Hacemos el gráfico interactivo con plotly
ggplotly(p1)
#Análisis La gráfica nos muestra el retraso promedio en minutos por aerolínea en los vuelos que partieron de los aeropuertos de Nueva York en 2013. Las aerolíneas con barras positivas representan vuelos que llegaron tarde en promedio, mientras que las barras negativas indican aerolíneas cuyos vuelos llegaron antes de lo programado. Las dos aerolíneas con barras negativas son: Hawaiian Airlines (HA) y Alaska Airlines (AS). Estas aerolíneas muestran un retraso promedio negativo, lo que significa que, en promedio, sus vuelos llegaron antes de la hora programada, lo cual es un buen indicativo de su puntualidad. En contraste, las aerolíneas como ExpressJet (EV) y Frontier Airlines (F9) tienen los retrasos más altos, con vuelos que regularmente llegaron después de lo previsto.
###Gráfico Circular: “Proporción de Vuelos por Aeropuerto de Origen”
# Agrupamos por aeropuerto de origen y calculamos la proporción
flights_by_origin <- flights %>%
group_by(origin) %>%
summarise(total_flights = n()) %>%
mutate(prop = total_flights / sum(total_flights))
# Creamos el gráfico circular usando plot_ly
p2 <- plot_ly(flights_by_origin, labels = ~origin, values = ~prop, type = 'pie',
textinfo = 'label+percent',
insidetextorientation = 'radial') %>%
layout(title = 'Proporción de Vuelos por Aeropuerto de Origen',
showlegend = TRUE)
# Mostramos el gráfico
p2
#Análisis La gráfica nos muestra la proporción de vuelos que partieron de los tres principales aeropuertos de Nueva York en 2013: John F. Kennedy International Airport (JFK), LaGuardia Airport (LGA) y Newark Liberty International Airport (EWR). LaGuardia Airport (LGA) representa la mayor proporción de vuelos, lo que indica que es el aeropuerto con mayor tráfico aéreo de los tres. Esto puede deberse a su enfoque en vuelos nacionales y de corto alcance. John F. Kennedy International Airport (JFK) sigue en proporción, manejando una buena parte del tráfico aéreo, especialmente vuelos internacionales. Newark Liberty International Airport (EWR) tiene la menor proporción de vuelos, lo que sugiere que tiene menos actividad que los otros dos aeropuertos, aunque aún maneja un tráfico significativo.
###Histograma: “Distribución de Distancias de los Vuelos”
# Filtramos los vuelos con distancias válidas y reducimos el conjunto a los 10,000 primeros vuelos para mejor manejo
flights_clean <- flights %>%
filter(!is.na(distance) & is.finite(distance)) %>%
head(10000) # Reducimos la cantidad de vuelos para mejorar el rendimiento
# Creamos el histograma con una paleta de colores variada
p3 <- ggplot(flights_clean, aes(x = distance, fill = ..count..)) +
geom_histogram(bins = nclass.Sturges(flights_clean$distance), color = "white") +
scale_fill_viridis_c() + # Aplicamos una paleta de colores continua
labs(title = "Distribución de Distancias de los Vuelos", x = "Distancia (millas)", y = "Frecuencia") +
theme_minimal()
# Convertimos el gráfico a interactivo
ggplotly(p3)
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## ℹ The deprecated feature was likely used in the ggplot2 package.
## Please report the issue at <https://github.com/tidyverse/ggplot2/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
#Análisis # En la grafica muestra cómo se distribuyen las distancias de los vuelos desde los aeropuertos de Nueva York. La mayoría de los vuelos tienen distancias entre 500 y 1,500 millas, lo que refleja rutas nacionales o regionales. Los vuelos de largo alcance (más de 4,000 millas) son menos frecuentes, indicando vuelos internacionales. La paleta de colores ayuda a visualizar la frecuencia de los vuelos en cada intervalo
####Tablas de aeropuertos.
# Creamos un dataframe con los códigos de aeropuertos y sus nombres completos
airports <- data.frame(
code = c("ATL", "LAX", "ORD", "DFW", "JFK", "DEN", "SFO", "CLT", "LAS", "MIA"),
name = c("Hartsfield-Jackson Atlanta International Airport",
"Los Angeles International Airport",
"O'Hare International Airport",
"Dallas/Fort Worth International Airport",
"John F. Kennedy International Airport",
"Denver International Airport",
"San Francisco International Airport",
"Charlotte Douglas International Airport",
"McCarran International Airport",
"Miami International Airport")
)
# Cargar librería kableExtra para formatear la tabla
library(kableExtra)
# Creamos y mostramos la tabla con formato
airports %>%
kable("html", col.names = c("Código de Aeropuerto", "Nombre del Aeropuerto"), align = "c") %>%
kable_styling(full_width = F, bootstrap_options = c("striped", "hover", "condensed", "responsive"))
| Código de Aeropuerto | Nombre del Aeropuerto |
|---|---|
| ATL | Hartsfield-Jackson Atlanta International Airport |
| LAX | Los Angeles International Airport |
| ORD | O’Hare International Airport |
| DFW | Dallas/Fort Worth International Airport |
| JFK | John F. Kennedy International Airport |
| DEN | Denver International Airport |
| SFO | San Francisco International Airport |
| CLT | Charlotte Douglas International Airport |
| LAS | McCarran International Airport |
| MIA | Miami International Airport |
###Grafico de área:“Retrasos Promedio por Mes”
flights_top_airports <- flights %>%
group_by(dest) %>%
summarise(avg_arr_delay = mean(arr_delay, na.rm = TRUE)) %>%
top_n(20, avg_arr_delay) # Seleccionamos los 20 aeropuertos con más retraso
# Creamos el gráfico de barras
p4 <- ggplot(flights_top_airports, aes(x = reorder(dest, avg_arr_delay), y = avg_arr_delay, fill = avg_arr_delay)) +
geom_bar(stat = "identity") +
scale_fill_viridis_c() +
coord_flip() + # Hacemos que las barras sean horizontales para mayor legibilidad
labs(title = "Top 20 Aeropuertos con Mayor Retraso Promedio", x = "Aeropuerto", y = "Retraso Promedio (min)") +
theme_minimal()
# Convertimos el gráfico a interactivo
ggplotly(p4)
#Análisis #En este gráfico damos a interpretar que los retrasos promedio varían considerablemente entre los principales aeropuertos de Estados Unidos. Los 20 aeropuertos con mayores retrasos destacan por factores que podrían estar relacionados con congestión, clima adverso, y capacidad operativa. #McCarran International (LAS) y Dallas/Fort Worth (DFW) son los aeropuertos con los mayores retrasos promedio, lo que sugiere desafíos en la gestión del tráfico aéreo y la alta demanda de vuelos. #Aeropuertos de alto tráfico como Hartsfield-Jackson Atlanta (ATL) y Los Angeles International (LAX), aunque figuran en la lista, muestran un desempeño más favorable, con menos retrasos en comparación con otros. #Este gráfico revela patrones importantes que pueden ayudar a aerolíneas y autoridades aeroportuarias a identificar áreas de mejora, tanto en la gestión operativa como en la capacidad de respuesta ante condiciones adversas. Además, los pasajeros pueden beneficiarse de esta información para ajustar sus expectativas y planificar mejor sus vuelos en estos aeropuertos. #En resumen, la gráfica nos da una visión clara de cuáles aeropuertos enfrentan los mayores problemas de retraso, ofreciendo un punto de partida para optimizar los procesos y mejorar la puntualidad en las operaciones.
######Box Plot: Retrasos en el Despegue por Aeropuerto (Muestra de 5000 Vuelos)
# Filtramos los vuelos con retrasos realistas y limitamos la cantidad de datos
flights_clean <- flights %>%
filter(dep_delay < 500 & dep_delay > -50) %>% # Eliminamos outliers extremos
sample_n(5000) # Tomamos una muestra de 5000 vuelos para optimizar
# Creamos el boxplot interactivo con ajuste en el eje Y
p5_optimized <- ggplot(flights_clean, aes(x = origin, y = dep_delay, fill = origin)) +
geom_boxplot(outlier.colour = "red", outlier.size = 1.5) + # Reducimos el tamaño de los outliers
scale_fill_viridis_d() + # Aplicamos la paleta de colores viridis
ylim(-100, 600) + # Ajustamos el rango del eje Y para hacerlo más grande y visible
labs(title = "Retrasos en el Despegue por Aeropuerto (Muestra de 5000 Vuelos)",
x = "Aeropuerto", y = "Retraso en la Salida (min)") +
theme_minimal()
# Convertimos el gráfico a interactivo
ggplotly(p5_optimized)
#Análisis #Los retrasos en el despegue en los aeropuertos de Nueva York revela que LaGuardia (LGA) enfrenta los mayores problemas de puntualidad, con una mediana alta de retrasos y una gran dispersión en los tiempos de despegue. Además, LGA muestra un número significativo de outliers, con vuelos que experimentan retrasos superiores a los 300 minutos. En contraste, JFK tiene un mejor desempeño, con menor variabilidad y retrasos más consistentes, lo que indica una gestión operativa más eficiente. Newark (EWR) se sitúa entre ambos aeropuertos, mostrando una mediana de retraso moderada y una dispersión intermedia. Estos hallazgos sugieren que LGA enfrenta desafíos operacionales que afectan su puntualidad, mientras que JFK destaca por su consistencia en las salidas. La información puede ser valiosa para aerolíneas y gestores aeroportuarios para mejorar la eficiencia y reducir los retrasos.
###Gráfico de Área: Retrasos Promedio por Mes
# Agrupamos por mes y calculamos el retraso promedio
flights_by_month <- flights %>%
group_by(month) %>%
summarise(avg_arr_delay = mean(arr_delay, na.rm = TRUE))
# Creamos el gráfico de área con líneas de tendencia
p6 <- ggplot(flights_by_month, aes(x = month, y = avg_arr_delay, fill = avg_arr_delay)) +
geom_area(alpha = 0.6, color = "blue", fill = "lightblue") + # Mejoramos el diseño del área
geom_line(size = 1, color = "darkblue") + # Añadimos una línea de tendencia
scale_x_continuous(breaks = 1:12, labels = month.name) + # Convertimos los meses en texto
labs(title = "Retrasos Promedio por Mes", x = "Mes", y = "Retraso Promedio (min)") +
theme_minimal()
## 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.
# Convertimos el gráfico a interactivo
ggplotly(p6)
#Análisis #En el Grafico nos muestra cómo varían los retrasos promedio en la llegada de vuelos a lo largo del año en los aeropuertos de Nueva York. Observamos que los meses con mayor cantidad de retrasos tienden a coincidir con la temporada alta de viajes o condiciones climáticas adversas, como los meses de invierno y verano. Los picos en el gráfico indican momentos en los que las aerolíneas enfrentan más dificultades para mantener la puntualidad, lo que puede estar relacionado con congestión aérea o problemas operativos. La línea de tendencia resalta las fluctuaciones en los retrasos mes a mes, ayudando a identificar patrones estacionales que podrían ser útiles para las aerolíneas y aeropuertos en su planificación operativa y logística.