Imputarea hot-deck

Gestionarea datelor lipsă prin imputare în R

Michal Oleszak

Machine Learning Engineer

Istoricul metodei hot-deck

  • Datează din anii 1950, când datele erau stocate pe cartele perforate.
  • Parcurgerea datelor înainte și înapoi era foarte lentă.
  • Biroul de Recensământ al SUA a dezvoltat o metodă ce necesită o singură trecere prin date.

O imagine a unei cartele perforate vechi, utilizate pentru programarea calculatoarelor.

1 Image source: https://en.wikipedia.org/wiki/Punched_card#/media/File:Used_Punchcard_(5151286161).jpg
Gestionarea datelor lipsă prin imputare în R

Imputarea hot-deck

  • Pentru fiecare variabilă, înlocuiți fiecare valoare lipsă cu ultima valoare observată.
  • Hot-deck se referă la pachetul de cartele perforate aflat în procesare.

Dezavantaje

  • Necesită date de tip MCAR.
  • Hot-deck simplu poate distruge relațiile dintre variabile.

Avantaje

  • Rapid (o singură trecere prin date).
  • Datele imputate nu sunt constante.
  • Trucuri simple previn distrugerea relațiilor.
Gestionarea datelor lipsă prin imputare în R

Imputarea hot-deck în practică

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
Gestionarea datelor lipsă prin imputare în R

Imputare pe domenii

Un tabel cu două coloane: PhysActive și Weight. Lipsește o valoare la Weight. Deoarece rândurile sunt în ordine aleatorie, un rând cu PhysActive=FALSE precede cel cu PhysActive=TRUE și greutatea lipsă. Aceasta ilustrează cum hot-deck propagă valoarea greutății de la o persoană inactivă la una activă.

Un tabel cu două coloane: PhysActive și Weight. Lipsește o valoare la Weight. Deoarece datele sunt grupate după PhysActive, hot-deck propagă valoarea unei persoane active către altă persoană activă.

nhanes_imp <- hotdeck(
    nhanes, 
    variable = "Weight", 
    domain_var = "PhysActive"
)
Gestionarea datelor lipsă prin imputare în R

Sortare după variabile corelate

Un tabel cu două variabile: Înălțime și Greutate. Lipsește o valoare la Greutate. Deoarece rândurile sunt în ordine aleatorie, un rând cu înălțime mare precede cel cu înălțime mică și greutatea lipsă. Aceasta ilustrează cum hot-deck propagă valoarea greutății de la o persoană înaltă la una scundă.

Un tabel cu două variabile: Înălțime și Greutate. Lipsește o valoare la Greutate. Deoarece rândurile sunt sortate după Înălțime, hot-deck propagă valoarea greutății de la o persoană scundă la altă persoană scundă.

nhanes_imp <- hotdeck(
    nhanes, 
    variable = "Weight"
    ord_var = "Height"
)
Gestionarea datelor lipsă prin imputare în R

Să exersăm imputarea hot-deck!

Gestionarea datelor lipsă prin imputare în R

Preparing Video For Download...