Den ultimative guide til datarensning

Manglende værdier

Da manglende værdier er uundgåelige, står vi over for spørgsmålet om, hvad vi skal gøre, når vi støder på dem. At ignorere de manglende data er det samme som at grave huller i en båd; den vil synke.

Der er tre, eller måske flere, måder at håndtere dem på.

– En. Drop.

Hvis de manglende værdier i en kolonne sjældent forekommer og opstår tilfældigt, så er den nemmeste og mest fremadrettede løsning at droppe de observationer (rækker), der har manglende værdier.

Hvis de fleste af kolonnens værdier mangler og opstår tilfældigt, så er en typisk beslutning at droppe hele kolonnen.

Dette er især nyttigt, når man laver statistiske analyser, da udfyldning af de manglende værdier kan give uventede eller skæve resultater.

– To. Imputer.

Det betyder at beregne den manglende værdi på baggrund af andre observationer. Der findes en hel del metoder til at gøre det.

– Den første er at bruge statistiske værdier som middelværdi, median. Ingen af disse garanterer dog ubiased data, især hvis der er mange manglende værdier.

Middelværdien er mest anvendelig, når de oprindelige data ikke er skæve, mens medianen er mere robust, ikke følsom over for outliers, og derfor bruges, når data er skæve.

I et normalfordelt data kan man få alle de værdier, der ligger inden for 2 standardafvigelser fra middelværdien. Dernæst udfylder man de manglende værdier ved at generere tilfældige tal mellem (mean — 2 * std) & (mean + 2 * std)

– Andet. Ved hjælp af en lineær regression. På baggrund af de eksisterende data kan man beregne den bedst tilpassede linje mellem to variabler, f.eks. huspris vs. størrelse m².

Det er værd at nævne, at lineære regressionsmodeller er følsomme over for outliers.

– For det tredje. Hot-deck: Kopiering af værdier fra andre lignende poster. Dette er kun nyttigt, hvis du har nok tilgængelige data. Og den kan anvendes på numeriske og kategoriske data.

Man kan vælge den tilfældige tilgang, hvor man udfylder den manglende værdi med en tilfældig værdi. Hvis man går et skridt videre med denne tilgang, kan man først opdele datasættet i to grupper (strata) baseret på et eller andet kendetegn, f.eks. køn, og derefter udfylde de manglende værdier for de forskellige køn separat, tilfældigt.

I sekventiel hot-deck-imputation sorteres kolonnen med manglende værdier efter hjælpevariabel(er), således at poster, der har lignende hjælpevariable, optræder sekventielt. Derefter udfyldes hver manglende værdi med værdien af den første følgende tilgængelige post.

Det mere interessante er, at der også kan anvendes 𝑘 nærmeste nabo-imputering, som klassificerer lignende poster og sætter dem sammen. En manglende værdi udfyldes så ved først at finde de 𝑘 poster, der ligger tættest på den post med manglende værdier, ved først at finde de 𝑘 poster, der ligger tættest på posten med manglende værdier. Dernæst vælges en værdi fra (eller beregnes ud fra) de 𝑘 nærmeste naboer. I tilfælde af beregning kan der anvendes statistiske metoder som middelværdi (som tidligere omtalt).

– Tre. Flag.

Nogle hævder, at udfyldning af de manglende værdier fører til et tab af information, uanset hvilken imputeringsmetode vi har brugt.

Det skyldes, at det at sige, at dataene mangler, er informativt i sig selv, og algoritmen bør kende til det. Ellers forstærker vi bare det mønster, der allerede findes af andre funktioner.

Dette er især vigtigt, når de manglende data ikke sker tilfældigt. Tag f.eks. en gennemført undersøgelse, hvor de fleste mennesker fra en bestemt race nægter at besvare et bestemt spørgsmål.

Manglende numeriske data kan udfyldes med f.eks. 0, men har disse nuller skal ignoreres, når der beregnes en statistisk værdi eller plottes fordelingen.

Mens kategoriske data kan udfyldes med f.eks: En ny kategori, der fortæller, at denne data mangler.

– Tag hensyn til …

Manglende værdier er ikke det samme som standardværdier. F.eks. kan nul fortolkes som enten manglende værdier eller standardværdier, men ikke begge dele.

Manglende værdier er ikke “ukendte”. En gennemført undersøgelse, hvor nogle personer ikke kunne huske, om de er blevet mobbet eller ej i skolen, bør behandles og betegnes som ukendt og ikke manglende.

Hver gang vi udelader eller imputerer værdier, mister vi oplysninger. Så flagning kan komme til undsætning.

Outliers

Det er værdier, der er signifikant forskellige fra alle andre observationer. Enhver dataværdi, der ligger mere end (1,5 * IQR) væk fra Q1- og Q3-kvartilerne, betragtes som en outlier.

Outliers er uskyldige, indtil det er bevist, at de er skyldige. Når det er sagt, bør de ikke fjernes, medmindre der er en god grund til det.

For eksempel kan man bemærke nogle mærkelige, mistænkelige værdier, som det er usandsynligt, at de ikke forekommer, og derfor beslutter man sig for at fjerne dem. Selvom de er værd at undersøge, før man fjerner dem.

Det er også værd at nævne, at nogle modeller, som lineær regression, er meget følsomme over for outliers. Med andre ord kan outliers kaste modellen væk fra det sted, hvor de fleste data ligger.

In record &fejl på tværs af datasæt

Disse fejl skyldes, at der er to eller flere værdier i samme række eller på tværs af datasæt, som er i modstrid med hinanden.

For eksempel, hvis vi har et datasæt om leveomkostningerne i byer. Kolonnen total skal svare til summen af husleje, transport og mad.

city rent transportation food total
libson 500 20 40 560
paris 750 40 60 850

Sådan kan et barn heller ikke være gift. En lønmodtagers løn kan ikke være mindre end de beregnede skatter.

Det samme gælder for relaterede data på tværs af forskellige datasæt.

Verificering

Når det er gjort, bør man verificere korrektheden ved at geninspicere dataene og sikre sig, at det regler og begrænsninger holder.

For eksempel kan de efter udfyldelse af de manglende data overtræde nogen af reglerne og begrænsningerne.

Det kan involvere en vis manuel korrektion, hvis det ikke er muligt på anden vis.

Rapportering

Rapportering af, hvor sunde dataene er, er lige så vigtigt som rensning.

Som tidligere nævnt kan softwarepakker eller biblioteker generere rapporter om de foretagne ændringer, hvilke regler der blev overtrådt, og hvor mange gange.

Ud over at logge overtrædelserne bør man også overveje årsagerne til disse fejl. Hvorfor skete de i første omgang?.

Slutord …

Hvis du nåede så langt, er jeg glad for, at du var i stand til at holde ud til slutningen. Men intet af det nævnte er værdifuldt uden at omfavne kvalitetskulturen.

Hvor robust og stærk validerings- og rensningsprocessen end er, vil man fortsat lide under, at der kommer nye data ind.

Det er bedre at gardere sig mod en sygdom i stedet for at bruge tid og kræfter på at afhjælpe den.

Disse spørgsmål hjælper med at evaluere og forbedre datakvaliteten:

Hvordan indsamles dataene, og under hvilke betingelser?. Miljøet, hvor dataene blev indsamlet, har betydning. Miljøet omfatter, men er ikke begrænset til, stedet, tidspunktet, vejrforholdene osv.

Det er ikke det samme at spørge forsøgspersoner om deres mening om hvad som helst, mens de er på vej til arbejde, som mens de er hjemme. Patienter under en undersøgelse, der har problemer med at bruge tabletterne til at besvare et spørgeskema, kan forvrænge resultaterne.

Hvad repræsenterer dataene? Omfatter de alle? Kun folk i byen?. Eller måske kun dem, der valgte at svare, fordi de havde en stærk mening om emnet.

Hvad er de metoder, der er brugt til at rense dataene, og hvorfor? Forskellige metoder kan være bedre i forskellige situationer eller med forskellige datatyper.

Investerer du tid og penge i at forbedre processen?. Det er lige så vigtigt at investere i mennesker og processen som at investere i teknologien.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.