Neste post vou falar um pouco sobre limpeza de dados, mais especificamente sobre tratamento de valores ausentes (os famosos missing values). O motivo para se preocupar com esta tarefa é bem simples: se colocar sujeira no modelo, não espere nada diferente como resultado.

O tratamento de valores ausentes é apenas uma das tarefas da fase de pré-processamento dos dados, fase esta que [genericamente] antecede a submissão das informações aos algoritmos de machine learning. Outras atividades comuns nesta etapa são transformação de dados e tratamento de outliers.

Resolvi escrever especificamente sobre tratamento de valores ausentes porque existem diversos conceitos e técnicas por trás deste tema. Além disso inevitavelmente precisamos lembrar deste assunto durante a modelagem.

Não custa nada lembrar, abaixo temos um exemplo de missing value.

missing

Ao se deparar com missing values os algoritmos basicamente têm duas reações: ou ignoram estes valores ou simplesmente param.

Basicamente existem as seguintes classificações para missing values:

  • Missing Completely at Random (MCAR): Não existe nenhum padrão associado aos valores ausentes. Este é o melhor cenário.
  • Missing Not at Random (MNAR): Existe um padrão na variável que possui valores ausentes e este padrão afeta outras variáveis. Muitas vezes estes valores ausentes ocorrem por algum erro no processo em que a informação é coletada. Este cenário requer mais cuidado.

Conhecendo as classificações, vamos aos tipos de tratamentos que podemos fazer para resolver este problema:

  • Listwise Deletion: Ao identificar o um missing na variável em análise, desconsidera-se todo o registro.
  • Recover the Values: Recorrer ao processo em que a informação é gerada e tentar recuperá-la.
  • Imputation: Alterar o valor ausente por um valor substituto. Existem várias formas para se fazer imputation, são elas:Educated guessing: Não é uma das formas mais utilizadas. Basicamente infere-se o valor ausente de acordo com o padrão existente nos dados. Por exemplo, em uma pesquisa de satisfação com 10 questões o cliente atribuiu nota máxima para as 9 primeiras questões e deixou a última questão sem resposta. Pelo padrão apresentado, podemos considerar que a nota da última questão é a mesma das anteriores.

    Average imputation: Nesta técnica utilizamos o valor médio da coluna (para as observações que possuem valor) e atribuímos este valor para as observações que possuem missing. Este é uma técnica muito comum, mas temos que tomar cuidado porque ela reduz a variabilidade dos dados.

    Common-Point Imputation: Nesta técnica os valores ausentes são substituídos por valores padrão ou valores que mais se repetem.

    Regression Substitution: Crie um modelo de regressão múltiplo para estimar os valores ausentes. Também é uma técnica comum.

    Multiple Imputation: Esta é a técnica mais sofisticada. Estende o conceito do uso de regressão com a identificação de correlações com os valores ausentes. Nesta técnica vários datasets de simulação são criados e no final é feita uma média para encontrar o valor estimado (incorporando erros aleatórios na estimativa).

Na parte prática estou mostrando alguns exemplos de tratamento de nulos, assim como pacotes específicos do R para realizar esta tarefa.

Faça download do material sobre tratamento de missing em R

Abraços.
Weslley Moura

 

Sobre o Autor: Weslley Moura

Mestre em engenharia da computação, professor de cursos relacionados a análise de dados e co-fundador da empresa Pepsoft Sistemas. Profissional apaixonado pela ciência existente nos dados e suas aplicações práticas. Nos últimos anos vem dedicando seu tempo a projetos de aprendizagem de máquina e mantém seu site pessoal com dicas e aulas relacionadas ao tema em Hacking Analytics.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s