Durante a Segunda Guerra Mundial, a Força Aérea Aliada enfrentou um problema crítico: como reforçar seus aviões para minimizar as perdas em combate. A abordagem inicial foi analisar os aviões que retornavam das missões e blindar as áreas que apresentavam mais buracos de bala. O estatístico Abraham Wald, no entanto, ofereceu uma perspectiva contraintuitiva e genial. Ele argumentou que os reforços não deveriam ser colocados onde os buracos estavam, mas sim onde eles não estavam. A sua lógica era impecável: os aviões que retornavam mostravam as áreas onde podiam ser atingidos e ainda assim sobreviver. Os dados verdadeiramente importantes eram os ausentes, ou seja, os buracos nos aviões que não voltaram, que indicavam as áreas vitais que, se atingidas, derrubavam a aeronave.

Esta história é uma metáfora poderosa para um dos desafios mais onipresentes e subestimados em Data Science e Machine Learning: os valores ausentes. Representados como NaN (Not a Number), None ou NA, esses “buracos” em nossos datasets não são meras inconveniências. São uma ameaça silenciosa que, se não tratada com rigor e conhecimento, pode comprometer a integridade de uma análise, introduzir vieses nos modelos, degradar a performance preditiva e, em última instância, levar a decisões de negócio equivocadas. A preparação dos dados, incluindo o tratamento de valores ausentes, é um dos pilares para o sucesso de qualquer projeto de Machine Learning.

Este guia definitivo foi elaborado para ser seu recurso completo sobre o tema. Iremos além das soluções rápidas e mergulharemos fundo na teoria estatística que governa a ausência de dados. Em seguida, traduziremos essa teoria em estratégias práticas. Ao final deste guia, você estará equipado não apenas para aplicar técnicas de tratamento, mas para justificar suas escolhas, compreendendo os trade-offs e tomando decisões informadas que fortalecem a robustez e a confiabilidade de seus projetos. Por ser uma guia realmente definitivo dividimos o guia em 6 partes. E se precisar de ajuda para aplicar a teoria em projetos práticos orientados às necessidades do mercado de trabalho, recomendamos a Formação Cientista de Dados 4.0 ou a Formação Analista de Dados 4.0.

Aproveite esse incrível material.

A Anatomia dos Valores Ausentes: Compreendendo o “Porquê”

Antes de aplicar qualquer técnica, é fundamental realizar uma investigação dos dados para entender a natureza, a origem e o impacto potencial dos valores ausentes. Esta etapa fundamental molda toda a estratégia de tratamento subsequente.

O Que São Valores Ausentes?

Em um nível técnico, valores ausentes são espaços em um conjunto de dados onde um valor não foi armazenado para uma determinada observação e variável. No ecossistema Python, o numpy.nan é a representação mais comum para dados numéricos ausentes, enquanto None pode aparecer em colunas de objetos. Outras ferramentas e linguagens usam convenções diferentes, como NA em R ou NULL em bancos de dados SQL.

Contudo, um erro comum é assumir que todos os dados ausentes são explicitamente marcados como tal. Muitas vezes, eles se escondem sob a forma de valores sentinela: placeholders que parecem dados válidos, mas que na verdade representam a ausência de informação. Exemplos comuns incluem:

  • Zeros: Em um dataset de saúde, uma coluna como Insulina com valor 0 é fisiologicamente implausível e provavelmente indica um dado ausente.
  • Números Improváveis: Valores como -999 ou 9999 são frequentemente usados em datasets mais antigos como marcadores de ausência.
  • Strings Vazias ou Específicas: Uma string vazia (”) ou um texto como “Não informado” ou “Unknown” também são formas de dados ausentes.

A identificação desses valores sentinela é essencial. Tratá-los como dados reais distorceria drasticamente as estatísticas descritivas (média, mediana, desvio padrão) e levaria a imputações e modelos fundamentalmente falhos. A primeira etapa de qualquer análise de dados ausentes deve ser, portanto, consultar o dicionário de dados e o conhecimento de domínio para converter esses placeholders no marcador padrão np.nan, que as bibliotecas de análise reconhecem corretamente.

As Origens da Ausência: Por Que os Dados Desaparecem?

Compreender a causa raiz da ausência de dados é o primeiro passo para formular uma hipótese sobre seu mecanismo, o que, como veremos, é a chave para escolher a técnica de tratamento correta. As causas podem ser agrupadas em algumas categorias principais:

Erros de Coleta e Entrada: A fonte mais direta de dados ausentes. Isso inclui erros de digitação, falhas na inserção manual de dados, mau funcionamento de sensores ou instrumentos de medição, ou problemas em processos de extração e carregamento de dados (ETL).

Não-Resposta e Abandono (Attrition): Em pesquisas e estudos, os participantes podem se recusar a responder a perguntas sensíveis, como renda ou histórico médico, resultando em dados ausentes. Em estudos longitudinais, participantes podem abandonar o estudo ao longo do tempo, levando à ausência de todas as medições futuras para aquele indivíduo.

Inaplicabilidade Estrutural: Às vezes, um dado está ausente porque a pergunta não se aplica àquela observação. Por exemplo, a pergunta “número de gestações” não se aplica a participantes do sexo masculino.

Censura de Dados: Em análises de sobrevivência, um dado pode estar ausente porque o evento de interesse (ex: falha de um equipamento, morte de um paciente) não ocorreu até o final do período de estudo. A ausência do evento é, em si, uma informação valiosa.

O Alto Custo da Negligência: Impacto Direto em Modelos de ML

Ignorar ou tratar inadequadamente os valores ausentes tem consequências severas e diretas no pipeline de Machine Learning. Vejamos algumas.

Falha de Algoritmos: A grande maioria dos estimadores do Scikit-learn, como regressões lineares, SVMs e redes neurais, não são projetados para lidar com NaNs. Tentar treinar um modelo com dados ausentes resultará em um ValueError, interrompendo a execução do código.

Introdução de Viés: Se os dados ausentes não forem completamente aleatórios, qualquer tratamento (incluindo a exclusão) pode distorcer a distribuição original dos dados. Isso pode fazer com que o modelo aprenda relações espúrias ou subestime a importância de certos subgrupos, levando a previsões enviesadas e conclusões não confiáveis.

Perda de Poder Estatístico e Informação: A estratégia mais simples, a exclusão de linhas com dados ausentes, reduz o tamanho do conjunto de dados. Em datasets pequenos, isso pode diminuir drasticamente o poder estatístico, tornando mais difícil detectar efeitos verdadeiros. Além disso, uma linha com um único valor ausente pode conter informações valiosas em todas as outras colunas, que são descartadas desnecessariamente.

Continuaremos na Parte 2.

Equipe DSA

Referências:

Ellenberg, Jordan. (2014). How Not to Be Wrong: The Power of Mathematical Thinking. Penguin Books.