Mekanismer för saknade data

Hantering av saknade värden med imputering i R

Michal Oleszak

Machine Learning Engineer

Mekanismer för saknade data: översikt

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.

  • Missing Completely at Random (MCAR).
  • Missing at Random (MAR).
  • Missing not at Random (MNAR).
Hantering av saknade värden med imputering i R

Missing Completely at Random (MCAR)

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.

Hantering av saknade värden med imputering i R

Missing at Random (MAR)

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.

Hantering av saknade värden med imputering i R

Missing not at Random (MNAR)

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.

Hantering av saknade värden med imputering i R

Hantera mekanismerna

Vad händer om vi helt enkelt tar bort ofullständiga observationer?

  • Om data är MCAR leder borttagning till informationsförlust.
  • Om data är MAR eller MNAR introducerar borttagning bias i modeller byggda på dessa data.
  • I sådana fall bör saknade värden imputeras.
  • Många imputeringsmetoder utgår från MAR, så det är viktigt att detektera det.
Hantering av saknade värden med imputering i R

Statistisk testning

Exempel: t-test för skillnad i medelvärden

  1. Formulera ett antagande (nollhypotes): medelvärdena är lika.
  2. Beräkna teststatistikan från dina data.
  3. Beräkna p-värdet: hur sannolikt är det att erhålla den teststatistika du fick, under antagandet att nollhypotesen är sann?

Litet p-värde → förkasta nollhypotesen → medelvärdena skiljer sig åt


Stort p-värde → förkasta inte nollhypotesen → medelvärdena är lika

Hantering av saknade värden med imputering i R

Testa för MAR

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:

  1. Skapa en dummyvariabel som anger om PhysActive saknas.
  2. Använd ett t-test för att kontrollera om medelvärdet för denna dummy skiljer sig mellan män och kvinnor.
  3. Om p-värdet är litet (t.ex. < 0,05) skiljer sig medelvärdena åt, och data är MAR.
Hantering av saknade värden med imputering i R

Testning i praktiken

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)
Hantering av saknade värden med imputering i R

Tolka testresultat

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

Nu kör vi en övning!

Hantering av saknade värden med imputering i R

Preparing Video For Download...