Hot-deck-imputering

Hantering av saknade värden med imputering i R

Michal Oleszak

Machine Learning Engineer

Hot-decks historia

  • Går tillbaka till 1950-talet, då data lagrades på hålkort.
  • Att bläddra fram och tillbaka i data var mycket långsamt.
  • U.S. Census Bureau utvecklade en metod som bara kräver ett genomgång av data.

Ett gammalt hålkort som användes för att programmera datorer.

1 Image source: https://en.wikipedia.org/wiki/Punched_card#/media/File:Used_Punchcard_(5151286161).jpg
Hantering av saknade värden med imputering i R

Hot-deck-imputering

  • För varje variabel ersätts varje saknat värde med det senast observerade värdet.
  • Hot-deck syftar på det kortlek med hålkort som faktiskt bearbetas.

Nackdelar

  • Kräver att data är MCAR.
  • Enkel hot-deck kan förstöra samband mellan variabler.

Fördelar

  • Snabb (bara ett genomgång av data).
  • Imputerade värden är inte konstanta.
  • Enkla knep förhindrar att samband bryts.
Hantering av saknade värden med imputering i R

Hot-deck-imputering i praktiken

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
Hantering av saknade värden med imputering i R

Imputering inom domäner

En tabell med två kolumner: PhysActive och Weight. Det saknas ett värde i Weight. Eftersom raderna är i slumpmässig ordning föregås raden med PhysActive=TRUE och det saknade Weight-värdet av en rad med PhysActive=FALSE. Det visar hur hot-deck matar fram viktvärdet från en inaktiv person till en aktiv person.

En tabell med två kolumner: PhysActive och Weight. Det saknas ett värde i Weight. Eftersom data är grupperat efter PhysActive matar hot-deck fram värdet från en aktiv person till en annan aktiv person.

nhanes_imp <- hotdeck(
    nhanes, 
    variable = "Weight", 
    domain_var = "PhysActive"
)
Hantering av saknade värden med imputering i R

Sortering efter korrelerade variabler

En tabell med två variabler: Height och Weight. Det saknas ett värde i Weight. Eftersom raderna är i slumpmässig ordning föregås raden med liten längd och det saknade viktvärdet av en rad med stor längd. Det visar hur hot-deck matar fram viktvärdet från en lång person till en kort person.

En tabell med två variabler: Height och Weight. Det saknas ett värde i Weight. Eftersom raderna är sorterade efter Height matar hot-deck fram viktvärdet från en kort person till en annan kort person.

nhanes_imp <- hotdeck(
    nhanes, 
    variable = "Weight"
    ord_var = "Height"
)
Hantering av saknade värden med imputering i R

Nu kör vi en övning!

Hantering av saknade värden med imputering i R

Preparing Video For Download...