Mechanismen van missende data

Omgaan met missende data met imputaties in R

Michal Oleszak

Machine Learning Engineer

Mechanismen van missende data: overzicht

Problemen met missende data vallen in drie categorieën. Onderscheiden is cruciaal, want elke categorie vraagt om een andere aanpak.

  • Missing Completely at Random (MCAR).
  • Missing at Random (MAR).
  • Missing not at Random (MNAR).
Omgaan met missende data met imputaties in R

Missing Completely at Random (MCAR)

Plekken van missende waarden in de dataset zijn puur willekeurig en hangen niet af van andere data.

Voorbeeld:

Een weersensor meet temperatuur en stuurt data naar een database. Er ontbreken waarden wanneer de sensor kapot was.

Omgaan met missende data met imputaties in R

Missing at Random (MAR)

Plekken van missende waarden in de dataset hangen af van andere, geobserveerde data.

Voorbeeld:

Er ontbreken temperatuurwaarden wanneer de sensor voor onderhoud is uitgeschakeld. De onderhoudsploeg werkt nooit in het weekend, dus de locaties van missende waarden hangen af van de weekdag.

Omgaan met missende data met imputaties in R

Missing not at Random (MNAR)

Plekken van missende waarden in de dataset hangen af van de waarden zelf die missen.

Voorbeeld:

Bij extreme kou vriest de sensor vast en stopt. Heel lage temperaturen worden dan niet geregistreerd. De locaties van missende waarden in de temperatuurvariabele hangen dus af van de waarden van die variabele zelf.

Omgaan met missende data met imputaties in R

Omgaan met de mechanismen

Wat als we onvolledige observaties gewoon droppen?

  • Bij MCAR leidt verwijderen tot informatieverlies.
  • Bij MAR of MNAR introduceert verwijderen bias in modellen op deze data.
  • Imputeer dan de missende waarden.
  • Veel imputatiemethoden gaan uit van MAR, dus detectie is belangrijk.
Omgaan met missende data met imputaties in R

Statistische toetsing

Voorbeeld: t-toets voor verschil in gemiddelden

  1. Stel een aanname vast (nulhypothese): de gemiddelden zijn gelijk.
  2. Bereken de toetsstatistiek uit je data.
  3. Bereken de p-waarde: hoe waarschijnlijk is jouw toetsstatistiek als de nulhypothese waar is?

kleine p-waarde → verwerp de nulhypothese → gemiddelden verschillen


grote p-waarde → verwerp de nulhypothese niet → gemiddelden zijn gelijk

Omgaan met missende data met imputaties in R

Testen op MAR

Doel: testen of het percentage missende waarden in de ene variabele verschilt voor verschillende waarden van een andere variabele.

Voorbeeld: verschilt het percentage missende waarden in PhysActive tussen mannen en vrouwen?

Procedure:

  1. Maak een dummyvariabele die aangeeft of PhysActive ontbreekt.
  2. Gebruik een t-toets om te checken of het gemiddelde van deze dummy verschilt tussen mannen en vrouwen.
  3. Is de p-waarde klein (bijv. < 0,05)? Dan verschillen de gemiddelden en zijn de data MAR.
Omgaan met missende data met imputaties in R

Testen in de praktijk

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)
Omgaan met missende data met imputaties in R

Testresultaten interpreteren

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
Omgaan met missende data met imputaties in R

Laten we oefenen!

Omgaan met missende data met imputaties in R

Preparing Video For Download...