Análise Exploratória de Atrasos e Cancelamentos de Voos Comerciais
1 Introdução
1.1 Declaração do Problema
O transporte aéreo desempenha papel fundamental na mobilidade de pessoas e mercadorias. Entretanto, atrasos e cancelamentos de voos representam desafios operacionais que afetam passageiros, companhias aéreas e aeroportos.
O problema central investigado neste projeto é:
Quais fatores estão mais associados aos atrasos e cancelamentos de voos comerciais?
Compreender esses padrões pode auxiliar companhias aéreas e gestores aeroportuários na identificação de gargalos operacionais e na melhoria da eficiência operacional.
1.2 Abordagem Adotada
Para responder a essa questão será utilizado o conjunto de dados Flight Delays Dataset, disponível publicamente na plataforma Kaggle.
O projeto utiliza três conjuntos de dados:
- flights.csv
- airlines.csv
- airports.csv
A metodologia empregada será composta por:
- Preparação dos dados;
- Integração das tabelas;
- Análise exploratória;
- Extração de insights.
1.3 Técnica Proposta
A análise será conduzida inteiramente em R utilizando o ecossistema tidyverse.
Serão empregadas as seguintes técnicas:
- Análise univariada;
- Análise bivariada;
- Criação de variáveis derivadas;
- Integração de múltiplas tabelas;
- Visualizações gráficas e interativas.
1.4 Utilidade para os Clientes
Os resultados desta análise poderão auxiliar:
- Companhias aéreas;
- Administradores aeroportuários;
- Passageiros;
- Pesquisadores da área de transporte.
2 Pacotes Requeridos
3 Preparação dos Dados
3.1 Fonte dos Dados
O conjunto de dados utilizado neste projeto é o Flight Delays Dataset, disponível publicamente na plataforma Kaggle:
https://www.kaggle.com/datasets/usdot/flight-delays
O conjunto é composto por três arquivos:
- flights.csv
- airlines.csv
- airports.csv
3.2 Descrição dos Dados Originais
O conjunto de dados possui informações reais sobre voos comerciais realizados nos Estados Unidos.
As tabelas utilizadas possuem as seguintes finalidades:
flights.csv
Contém informações sobre os voos realizados, incluindo horários, atrasos, cancelamentos, aeroportos de origem e destino e companhia aérea.
airlines.csv
Contém os códigos e nomes das companhias aéreas.
airports.csv
Contém informações dos aeroportos utilizados nos voos.
Algumas peculiaridades importantes identificadas:
- Os dados estão distribuídos em múltiplas tabelas.
- Existem códigos IATA que precisam ser traduzidos.
- Existem valores ausentes relacionados a atrasos e cancelamentos.
- Datas e horários estão separados em múltiplas colunas.
- Será necessária a criação de variáveis derivadas para facilitar as análises.
3.3 Importação dos Dados
## Rows: 14 Columns: 2
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (2): IATA_CODE, AIRLINE
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
## Rows: 322 Columns: 7
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): IATA_CODE, AIRPORT, CITY, STATE, COUNTRY
## dbl (2): LATITUDE, LONGITUDE
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
## Rows: 5819079 Columns: 31
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (11): AIRLINE, TAIL_NUMBER, ORIGIN_AIRPORT, DESTINATION_AIRPORT, SCHEDUL...
## dbl (20): YEAR, MONTH, DAY, DAY_OF_WEEK, FLIGHT_NUMBER, DEPARTURE_DELAY, TAX...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Os três conjuntos de dados foram importados com sucesso para o ambiente R. A tabela flights.csv representa a base principal do projeto, enquanto airlines.csv e airports.csv serão utilizadas para complementar as análises por meio da integração dos dados.
## [1] 14 2
## [1] 322 7
## [1] 5819079 31
3.4 Estrutura dos Dados
## Rows: 14
## Columns: 2
## $ IATA_CODE <chr> "UA", "AA", "US", "F9", "B6", "OO", "AS", "NK", "WN", "DL", …
## $ AIRLINE <chr> "United Air Lines Inc.", "American Airlines Inc.", "US Airwa…
## Rows: 322
## Columns: 7
## $ IATA_CODE <chr> "ABE", "ABI", "ABQ", "ABR", "ABY", "ACK", "ACT", "ACV", "ACY…
## $ AIRPORT <chr> "Lehigh Valley International Airport", "Abilene Regional Air…
## $ CITY <chr> "Allentown", "Abilene", "Albuquerque", "Aberdeen", "Albany",…
## $ STATE <chr> "PA", "TX", "NM", "SD", "GA", "MA", "TX", "CA", "NJ", "AK", …
## $ COUNTRY <chr> "USA", "USA", "USA", "USA", "USA", "USA", "USA", "USA", "USA…
## $ LATITUDE <dbl> 40.65236, 32.41132, 35.04022, 45.44906, 31.53552, 41.25305, …
## $ LONGITUDE <dbl> -75.44040, -99.68190, -106.60919, -98.42183, -84.19447, -70.…
## Rows: 5,819,079
## Columns: 31
## $ YEAR <dbl> 2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 20…
## $ MONTH <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ DAY <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ DAY_OF_WEEK <dbl> 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,…
## $ AIRLINE <chr> "AS", "AA", "US", "AA", "AS", "DL", "NK", "US", "A…
## $ FLIGHT_NUMBER <dbl> 98, 2336, 840, 258, 135, 806, 612, 2013, 1112, 117…
## $ TAIL_NUMBER <chr> "N407AS", "N3KUAA", "N171US", "N3HYAA", "N527AS", …
## $ ORIGIN_AIRPORT <chr> "ANC", "LAX", "SFO", "LAX", "SEA", "SFO", "LAS", "…
## $ DESTINATION_AIRPORT <chr> "SEA", "PBI", "CLT", "MIA", "ANC", "MSP", "MSP", "…
## $ SCHEDULED_DEPARTURE <chr> "0005", "0010", "0020", "0020", "0025", "0025", "0…
## $ DEPARTURE_TIME <chr> "2354", "0002", "0018", "0015", "0024", "0020", "0…
## $ DEPARTURE_DELAY <dbl> -11, -8, -2, -5, -1, -5, -6, 14, -11, 3, -6, -8, 0…
## $ TAXI_OUT <dbl> 21, 12, 16, 15, 11, 18, 11, 13, 17, 12, 12, 21, 18…
## $ WHEELS_OFF <chr> "0015", "0014", "0034", "0030", "0035", "0038", "0…
## $ SCHEDULED_TIME <dbl> 205, 280, 286, 285, 235, 217, 181, 273, 195, 221, …
## $ ELAPSED_TIME <dbl> 194, 279, 293, 281, 215, 230, 170, 249, 193, 203, …
## $ AIR_TIME <dbl> 169, 263, 266, 258, 199, 206, 154, 228, 173, 186, …
## $ DISTANCE <dbl> 1448, 2330, 2296, 2342, 1448, 1589, 1299, 2125, 14…
## $ WHEELS_ON <chr> "0404", "0737", "0800", "0748", "0254", "0604", "0…
## $ TAXI_IN <dbl> 4, 4, 11, 8, 5, 6, 5, 8, 3, 5, 4, 7, 4, 5, 4, 4, 4…
## $ SCHEDULED_ARRIVAL <chr> "0430", "0750", "0806", "0805", "0320", "0602", "0…
## $ ARRIVAL_TIME <chr> "0408", "0741", "0811", "0756", "0259", "0610", "0…
## $ ARRIVAL_DELAY <dbl> -22, -9, 5, -9, -21, 8, -17, -10, -13, -15, -30, -…
## $ DIVERTED <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ CANCELLED <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ CANCELLATION_REASON <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
## $ AIR_SYSTEM_DELAY <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
## $ SECURITY_DELAY <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
## $ AIRLINE_DELAY <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
## $ LATE_AIRCRAFT_DELAY <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
## $ WEATHER_DELAY <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
3.5 Principais Desafios dos Dados
Durante a análise preliminar foram identificados alguns desafios importantes:
- Integração entre três tabelas distintas;
- Presença de códigos IATA que exigem tradução para nomes de aeroportos e companhias aéreas;
- Existência de valores ausentes em variáveis relacionadas aos atrasos;
- Necessidade de conversão de horários armazenados como texto;
- Criação de variáveis derivadas para análises temporais;
- Volume elevado de dados, superior a cinco milhões de registros.