Imputação hot-deck

Tratamento de Dados Ausentes com Imputações em R

Michal Oleszak

Machine Learning Engineer

História do hot-deck

  • Surgiu nos anos 1950, quando dados eram guardados em cartões perfurados.
  • Navegar pelos dados ida e volta era muito lento.
  • O U.S. Census Bureau criou um método que exige apenas uma passagem pelos dados.

Uma foto de um cartão perfurado antigo usado para programar computadores.

1 Image source: https://en.wikipedia.org/wiki/Punched_card#/media/File:Used_Punchcard_(5151286161).jpg
Tratamento de Dados Ausentes com Imputações em R

Imputação hot-deck

  • Para cada variável, substitua cada valor ausente pelo último valor observado.
  • Hot-deck se refere ao baralho de cartões perfurados em processamento.

Contras

  • Requer dados MCAR.
  • Hot-deck básico pode destruir relações entre variáveis.

Prós

  • Rápido (uma única passagem pelos dados).
  • Dados imputados não são constantes.
  • Truques simples evitam quebrar relações.
Tratamento de Dados Ausentes com Imputações em R

Hot-deck na prática

nhanes_imp <- hotdeck(nhanes, variable = c("Height", "Weight"))
head(nhanes_imp)
  Age Gender Weight Height Diabetes TotChol Pulse PhysActive Height_imp Weight_imp
1  16   male   73.2  172.0    FALSE    3.00    76       TRUE      FALSE      FALSE
2  17   male   72.3  176.0    FALSE    2.61    74       TRUE      FALSE      FALSE
3  12   male   57.7  158.9    FALSE    4.27    80       TRUE      FALSE      FALSE
4  16   male   88.9  183.3    FALSE    3.62    58       TRUE      FALSE      FALSE
5  13 female   45.1  157.6    FALSE    2.66    92       TRUE      FALSE      FALSE
6  16 female   48.7  180.7    FALSE    4.32    58      FALSE       TRUE      FALSE
Tratamento de Dados Ausentes com Imputações em R

Imputando por domínios

Uma tabela com duas colunas: PhysActive e Weight. Há um valor ausente em Weight. Como as linhas estão em ordem aleatória, uma linha com PhysActive=FALSE vem antes da com PhysActive=TRUE e Weight ausente. Isso mostra como o hot-deck propaga o peso de uma pessoa não ativa para uma ativa.

Uma tabela com duas colunas: PhysActive e Weight. Há um valor ausente em Weight. Como os dados estão agrupados por PhysActive, o hot-deck propaga o valor de uma pessoa ativa para outra ativa.

nhanes_imp <- hotdeck(
    nhanes, 
    variable = "Weight", 
    domain_var = "PhysActive"
)
Tratamento de Dados Ausentes com Imputações em R

Ordenando por variáveis correlacionadas

Uma tabela com duas variáveis: Height e Weight. Há um valor ausente em Weight. Como as linhas estão em ordem aleatória, uma linha com Height grande vem antes da com Height pequeno e peso ausente. Isso mostra como o hot-deck propaga o peso de uma pessoa alta para uma baixa.

Uma tabela com duas variáveis: Height e Weight. Há um valor ausente em Weight. Como as linhas estão ordenadas por Height, o hot-deck propaga o peso de uma pessoa baixa para outra baixa.

nhanes_imp <- hotdeck(
    nhanes, 
    variable = "Weight"
    ord_var = "Height"
)
Tratamento de Dados Ausentes com Imputações em R

Vamos praticar hot-deck!

Tratamento de Dados Ausentes com Imputações em R

Preparing Video For Download...