Data analyse is: “Het grondig onderzoeken en ontleden van gegevens”.
Onderzoeken
Om data te analyseren, is onderzoek nodig naar de data zelf. Stel we krijgen een dataset met klantgegevens, dan is het handig om te weten wat elke kolom in de set betekent en waar de combinatie van die kolommen voor staat, namelijk klantinformatie. Indien dat onduidelijk is, dan dien je dat op basis van de inhoud uit te zoeken. Zoek van iedere kolom een aantal zaken uit, bijvoorbeeld welk data type (tekst, getal, datum, boolean). Zijn de gegevens uniek en kan het een klant identificeren?
Metadata verzamelen
Zelf zoek ik altijd eerst naar de sleutel die een rij uniek maakt in een dataset (bij ongestructureerde data ligt dit iets genuanceerder): De unieke sleutel/primary key. Zijn de gegevens in de set netjes? Of staan er allerlei zaken door elkaar heen? Welke schrijfwijze is aangehouden? Alles in hoofdletters bijvoorbeeld? Het onderzoeken van een dataset kan veel tijd kosten. Ga vooral op zoek naar de zogenaamde metadata zou ik zeggen. Dan weet je vaak al heel veel over de inhoud die je kan verwachten. Zeker als de data uit een database komt, is deze informatie zeer eenvoudig op te vragen en bekend.
Veldwerk
Als je naar deze voorbeeld gegevens kijkt, dan kunnen er veel aannames gedaan worden. Zo zal de eerste kolom de unieke sleutel van een klant zijn en mag deze dus nooit leeg zijn. Kijken we naar de naam van de vierde kolom, dan lijkt het vrijwel zeker om een telefoonnummer te gaan. Of deze altijd gevuld moet zijn, is weer niet helder.
Verplicht? Meta weet het
Voor Telefax weten we dat het niet verplicht is, omdat daar gaten te zien zijn. Het is dus handig om te weten waar we het over hebben. De bovenstaande gegevens komen uit een tabel uit de database. Er is begrijpbare metadata beschikbaar. Hieronder is de metadata te zien:
Dit zijn allemaal vormen van metadata. Het sleuteltje rechtsbovenin geeft aan dat het om een unieke sleutel gaat. Deze mag dus maar één keer voorkomen. De aanname dat de eerste kolom een uniek klantnummer is, is dus correct. Daarnaast geeft het ook aan dat hier naast getallen ook andere tekens ingevoerd kunnen worden, maar nooit meer dan 20 tekens. In dit geval zal er alleen met nummers gewerkt worden, maar het is technisch mogelijk om letters in te voeren, zolang de inhoud van de hele kolom maar uniek blijft.
Ontleden
Ontleden betekent volgens onze taal: “benoemen van elementen van een zin”. Kortgezegd helpt het bij het begrijpen van wat er staat. Bij het ontleden van data, zou je kunnen zeggen dat je wilt begrijpen wat er inhoudelijk in de dataset staat. In bovenstaand voorbeeld is address een interessante kolom om er even uit te pakken. Bij een adres denk je al snel aan een straat met een huisnummer en een postcode met plaats. In dit voorbeeld staat het land er ook nog bij.
Het lastige aan het adres op deze manier binnenkrijgen, is dat je de adresinformatie hebt, maar dat je er moeilijk op kunt analyseren. Vraag maar eens alle klanten uit een bepaalde plaats op. Dat is niet eenvoudig. De gegevens in address zullen dan ontleed moet worden. Het zou handig zijn als deze gegevens los verkrijgbaar zijn. De eerste stap zou dus zijn om te kijken of we deze gegevens ook in een andere vorm aangeleverd kunnen krijgen. Zo niet, dan zullen er formules/scripts gemaakt moeten worden om deze gegevens uit elkaar te halen en te zorgen dat er wel geanalyseerd kan worden op plaats.
Betekenis in de sleutel
Vaak betekenen sleutels ook iets. Paymtermid is een foreign key die verwijst naar een andere tabel met daarin meer informatie over de betalingstermijn. In dit geval is de sleutel ook nog eens zo opgesteld dat deze iets betekent. N030 betekent bijvoorbeeld een betalingstermijn van 30 dagen. Op basis van deze screenshot weet ik dat niet, maar wel op basis van de onderliggende tabel. Het is overigens niet aan te raden hiervan uit te gaan, maar altijd de waarde uit de onderliggende tabel te controleren.
Valkuilen bij het analyseren van data
In de praktijk kan de sleutel namelijk niet gewijzigd worden, maar als er besloten wordt om iedereen die op 30 dagen staat om te zetten naar 28 dagen, dan is de snelste (niet de beste) manier om 30 naar 28 te veranderen in de onderliggende tabel. De sleutel blijft dan N030! Ontleden van de data op deze manier, neemt dus bepaalde risico’s met zich mee. Informatie uit een sleutel halen is over het algemeen een slecht idee, zeker als je de analyse voor lange tijd wilt gaan gebruiken en betrouwbaarheid een punt is.
Schrijfwijze
In het voorbeeld over het address is de indeling wisselend, vaak afhankelijk van het land. Bij telefoonnummer zien we in dit voorbeeld juist een duidelijke lijn. Namelijk 3 cijfers, streepje, 3 cijfers, streepje, 3 of 4 cijfers. Telefoonnumer is een leuk veld om op te analyseren, aangezien dit een prima identificatie middel is. Een telefoonnummer is immers uniek, maar hoeft dat niet te zien in de dataset. Je kan vrij snel zien of een telefoonnumer meerdere keren voorkomt en kijken wat er dan bij name staat. Op die manier kan je een grof beeld vormen over het aantal echte unieke klanten in je database. Uiteraard is er dan nog voldoende te controleren, maar het geeft meestal al een aardig beeld van de master data.
Waarde van data
De waarde van je dataset is zeer afhankelijk van de input. Als er allerlei verschillende schrijfwijzes aangehouden zijn, of er is simpelweg weinig ingevuld, dan wordt het lastig om nuttige data analyses uit te voeren. Kwalitatief goede data is noodzakelijk voor data analyse. Het beste is om te zorgen dat er geen vervuiling ingevoerd kan worden uiteraard, maar meestal is dit geen optie omdat dat flexibiliteit niet ten goede komt.
Kennis van de analyse vastleggen
De kennis die vergaard wordt met data analyse zou je het liefst ergens centraal vastleggen. Op die manier voorkom je dat er op meerdere plekken gewerkt wordt en er overal hetzelfde wiel wordt uitgevonden. Het is zeer verleidelijk om snel de data te doorgronden voor een enkele data analyse en een resultaat te boeken. Beter is het om de kennis die is vrijgekomen bij het analyseren vast te leggen. Bijvoorbeeld in een centraal datamodel of databibiliotheek.
Wie doen data analyse?
Dan denken we toch snel aan de controllers, business en data analisten, data scientists, data architects, BI consultants, maar waarschijnlijk ook minder voor de hand liggende rollen, zoals crediteuren beheerders en marketing analisten. De kans dat zij data op allerlei manieren gebruiken is zeer groot en dus zullen ze ook met dezelfde vervuiling geconfronteerd worden.