Imputacja średnią

Obsługa brakujących danych z imputacją w R

Michal Oleszak

Machine Learning Engineer

Słownik imputacji

Imputacja = uzasadnione szacowanie brakujących wartości

  • Imputacja oparta na dawcach – brakujące wartości są uzupełniane na podstawie kompletnych obserwacji.
  • Imputacja modelowa – brakujące wartości są prognozowane za pomocą modelu statystycznego lub uczenia maszynowego.

Ten rozdział koncentruje się na metodach opartych na dawcach:

  • Imputacja średnią
  • Imputacja hot-deck
  • Imputacja kNN
Obsługa brakujących danych z imputacją w R

Imputacja średnią

Tabela z dwiema kolumnami: jedną z surowymi danymi zawierającą jedną brakującą wartość i drugą z danymi po imputacji, taką samą jak poprzednia, ale z brakującą wartością uzupełnioną średnią.

Imputacja średnią sprawdza się w danych szeregów czasowych losowo fluktuujących wokół długookresowej średniej.

Dla danych przekrojowych imputacja średnią jest często bardzo złym wyborem:

  • Niszczy zależności między zmiennymi.
  • Imputowane wartości nie wykazują zmienności.
Obsługa brakujących danych z imputacją w R

Imputacja średnią w praktyce

Zadanie: imputacja średnią dla Height i Weight w danych NHANES.

  • Utwórz binarne wskaźniki informujące, czy dana wartość była pierwotnie brakująca.
nhanes <- nhanes %>% 
  mutate(Height_imp = ifelse(is.na(Height), TRUE, FALSE)) %>% 
  mutate(Weight_imp = ifelse(is.na(Weight), TRUE, FALSE))
  • Zastąp brakujące wartości w Height i Weight odpowiednimi średnimi.
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))
Obsługa brakujących danych z imputacją w R

Dane NHANES po imputacji średnią

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
Obsługa brakujących danych z imputacją w R

Ocena jakości imputacji: wykres marginalny

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

Wykres marginalny – wykres rozrzutu „Height" vs „Weight", gdzie wartości imputowane w co najmniej jednej zmiennej są wyróżnione kolorem.

Obsługa brakujących danych z imputacją w R

Wady imputacji średnią

Niszczenie zależności między zmiennymi:

  • Po imputacji średnią w Height i Weight ich dodatnia korelacja jest słabsza.
  • Modele przewidujące jedną zmienną na podstawie drugiej będą zaburzone przez odstające wartości imputowane i dadzą obciążone wyniki.

Brak zmienności w imputowanych danych:

  • Mniejsza wariancja danych powoduje niedoszacowanie wszystkich błędów standardowych. Utrudnia to rzetelne testowanie hipotez i wyznaczanie przedziałów ufności.
Obsługa brakujących danych z imputacją w R

Imputacja medianą i dominantą

  • Zamiast średniej można imputować medianą lub dominantą.
  • Imputacja medianą jest lepszym wyborem w przypadku wartości odstających.
  • Dla zmiennych kategorycznych nie można obliczyć średniej ani mediany – stosuje się dominantę.
  • Imputacja medianą i dominantą ma te same wady co imputacja średnią.

Wykres marginalny – wykres rozrzutu „Height" vs „Weight", gdzie wartości imputowane w co najmniej jednej zmiennej są wyróżnione kolorem.

Obsługa brakujących danych z imputacją w R

Czas na ćwiczenia!

Obsługa brakujących danych z imputacją w R

Preparing Video For Download...