Obsługa brakujących danych z imputacją w R
Michal Oleszak
Machine Learning Engineer
Problemy z brakującymi danymi można podzielić na trzy kategorie. Ich rozróżnienie jest kluczowe, ponieważ każda wymaga innego podejścia.
Lokalizacje braków w zbiorze danych są całkowicie losowe i nie zależą od żadnych innych danych.
Przykład:
Czujnik pogodowy mierzy temperaturę i przesyła dane do bazy. W bazie brakuje wpisów z okresu, gdy czujnik uległ awarii.
Lokalizacje braków w zbiorze danych zależą od innych, obserwowanych danych.
Przykład:
W bazie brakuje wartości temperatury z okresu, gdy czujnik był wyłączony na czas konserwacji. Ponieważ konserwacja nie odbywa się w weekendy, lokalizacje braków zależą od dnia tygodnia.
Lokalizacje braków w zbiorze danych zależą od samych brakujących wartości.
Przykład:
Przy bardzo niskich temperaturach czujnik zamarza i przestaje działać, nie rejestrując ekstremalnych wartości. Lokalizacje braków w zmiennej temperatury zależą więc od jej własnych wartości.
Co się stanie, gdy po prostu usuniemy niekompletne obserwacje?
Przykład: test t różnicy średnich
Mała p-wartość → odrzucenie hipotezy zerowej → średnie są różne
Duża p-wartość → brak podstaw do odrzucenia → średnie są równe
Cel: sprawdzenie, czy odsetek braków w jednej zmiennej różni się dla różnych wartości innej zmiennej.
Przykład: czy odsetek braków w PhysActive różni się dla mężczyzn i kobiet?
Procedura testowania:
PhysActive ma brak danych.nhanes <- nhanes %>%
mutate(missing_phys_active = is.na(PhysActive))
missing_phys_active_male <- nhanes %>%
filter(Gender == "male") %>%
pull(missing_phys_active)
missing_phys_active_female <- nhanes %>%
filter(Gender == "female") %>%
pull(missing_phys_active)
t.test(missing_phys_active_female, missing_phys_active_male)
Welch Two Sample t-test
data: missing_phys_active_female and missing_phys_active_male
t = -1.7192, df = 781.18, p-value = 0.08597
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.044414688 0.002940477
sample estimates:
mean of x mean of y
0.02083333 0.04157044
Obsługa brakujących danych z imputacją w R