Hantering av saknade värden med imputering i R
Michal Oleszak
Machine Learning Engineer
Problem med saknade data delas in i tre kategorier. Det är viktigt att skilja dem åt, eftersom varje kategori kräver en annan lösning.
Positionen för saknade värden i datamängden är helt slumpmässig och beror inte på några andra data.
Exempel:
En vädersensor mäter temperatur och skickar data till en databas. Det saknas vissa poster i databasen för de tillfällen då sensorn gick sönder.
Positionen för saknade värden i datamängden beror på andra, observerade data.
Exempel:
Det saknas vissa temperaturvärden i databasen för de tillfällen då sensorn stängdes av för underhåll. Eftersom underhållsteamet aldrig arbetar på helger beror positionen för de saknade värdena på veckodagen.
Positionen för saknade värden i datamängden beror på de saknade värdena själva.
Exempel:
Vid extrem kyla fryser vädersensorn och slutar fungera. Därför registreras inte mycket låga temperaturer. Positionen för saknade värden i temperaturvariabeln beror alltså på variabelns egna värden.
Vad händer om vi helt enkelt tar bort ofullständiga observationer?
Exempel: t-test för skillnad i medelvärden
Litet p-värde → förkasta nollhypotesen → medelvärdena skiljer sig åt
Stort p-värde → förkasta inte nollhypotesen → medelvärdena är lika
Mål: testa om andelen saknade värden i en variabel skiljer sig för olika värden på en annan variabel.
Exempel: skiljer sig andelen saknade värden i PhysActive mellan män och kvinnor?
Testprocedur:
PhysActive saknas.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
Hantering av saknade värden med imputering i R