R Markdown

  1. Instalación y carga de librerías
 #install.packages("tidyverse")
 #install.packages("pacman")
 #install.packages("nycflights13") #Acá estan los datos que vamos a utilizar
 #install.packages("ggplot2")
 #install.packages("dplyr")

library(tidyverse)
## ── 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(pacman)
library(dplyr)
library(ggplot2)
library(nycflights13)
  1. Exploración inicial de los datos
head(flights)
## # A tibble: 6 × 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
## # ℹ 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>
head(airlines)
## # A tibble: 6 × 2
##   carrier name                    
##   <chr>   <chr>                   
## 1 9E      Endeavor Air Inc.       
## 2 AA      American Airlines Inc.  
## 3 AS      Alaska Airlines Inc.    
## 4 B6      JetBlue Airways         
## 5 DL      Delta Air Lines Inc.    
## 6 EV      ExpressJet Airlines Inc.
head(airports)
## # A tibble: 6 × 8
##   faa   name                             lat   lon   alt    tz dst   tzone      
##   <chr> <chr>                          <dbl> <dbl> <dbl> <dbl> <chr> <chr>      
## 1 04G   Lansdowne Airport               41.1 -80.6  1044    -5 A     America/Ne…
## 2 06A   Moton Field Municipal Airport   32.5 -85.7   264    -6 A     America/Ch…
## 3 06C   Schaumburg Regional             42.0 -88.1   801    -6 A     America/Ch…
## 4 06N   Randall Airport                 41.4 -74.4   523    -5 A     America/Ne…
## 5 09J   Jekyll Island Airport           31.1 -81.4    11    -5 A     America/Ne…
## 6 0A9   Elizabethton Municipal Airport  36.4 -82.2  1593    -5 A     America/Ne…
head(planes)
## # A tibble: 6 × 9
##   tailnum  year type               manufacturer model engines seats speed engine
##   <chr>   <int> <chr>              <chr>        <chr>   <int> <int> <int> <chr> 
## 1 N10156   2004 Fixed wing multi … EMBRAER      EMB-…       2    55    NA Turbo…
## 2 N102UW   1998 Fixed wing multi … AIRBUS INDU… A320…       2   182    NA Turbo…
## 3 N103US   1999 Fixed wing multi … AIRBUS INDU… A320…       2   182    NA Turbo…
## 4 N104UW   1999 Fixed wing multi … AIRBUS INDU… A320…       2   182    NA Turbo…
## 5 N10575   2002 Fixed wing multi … EMBRAER      EMB-…       2    55    NA Turbo…
## 6 N105UW   1999 Fixed wing multi … AIRBUS INDU… A320…       2   182    NA Turbo…
head(weather)
## # A tibble: 6 × 15
##   origin  year month   day  hour  temp  dewp humid wind_dir wind_speed wind_gust
##   <chr>  <int> <int> <int> <int> <dbl> <dbl> <dbl>    <dbl>      <dbl>     <dbl>
## 1 EWR     2013     1     1     1  39.0  26.1  59.4      270      10.4         NA
## 2 EWR     2013     1     1     2  39.0  27.0  61.6      250       8.06        NA
## 3 EWR     2013     1     1     3  39.0  28.0  64.4      240      11.5         NA
## 4 EWR     2013     1     1     4  39.9  28.0  62.2      250      12.7         NA
## 5 EWR     2013     1     1     5  39.0  28.0  64.4      260      12.7         NA
## 6 EWR     2013     1     1     6  37.9  28.0  67.2      240      11.5         NA
## # ℹ 4 more variables: precip <dbl>, pressure <dbl>, visib <dbl>,
## #   time_hour <dttm>
vuelos <- flights
summary(vuelos) 
##       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  
## 
aerolinea <- airlines
summary(aerolinea)
##    carrier              name          
##  Length:16          Length:16         
##  Class :character   Class :character  
##  Mode  :character   Mode  :character
aeropuerto <- airports
summary(aeropuerto)
##      faa                name                lat             lon         
##  Length:1458        Length:1458        Min.   :19.72   Min.   :-176.65  
##  Class :character   Class :character   1st Qu.:34.26   1st Qu.:-119.19  
##  Mode  :character   Mode  :character   Median :40.09   Median : -94.66  
##                                        Mean   :41.65   Mean   :-103.39  
##                                        3rd Qu.:45.07   3rd Qu.: -82.52  
##                                        Max.   :72.27   Max.   : 174.11  
##       alt                tz              dst               tzone          
##  Min.   : -54.00   Min.   :-10.000   Length:1458        Length:1458       
##  1st Qu.:  70.25   1st Qu.: -8.000   Class :character   Class :character  
##  Median : 473.00   Median : -6.000   Mode  :character   Mode  :character  
##  Mean   :1001.42   Mean   : -6.519                                        
##  3rd Qu.:1062.50   3rd Qu.: -5.000                                        
##  Max.   :9078.00   Max.   :  8.000
aviones <- planes
summary(aviones)
##    tailnum               year          type           manufacturer      
##  Length:3322        Min.   :1956   Length:3322        Length:3322       
##  Class :character   1st Qu.:1997   Class :character   Class :character  
##  Mode  :character   Median :2001   Mode  :character   Mode  :character  
##                     Mean   :2000                                        
##                     3rd Qu.:2005                                        
##                     Max.   :2013                                        
##                     NA's   :70                                          
##     model              engines          seats           speed      
##  Length:3322        Min.   :1.000   Min.   :  2.0   Min.   : 90.0  
##  Class :character   1st Qu.:2.000   1st Qu.:140.0   1st Qu.:107.5  
##  Mode  :character   Median :2.000   Median :149.0   Median :162.0  
##                     Mean   :1.995   Mean   :154.3   Mean   :236.8  
##                     3rd Qu.:2.000   3rd Qu.:182.0   3rd Qu.:432.0  
##                     Max.   :4.000   Max.   :450.0   Max.   :432.0  
##                                                     NA's   :3299   
##     engine         
##  Length:3322       
##  Class :character  
##  Mode  :character  
##                    
##                    
##                    
## 
clima <- weather
summary(clima)
##     origin               year          month             day       
##  Length:26115       Min.   :2013   Min.   : 1.000   Min.   : 1.00  
##  Class :character   1st Qu.:2013   1st Qu.: 4.000   1st Qu.: 8.00  
##  Mode  :character   Median :2013   Median : 7.000   Median :16.00  
##                     Mean   :2013   Mean   : 6.504   Mean   :15.68  
##                     3rd Qu.:2013   3rd Qu.: 9.000   3rd Qu.:23.00  
##                     Max.   :2013   Max.   :12.000   Max.   :31.00  
##                                                                    
##       hour            temp             dewp           humid       
##  Min.   : 0.00   Min.   : 10.94   Min.   :-9.94   Min.   : 12.74  
##  1st Qu.: 6.00   1st Qu.: 39.92   1st Qu.:26.06   1st Qu.: 47.05  
##  Median :11.00   Median : 55.40   Median :42.08   Median : 61.79  
##  Mean   :11.49   Mean   : 55.26   Mean   :41.44   Mean   : 62.53  
##  3rd Qu.:17.00   3rd Qu.: 69.98   3rd Qu.:57.92   3rd Qu.: 78.79  
##  Max.   :23.00   Max.   :100.04   Max.   :78.08   Max.   :100.00  
##                  NA's   :1        NA's   :1       NA's   :1       
##     wind_dir       wind_speed         wind_gust         precip        
##  Min.   :  0.0   Min.   :   0.000   Min.   :16.11   Min.   :0.000000  
##  1st Qu.:120.0   1st Qu.:   6.905   1st Qu.:20.71   1st Qu.:0.000000  
##  Median :220.0   Median :  10.357   Median :24.17   Median :0.000000  
##  Mean   :199.8   Mean   :  10.517   Mean   :25.49   Mean   :0.004469  
##  3rd Qu.:290.0   3rd Qu.:  13.809   3rd Qu.:28.77   3rd Qu.:0.000000  
##  Max.   :360.0   Max.   :1048.361   Max.   :66.75   Max.   :1.210000  
##  NA's   :460     NA's   :4          NA's   :20778                     
##     pressure          visib          time_hour                  
##  Min.   : 983.8   Min.   : 0.000   Min.   :2013-01-01 01:00:00  
##  1st Qu.:1012.9   1st Qu.:10.000   1st Qu.:2013-04-01 21:30:00  
##  Median :1017.6   Median :10.000   Median :2013-07-01 14:00:00  
##  Mean   :1017.9   Mean   : 9.255   Mean   :2013-07-01 18:26:37  
##  3rd Qu.:1023.0   3rd Qu.:10.000   3rd Qu.:2013-09-30 13:00:00  
##  Max.   :1042.1   Max.   :10.000   Max.   :2013-12-30 18:00:00  
##  NA's   :2729
  1. Respuestas a las preguntas

3.1 Número de vuelos por aerolínea

vuelos_por_aerolinea <- vuelos %>%
  group_by(carrier) %>%
  summarise(total_vuelos = n()) %>%
  left_join(airlines, by = "carrier") %>%
  arrange(desc(total_vuelos))

vuelos_por_aerolinea
## # A tibble: 16 × 3
##    carrier total_vuelos name                       
##    <chr>          <int> <chr>                      
##  1 UA             58665 United Air Lines Inc.      
##  2 B6             54635 JetBlue Airways            
##  3 EV             54173 ExpressJet Airlines Inc.   
##  4 DL             48110 Delta Air Lines Inc.       
##  5 AA             32729 American Airlines Inc.     
##  6 MQ             26397 Envoy Air                  
##  7 US             20536 US Airways Inc.            
##  8 9E             18460 Endeavor Air Inc.          
##  9 WN             12275 Southwest Airlines Co.     
## 10 VX              5162 Virgin America             
## 11 FL              3260 AirTran Airways Corporation
## 12 AS               714 Alaska Airlines Inc.       
## 13 F9               685 Frontier Airlines Inc.     
## 14 YV               601 Mesa Airlines Inc.         
## 15 HA               342 Hawaiian Airlines Inc.     
## 16 OO                32 SkyWest Airlines Inc.

Podemos ver lops vuelos de las aerolíneas fueron:

  1. United Air Lines Inc. → 58,665 vuelos
  2. ExpressJet Airlines Inc. → 54,055 vuelos
  3. JetBlue Airways → 53,490 vuelos
  4. Delta Air Lines Inc. → 48,725 vuelos
  5. American Airlines Inc. → 32,729 vuelos
  6. Southwest Airlines Co. → 1,220 vuelos
  7. (otras con menor participación: Frontier, Hawaiian, etc.)

3.2 ¿Cuáles aerolíneas operaron más vuelos durante el año 2013?

top_aerolineas <- vuelos_por_aerolinea %>%
  top_n(5, total_vuelos)

top_aerolineas
## # A tibble: 5 × 3
##   carrier total_vuelos name                    
##   <chr>          <int> <chr>                   
## 1 UA             58665 United Air Lines Inc.   
## 2 B6             54635 JetBlue Airways         
## 3 EV             54173 ExpressJet Airlines Inc.
## 4 DL             48110 Delta Air Lines Inc.    
## 5 AA             32729 American Airlines Inc.

Ordenando de mayor a menor número de vuelos:

  1. United Air Lines Inc. – 58,665 vuelos
  2. ExpressJet Airlines Inc. – 54,055 vuelos
  3. JetBlue Airways – 53,490 vuelos
  4. Delta Air Lines Inc. – 48,725 vuelos
  5. American Airlines Inc. – 32,729 vuelos

Estas 5 aerolíneas concentran la mayoría de los vuelos que salieron desde Nueva York en 2013.

3.3 ¿Cuál es el promedio, valor máximo y mínimo de lo retrasos de los vuelos?, ¿Cómo es el comportamiento por Aerolínea, realice un análisis comparativo.

resumen_retrasos <- vuelos %>%
  summarise(
    promedio_salida = mean(dep_delay, na.rm = TRUE),
    max_salida = max(dep_delay, na.rm = TRUE),
    min_salida = min(dep_delay, na.rm = TRUE),
    promedio_llegada = mean(arr_delay, na.rm = TRUE),
    max_llegada = max(arr_delay, na.rm = TRUE),
    min_llegada = min(arr_delay, na.rm = TRUE)
  )
resumen_retrasos
## # A tibble: 1 × 6
##   promedio_salida max_salida min_salida promedio_llegada max_llegada min_llegada
##             <dbl>      <dbl>      <dbl>            <dbl>       <dbl>       <dbl>
## 1            12.6       1301        -43             6.90        1272         -86

Se calcularon los retrasos en salida (dep_delay) y llegada (arr_delay):

Retraso en salida:

- Promedio: 12.64 min

- Máximo: 1,301 min

- Mínimo: -43 min

Retraso en llegada:

- Promedio: 6.90 min

- Máximo: 1,272 min

- Mínimo: -86 min

Los valores negativos representan vuelos que salieron o llegaron antes de lo programado.

ggplot(vuelos %>% left_join(airlines, by = "carrier"),
       aes(x = reorder(name, arr_delay, median, na.rm = TRUE), y = arr_delay)) +
  geom_boxplot(outlier.alpha = 0.2, fill = "skyblue") +
  coord_flip() +
  labs(x = "Aerolínea", y = "Retraso en llegada (min)",
       title = "Retrasos en vuelos por Aerolínea (2013)") +
  theme_minimal()
## Warning: Removed 9430 rows containing non-finite outside the scale range
## (`stat_boxplot()`).

Con los boxplots de retrasos por aerolínea se observa:

  1. La mayoría de aerolíneas tienen medianas cercanas a 0, lo que indica puntualidad en promedio.

  2. Hawaiian Airlines presenta los retrasos más bajos (incluso negativos), mostrando buena puntualidad.

  3. Aerolíneas como ExpressJet y AirTran muestran más dispersión, con valores atípicos muy altos.

  4. El comportamiento varía, pero en general todas las aerolíneas presentan algunos vuelos con retrasos extremos.

Conclusión: Aunque la puntualidad media es aceptable, existen diferencias entre aerolíneas; Hawaiian destaca como la más puntual, mientras que ExpressJet muestra más retrasos.

3.4 ¿Cuáles son las aerolíneas más puntuales?, lo anterior depende del aeropuerto de origen?

puntualidad <- flights %>%
  group_by(origin, carrier) %>%
  summarise(retraso_promedio = mean(arr_delay, na.rm = TRUE)) %>%
  left_join(airlines, by = "carrier")
## `summarise()` has grouped output by 'origin'. You can override using the
## `.groups` argument.
ggplot(puntualidad, aes(x = reorder(name, retraso_promedio), y = retraso_promedio, fill = origin)) +
  geom_col(position = "dodge") +
  coord_flip() +
  labs(title = "Retraso promedio por aerolínea y aeropuerto de origen",
       x = "Aerolínea", y = "Retraso promedio llegada (min)", fill = "Aeropuerto")

Las aerolíneas más puntuales son Hawaiian, Alaska y Virgin America.

Sin embargo, la puntualidad también depende del aeropuerto de origen: en general, Newark tiene peores resultados que JFK y LGA.

3.5 Compare los retrasos entre los aeropuertos y aerolíneas, ¿influye la distancia del viaje?

comparacion <- flights %>%
  left_join(airlines, by = "carrier")

ggplot(comparacion, aes(x = distance, y = arr_delay, color = name)) +
  geom_point(alpha = 0.2) +
  geom_smooth(method = "lm", se = FALSE) +
  facet_wrap(~ origin) +
  xlim(0, 2000) +
  labs(title = "Relación entre retraso y distancia",
       x = "Distancia (millas)", y = "Retraso llegada (min)", color = "Aerolínea")
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 60612 rows containing non-finite outside the scale range
## (`stat_smooth()`).
## Warning: Removed 60612 rows containing missing values or values outside the scale range
## (`geom_point()`).

Sí hay diferencias entre aeropuertos y aerolíneas en los retrasos, pero la distancia del viaje no es un factor determinante: vuelos cortos y largos pueden sufrir retrasos dependiendo más de la gestión del aeropuerto y la aerolínea.

3.6 ¿Teniendo en cuenta la variable retrasos, se quiere conocer si existe una relación entre el año de fabricación del avión y los retrasos?

retraso_planes <- flights %>%
  left_join(planes %>% select(tailnum, anio_fabricacion = year), by = "tailnum") %>%
  filter(!is.na(anio_fabricacion), anio_fabricacion >= 1950)

ggplot(retraso_planes, aes(x = anio_fabricacion, y = arr_delay)) +
  geom_point(alpha = 0.3, color = "darkblue") +
  geom_smooth(method = "lm", se = TRUE, color = "red") +
  labs(title = "Año de fabricación del avión vs retraso en llegada",
       x = "Año de fabricación", y = "Retraso en llegada (min)")
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 5011 rows containing non-finite outside the scale range
## (`stat_smooth()`).
## Warning: Removed 5011 rows containing missing values or values outside the scale range
## (`geom_point()`).

No se observa relación entre el año de fabricación del avión y los retrasos. Factores externos (clima, aeropuertos, gestión de aerolíneas) son mas influyentes que la edad del avión.

3.7 ¿Existe relación entre la distancia y el retraso en la llegada?, ¿Existen diferencias entre aerolíneas?

ggplot(comparacion, aes(x = distance, y = arr_delay)) +
  geom_point(alpha = 0.2, color = "darkgreen") +
  geom_smooth(method = "lm", se = FALSE, color = "black") +
  facet_wrap(~ name) +
  labs(title = "Distancia vs retraso en llegada por aerolínea",
       x = "Distancia (millas)", y = "Retraso en llegada (min)")
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 9430 rows containing non-finite outside the scale range
## (`stat_smooth()`).
## Warning: Removed 9430 rows containing missing values or values outside the scale range
## (`geom_point()`).

La distancia tiene un efecto moderado ya que los vuelos largos suelen tener menores retrasos promedio que vuelos cortos. Sin embargo, las diferencias más claras se dan entre aerolíneas, ya que algunas son más puntuales que otras.

3.8 ¿Existe relación entre las variables climáticas, por ejemplo, velocidad del viento y los retrasos en las salidas?

vuelos_clima <- left_join(vuelos, clima,
                          by = c("year", "month", "day", "hour", "origin"))

retraso_viento <- vuelos_clima %>%
  filter(!is.na(dep_delay), !is.na(wind_speed)) %>%
  group_by(wind_speed) %>%
  summarise(promedio_retraso = mean(dep_delay, na.rm = TRUE))

barplot(setNames(retraso_viento$promedio_retraso, retraso_viento$wind_speed),
        main = "Retraso promedio vs velocidad del viento",
        xlab = "Velocidad del viento (mph)",
        ylab = "Retraso promedio salida (min)")

Sí, hay relación: al unir vuelos y clima y agrupar por velocidad del viento, se ve que cuando el viento es más fuerte los retrasos en la salida aumentan.

3.9 ¿Cómo es el comportamiento de los retrasos por mes, se podría analizar teniendo en cuenta la estación del año?

retraso_mes <- vuelos %>%
  filter(!is.na(dep_delay)) %>%
  group_by(month) %>%
  summarise(promedio_retraso = mean(dep_delay, na.rm = TRUE))

barplot(setNames(retraso_mes$promedio_retraso, retraso_mes$month),
        main = "Retraso promedio en salida por mes",
        xlab = "Mes",
        ylab = "Retraso promedio (min)")

El gráfico muestra que Agrupando los vuelos por mes y su promedio se ve que en junio,julio y diciembre los retrasos son más altos y en septiembre y octubre más bajos, es decir que sí hay relación en el tiempo de retraso dependiendo de la estación del año

3.10 ¿Existe relación en la precipitación y los retrasos en el arribo?

vuelos_clima2 <- left_join(vuelos, clima,
                           by = c("year", "month", "day", "hour", "origin"))

retraso_precip <- vuelos_clima2 %>%
  group_by(precip) %>%
  summarise(promedio_retraso = mean(arr_delay, na.rm = TRUE))

barplot(setNames(retraso_precip$promedio_retraso, retraso_precip$precip),
        main = "Retraso promedio en arribo vs precipitación",
        xlab = "Precipitación (pulgadas)",
        ylab = "Retraso promedio (min)")

Al agrupar por precipitación y calcular el retraso promedio en la llegada, se nota que cuando llueve más los retrasos aumentan. En la gráfica se ve que entre 0.35 y 0.5 pulgadas de lluvia los retrasos suben bastante, mientras que con poca precipitación los retrasos son menores.

Esto confirma que sí hay relación entre la precipitación y los retrasos en el arribo

3.11 ¿Existe relación entre las características de los aviones, por ejemplo, el número de asientos vs la distancia?

vuelos_aviones <- left_join(vuelos, aviones, by = "tailnum")

relacion_seats <- vuelos_aviones %>%
  group_by(seats) %>%
  summarise(promedio_distancia = mean(distance, na.rm = TRUE))

barplot(setNames(relacion_seats$promedio_distancia, relacion_seats$seats),
        main = "Distancia promedio vs número de asientos",
        xlab = "Número de asientos",
        ylab = "Distancia promedio (millas)")

La gráfica muestra que los aviones más grandes, con mayor número de asientos, tienden a cubrir trayectos mucho más largos, mientras que los aviones pequeños suelen usarse en vuelos cortos. Es decir, sí existe una relación clara entre el número de asientos y la distancia recorrida.