As causas de acidentes aéreos no Brasil nos últimos 10 anos — Data Science Project

Como tem sido o cenário aeronáutico no Brasil na última década? Confira esta e outras perguntas sendo respondidas com dados abertos

Uma breve introdução

Por muitos anos os aviões tem sido considerados o segundo meio de transporte mais seguro do mundo, perdendo apenas para elevadores. Cobrindo longas viagens em um curto espaço de tempo, tais aeronaves proveram diversas vantagens para o mundo, tanto comercial quanto a lazer. Infelizmente, como todo meio de transporte, as aeronaves possuem sua conta de tragédias. O último caso, até a data de publicação deste estudo foi o acidente do avião da LAMIA, que transportava o time de futebol da Chapecoense para a final de um campeonato na Colombia. O caso reacendeu discursões, destacando a segurança dos aviões e até onde a capacitação humana influência no desenrolar de um incidente.

Este projeto está disponível no Github para alterações e sugestões. Visite!

Sobre este estudo

Nesta apresentação, eu estarei utilizando dados abertos disponibilizados pela CENIPA — Centro de Investigação e Prevenção de Acidentes aeronáuticos. Tais arquivos conterão informações sobre ocorrências envolvendo aeronaves nos últimos 10 anos. Você pode acessar dados mais atualizados visitando a página oficial de Dados Abertos Brasileiros, mas, caso deseje, poderá estar realizando o download dos datasets utilizados aqui através dos links de download abaixo.

Para este estudo, utilizarei de dois datasets da CENIPA:

Ocorrencia.csv: possui os dados sobre cada ocorrência registrada nos últimos 10 anos. Código da Ocorrência, Data, Motivo da Ocorrência e Localização serão encontrados nesse conjunto de dados.

Aeronave.csv: informações agrupadas sobre as aeronaves envolvidas nas ocorrências registradas no arquivo ocorrencia.csv. Aqui serão encontrados dados como: Modelo da Aeronave, Tipo de Aeronave, Fabricante, Quantidade de Fatalidades, dentre outros.

Perguntas a serem respondidas

Dentre outros insights gerados através deste estudo, quero responder as seguintes perguntas:

  • Quais são as maiores causas de ocorrências e, eventualmente, queda de aviões?
  • Como tem sido a progressão desses casos nos últimos anos? Tiveram menos ocorrências ou mais?
  • Quais os estados que mais possuem ocorrências registradas?
  • Qual tipo de aeronave possui mais problemas? Aviões, jatos, planadores?
  • Quais as fabricantes com maior número de defeitos registrados?
  • Será que durante o pouso é mais comum ter problemas do que durante a decolagem? Ou durante a viagem em si é mais frequente surgir defeitos?
  • Viagens comerciais regulares tendem a ter mais problemas do que voos fretados?
  • Quantos incidentes com fatalidades (morte de passageiros e tripulação) temos registro nos últimos 10 anos?

Importando bibliotecas

Leitura dos datasets

Limpeza de Dados — Data Cleaning

O primeiro processo deste estudo será realizar a limpeza e tratativa dos dados. Vamos inicialmente verificar como a tabela do arquivo “ocorrencia.csv” é apresentada.

Acima você pode verificar como o arquivo está estruturado. Como disse no código anteriormente, o arquivo “ocorrencia.csv” contém 2027 linhas e 19 colunas. Ou seja, há 2027 registros de ocorrências dos últimos 10 anos.

Em seguida, quero descobrir como a linguagem Python está identificando cada coluna. Será que ele está tratando o código da ocorrência como número inteiro ou string? O comando dtypes nos responderá.

Perceba que cada linha abaixo do comando dtypes representa uma coluna do conjunto de dados "ocorrencia.csv", totalizando 19 linhas. A sua direita, está a forma como a linguagem interpreta ela. codigo_ocorrencia está, de fato, sendo tratado como número inteiro (int64), enquanto campos como localidade, UF e classificação são executados como string, ou object, como visto acima.

O próximo passo é tratar os nomes das colunas que iremos trabalhar. Antes de mais nada, vamos exibir cada uma delas, usando o comando columns da biblioteca pandas.

Ocorrencia.csv é um arquivo relativamente grande. Ele possui muitas linhas e colunas que concedem muitos detalhes a cerca da ocorrência registrada, contudo, não precisamos de todas elas para esse estudo. A fim de deixar a exibição mais apresentável e limpa, vamos eliminar algumas colunas que não precisaremos, como o numero do relatório, comando investigador e aerodromo.

Agora temos todas as colunas que precisaremos em nosso dataset, mas, ainda não estou feliz como as elas são nomeadas no arquivo. Por exemplo: poderiamos mudar a coluna codigo_ocorrencia para Código da Ocorrência, a fim de deixar a leitura e entendimento mais nítido. É exatamente isso que vamos fazer no próximo passo. Ao fim, incluirei uma nova coluna que será usada para realizar cálculos.

Vamos também remover as linhas em que o campo Código da Ocorrência está inválido. Este arquivo não possui nenhum registro inválido, mas para casos futuros, já vou deixar esse comando pronto.

Vamos ver como ficou nosso novo DataFrame.

Visualização dos Dados — Data Visualization

Certo, nosso DataFrame está mais limpo e apresentável. Agora, vamos realizar alguns Insights em torno dos dados contidos aqui.

As primeiras perguntas que eu gostaria de responder são:

Como é classificada uma ocorrência? Como se divide o total geral nestas categorias?

Para responder a isso, criei a variável tipo_ocorrencia, que armazenará as informações deste dataset agrupadas por classificação. A coluna CONTAGEMserá somada, retornando um gráfico com o total de ocorrências para cada classificação.
Ficou confuso? Vamos ver como funciona na prática!

Como podemos ver no gráfico, as ocorrências são divididas em duas principais classificações: Acidente e Incidente Grave. Vale lembrar que, embora este arquivo trate de ocorrências envolvendo aeronaves nos últimos 10 anos, não significa que todas as ocorrências foram graves ou que houveram fatalidades. Muitos dos casos são sim, de quedas de avião decorrente de alguma falha humana ou mecânica, mas você verá mais a frente que nem todos são assim.

Após classificarmos nossas ocorrências, quero responder a mais uma pergunta:

Quais os tipos de ocorrências que existem e qual foi sua frequência nestes últimos anos?

O processo de geração deste gráfico foi semelhante ao anterior: agrupei todos os dados da coluna ‘`` TIPO’ e somei os valores da coluna ‘CONTAGEM’. Então, realizei a plotagem desses dados para melhor visualização.

De acordo com os dados desse plot, as maiores causas de ocorrências são devidas a falhas de motor durante o vôo, seguida por perda de controle em solo e perda de controle em vôo. Embora tais causas nos remetam a falha humana na operação, não podemos levar isto como uma regra. Uma perda de controle em vôo pode dever-se desde incompetência técnica até falha em dispositivos como o radar. Todavia, a escala destes três principais motivos é uma causa a se preocupar.

Seguindo nosso estudo, vamos responder a próxima pergunta:

Como tem sido a progressão desses últimos anos? Tiveram menos ocorrências ou mais?

A progressão de ocorrências aéres nos últimos 10 anos tem crescido assustadoramente. Enquanto em 2006 tivemos menos que 130 ocorrências, em 2012 esse número subiu para quase 300! Vale lembrar que, embora em 2007 tenham ocorridos menos casos envolvendo aviões, este foi o ano do maior desastre aéreo já ocorrido no Brasil: o acidente do avião da TAM, que matou 194 pessoas. Mas, vamos deixar essa parte mais a frente deste estudo. A boa notícia é que, de 2012 até agora o número de ocorrências tem diminuído.

E quanto aos estados? Quais foram os que mais registraram ocorrências?

O Estado de São Paulo foi o que mais teve ocorrências de 2006 a 2015. O número preocupante é maior do que os encontrados em todos os estados da região sudeste juntos! É de conhecimento que São Paulo é o estado com mais aeroportos do Brasil o que nos permitiria cogitar que este é o motivo de tantas ocorrências, não obstante, outros estados com muitos aeroportos como: Goiás, Maranhão, Mato Grosso e Minas Gerais obtiveram um scoreconsideravelmente menor que o estado de São Paulo.

Você deve ter percebido duas informações diferentes nesse gráfico: os “estados” *** e EX. Este último, por exemplo, representa ocorrências registradas fora do território brasileiro, mas com aeronaves nacionais.

Já os três asterísticos representam locais que não tiveram sua localização identificadas (vide tabela abaixo), como a ocorrência 49474, que ocorreu em águas internacionais.

Analisando o dataset de aeronaves

Agora iremos partir para o segundo conjunto de dados deste estudo: o dataset de aeronaves. Este arquivo possui informações acerca dos veículos que estavam envolvidos nas ocorrências registradas dos últimos anos. Primeiro, realizarei a fase de limpeza dos dados (semelhante ao feito anteriormente), depois, irei trazer alguns Insights a partir da visualização dos dados. Vamos começar?

Limpeza dos Dados — Data Cleaning

O arquivo “aeronave.csv” possui 24 colunas com informações sobre os aviões. Muitos desses dados não são de grande valia para esse estudo, como matricula da aeronave, seu código, peso máximo na decolagem e categoria de registro. Inicialmente, irei removê-los do DataFrame para melhor visualização, depois, converterei colunas indevidas com seu respectivo tipo de arquivo, seguido por processos como renomeação de colunas e eliminação de dados nulos.

Abaixo, apresento as primeiras linhas do arquivo.

A seguir eu retiro as colunas que não me interessam para este projeto. Perceba no bloco abaixo como fica a tabela sem esses dados.

Feita a exclusão, é hora de visualizar como o Python está tratando cada coluna.

Um primeiro ponto que me incomodou foi o fato dele estar tratando as colunas de quantidades de assentos, ano de fabricação, quantidade de motores e quantidade de fatalidades como valores flutuantes (float64), ou seja, com pontos decimais. Ora, não existe, por exemplo, aeronaves com dois motores e meio (2,5), tampouco morrem durante um acidente três pessoas e meia (3,5). Mais a frente, durante a fase de visualização dos dados, isso será um problema, portanto, vamos tratá-lo.

Primeiro eu crio duas funções: convert_na e convert_dtype. A primeira, irá procurar por valores nulos nas linhas das colunas especificadas no momento do chamado da função, e irá preenche-las com o numeral 0. Já a segunda função irá converter esse DataFrame atualizado para um tipo específico de formato (em nosso caso, numeros inteiros). Confira abaixo maiores detalhes de cada função.

Declaradas as funções e realizada as devidas alterações nas colunas, vamos ver como o Python interpretará tais dados agora.

Como desejei, as colunas foram alteradas com sucesso de decimais para números inteiros.

O próximo passo é renomear todas as colunas restantes nesse DataFrame para podermos ter uma visualização melhor. Aproveito para converter todos os valores nulos para a sentença “NÃO IDENTIFICADO”. Isso facilitará o entendimento. O último statement do código irá incluir uma nova coluna no DataFrame: CONTAGEM, a qual irei atribuir o valor único de 1 para poder realizar alguns cálculos com mais facilidade.

Vamos visualizar como ficou o novo DataFrame.

Um fato me chamou a atenção neste arquivo de aeronaves: seu tamanho é maior que o arquivo de ocorrências. Levando em consideração que para cada aeronave há uma ocorrência, o que explicaria esse detalhe?

Para termos certeza de que os DataFrames ocorrencia.csv e aeronave.csv são diferentes, vamos conferir no código.

Sim, de fato são diferentes. A explicação para este fato é de que uma ocorrência que envolveu mais de uma aeronave terá o mesmo número de ocorrência para ambos. Vimos no gráfico acima que há casos onde aeronaves se chocaram em vôo. Para ambas foi aberta o mesmo número de ocorrências.

Vamos através do código abaixo, descobrir quantas ocorrências nós temos sob o mesmo código.

Vamos visualizar algumas das ocorrências de mesmo número

Visualização dos Dados — Data Visualization

Agora que tratamos e limpamos nosso dataset, é hora de visualizarmos os dados. Em nosso conjunto, existe a informação sobre o tipo de motor que a aeronave utiliza, sendo assim, a primeira pergunta que desejo responder é:

Qual tipo de motor mais gerou ocorrências nos últimos 10 anos?

Os motores a pistão reinam com as maiores quantidades de ocorrências geradas. Esse motor é um dos mais antigos (e até usados) motores de aeronave no mundo, muito comum em aviões monomotores. Além do baixo custo, eles são semelhantes aos motores de carro, mas tratados com os padrões de qualidade e confiança da aeronáutica, funcionando muito bem em baixar altitudes.

O segundo e terceiro lugar ficaram para os motores de Turboeixo e Turboélice. Assim como o motor de pistão, o Turboélice é caracterizado pela hélice que fica a frente do avião, utilizando a famosa Lei da Ação e Reação para movimentar a aeronave, contudo, sua diferença está em utilizar pequenos jatos para realizar tal funcionamento.

Próxima pergunta:
Será que ocorrências envolvendo aviões aparecem em menor frequência do que para helicópter e outras aeronaves?

Definitivamente, ocorrências envolvendo aviões surgem com muito mais frequência do que para helicópteros. Na verdade, a quantidade total de ocorrências de aviões é maior do que a soma de todos os outros tipos de aeronave. Até mesmo dirigíveis aparecem neste dataset!

Se temos tantas quantidades de ocorrências registradas nesses anos, quais são as fabricantes que mais aparecem nos problemas relatados?

A fabricante brasileira Neiva Industria ocupa 19,6% das causas de ocorrências envolvendo aeronaves, seguida pela Cessna Aircraft e Piper Aircraft. A Neiva Industria Aeronáutica tem estado há 50 anos no mercado produzindo, principalmente, aviões de motores a pistão voltados para agricultura. Já a Cessna Aircraft é uma empresa americana, sediada no Kansas, que possui um inventário mais abrangente de aeronaves, produzindo desde monomotores a aviões a jato.

A quantidade de ocorrências para essas duas fabricantes mostra a diferença gritante em relação as outras. A Neiva Industria, por exemplo, possui uma diferença próxima de 150% em relação ao terceiro lugar: a Piper Aircraft. Tais indicadores seriam uma boa forma de reavaliar o processo de montagem, manutenção e qualidade de peças dessas fabricantes.

Um outro questionamento que podemos fazer é:

Viagens comerciais regulares tendem a ter mais problemas do que voos fretados?

Muitas pessoas tem medo de voar. Isso é fato, contudo, esses dados mostrados no gráfico acima mostram que esse medo pode ser diminuído. A esmagadora maioria de ocorrências registradas são atribuídas a aeronaves particulares, que podem ser desde monomotores e ultraleves até aviões particulares. O transporte Regular — aquele que companhias aéreas oferecem para o público em geral -, possui menos de 100 ocorrências nos últimos anos. Tais dados explicam o porquê da Neiva Industria ser uma das fabricantes que mais possuem ocorrência, já que a grande fatia desta escala é atribuida aos principais tipos de avião que ela produz.

Vamos agora olhar para o momento em que as ocorrências surgiram. Com isso, quero saber se é mais propício ocorrer um problema durante o pouso, decolagem ou outro momento da viagem.

De fato, o momento do pouso é um dos mais importantes da viagem. Cerca de 400 ocorrências, das mais de 2000 registradas ocorreram nesta fase. Contudo, vale ressaltar que a decolagem está consideravelmente próxima ao pouso, fazendo dela uma operação delicada também. Já a fase de cruzeiro, que se encontra em terceira posição, é o momento da viagem em si, quando o avião está trafegando da origem ao destino.

Como já disse anteriormente, nem toda ocorrência gerada resulta em fatalidades e danos na aeronave. Uma ocorrência, como o nome já diz, se refere ao fato de que algum evento não previsto ocorreu.

Não obstante, esta é uma pergunta interessante a se responder. Afinal, quais são os tipos de danos que podem ocorrer a uma aeronave? Qual a frequência?

Danos substanciais são aqueles que danificaram significantemente a aeronave. Há casos em que a fuselagem foi danificada, uma asa, turbina, hélice, dentre outros. Este tipo é o que mais surgiu durante esses anos, seguido por danos em que a aeronave ficou totalmente destruída.

Por fim, quero saber em quantas ocorrências houveram fatalidades. Para ter essa informação, agruparei os casos onde pessoas morreram por quantidade, a fim de saber não só quantas fatalidades houveram nesta última década, mas também a sua frequência.

Para esse gráfico, ignorei casos onde não houveram fatalidades, que felizmente, é a grande maioria. Os dados restantes geraram o gráfico acima, que mostra que a maior frequência de mortes é atribuída a apenas uma pessoa. Novamente, lembre-se que a maioria das ocorrências registradas são de aviões a pistão, aeronaves estas presentes na linha de produção da fabricante com mais ocorrências: a Neiva Industria. Aeronaves monomotores e ultraleves possuem uma quantidade de assentos bem limitada — cerca de um ou dois. Tais quantidades são justamente encontradas nas duas primeiras posições do gráfico.

Mas, dois casos me chamaram a atenção. Ao final do gráfico, é possível visualizar que há um caso onde morreram 154 pessoas e outro onde 199 fatalidades ocorreram. Sinceramente, não me lembrava de nenhum caso nos últimos anos envolvendo uma quantidade tão grande de mortes, sendo assim, decidi investigar.

Abaixo, você pode conferir as duas linhas onde essas ocorrências se encontram na tabela.

Após uma pesquisa, lembrei-me de qual caso foi este. Trata-se do desastre envolvendo um Airbus A-320 no ano de 2007 em São Paulo, quando este tentou, sem sucesso, pousar na pista principal do aeroporto de Congonhas. Sob chuva, a aeronave ultrapassou os limites do aeroporto, atravessou a avenida Washington Luiz — chegando a tocar em um táxi durante o trajeto — e acabou se chocando contra um prédio da TAM Express. Você pode conferir maiores informações sobre esse trágico acidente que matou 199 pessoas clicando aqui

O segundo pior caso completou 10 anos em 29/09/2016, quando um boeing da Gol chocou-se contra jato Legacy que se dirigia para os Estados Unidos. Com a queda, a aeronave caiu em uma mata fechada no Mato Grosso do Sul, matando 154 pessoas a bordo, incluindo passageiros e tripulação. Confira maiores detalhes clicando aqui.

Conclusão

Aviões e aeronaves não estão insentas de sofrerem acidentes e problemas. A história tem registros de casos onde centenas de pessoas morreram e milhares de ocorrências foram geradas. Não obstante, vale lembrar que, embora o impacto gerado por uma queda de avião seja grande, sua probabilidade de ocorrer ainda é pequena.

Mas, vamos levar em consideração outros meios de transporte, como o carro e moto. Apenas no Brasil em 2013, 41 mil pessoas morreram devido a acidentes de trânsito, fazendo do Brasil o país com maior número de mortes no trânsito da América do Sul. Já no mundo, tais acidentes são responsáveis por mais de 1,25 milhão de fatalidades, tendo uma frequência maior em países como China, EUA e Índia.

Sim, de fato aviões não são indestrutíveis ou absolutamente seguros, mas, mesmo em meio ao cenário atual, é uma das formas mais seguras de viajar.

Curtiu esse estudo? Aproveite para passar no meu blog e ver estes e outras notícias e projetos de Data Science. Aproveite e me siga no Twitter para que possamos trocar idéias. Será um prazer ter você lá. Até mais!

Referências

https://nacoesunidas.org/oms-brasil-e-o-pais-com-maior-numero-de-mortes-de-transito-por-habitante-da-america-do-sul/
http://www.un.org/apps/news/story.asp?NewsID=52300#.ViZ1yNKrSM-
http://g1.globo.com/mato-grosso/noticia/2016/09/acidente-com-aviao-da-gol-que-matou-154-pessoas-completa-10-anos.html
http://noticias.uol.com.br/ultnot/especial/acidentecongonhas/ultnot/2007/07/27/ult5258u401.jhtm
http://globoesporte.globo.com/sc/futebol/times/chapecoense/acidente/

--

--