Imputace průměrem

Práce s chybějícími daty pomocí imputace v R

Michal Oleszak

Machine Learning Engineer

Terminologie imputace

Imputace = kvalifikovaný odhad chybějících hodnot

  • Imputace na základě dárců – chybějící hodnoty jsou doplněny z jiných, úplných pozorování.
  • Imputace na základě modelu – chybějící hodnoty jsou predikována statistickým nebo strojovým modelem.

Tato kapitola se zaměřuje na metody založené na dárcích:

  • Imputace průměrem
  • Imputace hot-deck
  • Imputace kNN
Práce s chybějícími daty pomocí imputace v R

Imputace průměrem

Tabulka se dvěma sloupci: jeden s původními daty obsahujícími chybějící hodnotu a druhý s imputovanými daty, kde je chybějící hodnota nahrazena průměrem.

Imputace průměrem funguje dobře pro časové řady, které náhodně kolísají kolem dlouhodobého průměru.

Pro průřezová data je imputace průměrem často velmi nevhodná:

  • Narušuje vztahy mezi proměnnými.
  • Imputované hodnoty nemají žádný rozptyl.
Práce s chybějícími daty pomocí imputace v R

Imputace průměrem v praxi

Úloha: imputujte průměrem Height a Weight v datech NHANES.

  • Vytvořte binární indikátory, zda byla původní hodnota chybějící.
nhanes <- nhanes %>% 
  mutate(Height_imp = ifelse(is.na(Height), TRUE, FALSE)) %>% 
  mutate(Weight_imp = ifelse(is.na(Weight), TRUE, FALSE))
  • Nahraďte chybějící hodnoty v Height a Weight jejich příslušnými průměry.
nhanes_imp <- nhanes %>% 
  mutate(Height = ifelse(is.na(Height), mean(Height, na.rm = TRUE), Height)) %>% 
  mutate(Weight = ifelse(is.na(Weight), mean(Weight, na.rm = TRUE), Weight))
Práce s chybějícími daty pomocí imputace v R

Data NHANES po imputaci průměrem

nhanes_imp %>%
    select(Weight, Height, Height_imp, Weight_imp) %>%
    head()
     Weight   Height Height_imp Weight_imp
1  73.20000 166.2499       TRUE      FALSE
2  72.30000 166.2499       TRUE      FALSE
3  57.70000 158.9000      FALSE      FALSE
4  88.90000 183.3000      FALSE      FALSE
5  45.10000 157.6000      FALSE      FALSE
6  66.77065 158.4000      FALSE       TRUE
Práce s chybějícími daty pomocí imputace v R

Hodnocení kvality imputace: marginální graf

nhanes_imp %>% select(Weight, Height, Height_imp, Weight_imp) %>% marginplot(delimiter="imp")

Marginální graf – bodový graf „Height" vs „Weight", kde imputované hodnoty jsou zvýrazněny odlišnou barvou.

Práce s chybějícími daty pomocí imputace v R

Problémy s imputací průměrem

Narušení vztahů mezi proměnnými:

  • Po imputaci průměrem u Height a Weight je jejich pozitivní korelace slabší.
  • Modely predikující jednu proměnnou pomocí druhé budou ovlivněny odlehlými imputovanými hodnotami a budou produkovat zkreslené výsledky.

Žádná variabilita v imputovaných datech:

  • S nižší rozptylem v datech budou všechny standardní chyby podhodnoceny. To znemožňuje spolehlivé testování hypotéz a výpočet intervalů spolehlivosti.
Práce s chybějícími daty pomocí imputace v R

Imputace mediánem a modem

  • Místo průměru lze imputovat mediánem nebo modem.
  • Imputace mediánem je vhodnější, pokud data obsahují odlehlé hodnoty.
  • U kategorických proměnných nelze počítat průměr ani medián – používá se modus.
  • Imputace mediánem i modem mají stejné nevýhody jako imputace průměrem.

Marginální graf – bodový graf „Height" vs „Weight", kde imputované hodnoty jsou zvýrazněny odlišnou barvou.

Práce s chybějícími daty pomocí imputace v R

Pojďme procvičovat!

Práce s chybějícími daty pomocí imputace v R

Preparing Video For Download...