Inzicht in je missing data
Missing data, vroeg of laat krijgt elke dataspecialist ermee te maken. Het is eerder te verwachten dat gegevens ontbreken dan dat een dataset compleet is. Met het toenemende gebruik van grote hoeveelheden data groeit ook de hoeveelheid missing data. Wat kunnen we hieraan doen?
Stel, een telecombedrijf heeft een databestand van 1000 klanten met gegevens over de leeftijd en de grootte van de belbundel. Bij deze 1000 klanten is een online enquête afgenomen, waarin onder andere gevraagd is naar het inkomen. De eerste zes records van de dataset zien er als volgt uit:
De variabelen inkomen, bundel en leeftijd hebben een multivariate normaalverdeling met gemiddelden
en correlatiematrix.
Het blijkt dat er waarden ontbreken voor de variabele inkomen. Een goede omgang met missende data begint bij een inspectie van de eigenschappen van deze data zoals percentages, patronen en uniciteit.
Percentages
Standaard software-instellingen gebruiken alle data voor de analyse. Is dat acceptabel? Bepaal welk deel van de records compleet geobserveerd is. Bepaal ook het percentage ontbrekende data per variabele. Zijn er variabelen met veel missende waarden? Dan is het nuttig om de reden daarvan te achterhalen. Voor deze dataset blijkt voor 80% van de records de variabele inkomen te ontbreken, wat doet vermoeden dat dit een gemeenschappelijke oorzaak heeft. In dit geval zou de analyse worden uitgevoerd met 20% van de data uitvoeren, wat te weinig is voor een betrouwbaar resultaat.
Patronen
Bekijk ook of zich missende waarden voordoen op specifieke combinaties van variabelen. Als een record ontbreekt op variabele A, is er dan ook een missende waarde op variabele B? Het herkennen van missing datapatronen geeft inzicht in de onderliggende oorzaken. De missende waarden in onze dataset beperken zich tot de variabele inkomen. De gegevens van deze variabele komen uit de online enquête, terwijl de geobserveerde waarden uit het klantenbestand komen. Blijkbaar is er iets aan de hand met de enquête.
Uniciteit
Zijn de missende waarden anders dan de geobserveerde waarden? Met andere woorden, zijn de ontbrekende gegevens uniek? Deze vraag is van wezenlijk belang. Als dit niet het geval is, zijn de data ‘Missing Completely At Random’ (MCAR). Het is relatief eenvoudig om een oplossing te vinden voor dit type missing data. Hoe dit werkt, licht ik graag toe in een volgende blog.
Zijn de ontbrekende gegevens wel uniek? Dan bekijken we of we de geobserveerde data kunnen gebruiken om kennis aan te vullen of te vervangen. De data is dan ‘Missing At Random’ (MAR). Ligt de oorsprong van de missende waarden puur in de missende waarden zelf, dan is de data ‘Missing Not At Random’ (MNAR). Dit maakt het moeilijker, maar niet onhaalbaar om een oplossing te vinden.
Visualiseren
Om de situatie voor onze dataset te achterhalen, visualiseren we de data voor elk van de geobserveerde variabelen in een histogram. Hierin zijn de records die ontbreken op de variabele inkomen met rood aangegeven en de records die niet missend zijn met blauw. Voor de drie verschillende vormen van uniciteit zouden de histogrammen er als volgt uitzien:
Interpretatie van MCAR-data
De MCAR-data laten een overlap zien. Voor de variabelen leeftijd en bundel ontbreken op de variabele inkomen records met hoge én lage waarden. Er is geen verschil tussen de geobserveerde en de missende waarden. Zo’n situatie kan zich voordoen als een deel van de klanten vergeet om de vraag over inkomen in te vullen. Sommige klanten zouden een hoog inkomen hebben ingevuld en anderen een laag inkomen. Over het geheel genomen verschillen de mensen die de vraag hebben ingevuld niet van de mensen die dit niet hebben gedaan.
MAR- of MNAR data?
Als de data MAR zouden zijn, kan het zijn dat de waarde op de variabele inkomen vooral ontbreekt bij respondenten in een hogere leeftijdscategorie. In de plot is te zien dat het rode histogram rechts van het blauwe histogram ligt. Blijkbaar verschillende de klanten die de enquêtevraag hebben ingevuld van de mensen die dit niet hebben gedaan. Dit kan komen doordat oudere respondenten niet begrepen hoe ze de enquête moesten invullen en het vooral jonge mensen waren die de enquête uiteindelijk hebben ingevuld.
Mensen in een hogere leeftijdscategorie hebben veelal een hoger inkomen dan jongere mensen. Het ontbreken van data over de hogere inkomensgroep kan een analyse of model de verkeerde kant op sturen. Omdat we van alle klanten een waarde voor hun leeftijd hebben, kunnen we deze variabele gebruiken om een schatting te maken van het inkomen dat mensen gemeld zouden hebben. We noemen dit schatten van ontbrekende waarden imputatie.
Een MNAR-probleem kan optreden als mensen met een hoog inkomen hier geen informatie over willen geven, bijvoorbeeld uit privacyoverwegingen. Daardoor ontbreken data uit de hogere inkomensgroep, wat de analyse-uitkomst vertroebelt. In tegenstelling tot MAR-data zijn er nu geen gegevens beschikbaar om dit gat op te vullen.