Brakujące dane: co może pójść nie tak

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

Michal Oleszak

Machine Learning Engineer

Czego się nauczysz

Po ukończeniu kursu będziesz potrafić:

  • Wyjaśnić, dlaczego brakujące dane wymagają szczególnego traktowania.
  • Stosować testy statystyczne i wizualizacje do wykrywania wzorców w brakujących danych.
  • Wykonywać imputację przy użyciu metod statystycznych i uczenia maszynowego.
  • Uwzględniać niepewność wynikającą z imputacji w analizach i prognozach.
Obsługa brakujących danych z imputacją w R

Wymagania wstępne

Kurs zakłada znajomość następujących zagadnień:

  • Podstawowe operacje na danych z dplyr i operatorem potoku (%>%).
  • Modele regresji liniowej i logistycznej (lm(), glm()).
  • Podstawy rachunku prawdopodobieństwa: zmienne losowe, rozkłady.
Obsługa brakujących danych z imputacją w R

Wprowadzenie do brakujących danych

Oczywiście najlepszym sposobem radzenia sobie z brakującymi danymi jest ich unikanie.

Niestety, brakujące dane są wszechobecne:

  • Brak odpowiedzi w ankietach.
  • Problemy techniczne z urządzeniami zbierającymi dane.
  • Łączenie danych z różnych źródeł.
  • ...

Należy być czujnym na brakujące dane.

1 Orchard, T., and M. A. Woodbury. 1972. "A Missing Information Principle: Theory and Applications." In Proceedings of the Sixth Berkeley Symposium on Mathematical Statistics and Probability, 1:697–715.
Obsługa brakujących danych z imputacją w R

Dane NHANES

head(nhanes, 3)
  Age Gender Weight Height Diabetes TotChol Pulse PhysActive
1  16   male   73.2  172.0    FALSE    3.00    76       TRUE
2  17   male   72.3  176.0    FALSE    2.61    74       TRUE
3  12   male   57.7  158.9    FALSE    4.27    80       TRUE
nhanes %>% is.na() %>% colSums()
Age     Gender     Weight     Height   Diabetes    TotChol    Pulse   PhysActive 
0       0          9          8        1            85        32      26
Obsługa brakujących danych z imputacją w R

Regresja liniowa z niekompletnymi danymi

model_1 <- lm(Diabetes ~ Age + Weight, 
              data = nhanes)

Części summary(model_1):

Residual standard error: 0.08571 on 804 
degrees of freedom (10 observations 
deleted due to missingness)

Adjusted R-squared:  0.005706 
F-statistic: 3.313 on 2 and 804 DF,  
p-value: 0.03691
model_2 <- lm(Diabetes ~ Age + Weight +
              TotChol, data = nhanes)

Części summary(model_2):

Residual standard error: 0.08264 on 718 
degrees of freedom (95 observations
deleted due to missingness)

Adjusted R-squared:  0.008422 
F-statistic: 3.041 on 3 and 718 DF,
p-value: 0.02834
Obsługa brakujących danych z imputacją w R

Najważniejsze wnioski

  • Brakujące dane są czasem ignorowane przez oprogramowanie statystyczne bez ostrzeżenia.
  • W efekcie porównywanie różnych modeli może być niemożliwe.
  • Usunięcie niekompletnych obserwacji może prowadzić do obciążonych wyników.
  • Brakujące dane, jeśli występują, muszą być odpowiednio obsłużone.
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...