Data structureren voor analyse
Er zijn bepaalde concepten die van fundamenteel belang zijn bij het begrijpen van datavoorbereiding en het structureren van data voor analyse. Data kunnen worden gegenereerd, vastgelegd en opgeslagen in een duizelingwekkende verscheidenheid aan indelingen. Maar als het om analyse gaat, zijn niet alle data-indelingen hetzelfde.
Datavoorbereiding is het proces waarbij goed opgemaakte data in één tabel of in meerdere gerelateerde tabellen worden ondergebracht, zodat deze in Tableau kunnen worden geanalyseerd. Dit omvat de structuur, d.w.z. rijen en kolommen, en aspecten van de netheid van data, zoals correcte datatypen en correcte datawaarden.
Tip: het kan helpen om het volgende onderwerp door te nemen met een eigen dataset. Hebt u nog geen dataset die u kunt gebruiken, bekijk dan onze tips voor Goede datasets vinden(Link wordt in een nieuw venster geopend).
Hoe structuur analyses beïnvloedt
Het kan zijn dat u geen controle hebt over de structuur van uw data. In de rest van dit onderwerp wordt ervan uitgegaan dat u toegang hebt tot de onbewerkte data en de hulpmiddelen die nodig zijn om deze vorm te geven, zoals Tableau Prep Builder. Er kunnen zich echter situaties voordoen waarin u uw data niet naar wens kunt draaien of aggregeren. Vaak is het nog steeds mogelijk om de analyse uit te voeren. Maar het kan zijn dat u uw berekeningen of de manier waarop u de data benadert moet wijzigen. Zie praktische Tableau Prep-scenario’s in Analyse met de tweede datum in Tableau Desktop(Link wordt in een nieuw venster geopend) voor een voorbeeld van hoe u dezelfde analyse kunt uitvoeren met verschillende datastructuren. Maar als u de datastructuur kunt optimaliseren, wordt uw analyse waarschijnlijk veel eenvoudiger.
Datastructuur
Tableau Desktop werkt het beste met data in tabellen die zijn opgemaakt als spreadsheet. Dat wil zeggen: data opgeslagen in rijen en kolommen, met kolomkoppen in de eerste rij. Dus wat moet een rij of kolom zijn?
Wat is een rij?
Een rij of record kan van alles zijn, van informatie over een transactie in een winkel tot weermetingen op een specifieke locatie of statistieken over een bericht op sociale media.
Het is belangrijk om te weten wat een record (rij) in de data vertegenwoordigt. Dit is de mate van granulariteit van de data.
Hier is elke record een dag | Hier is elke record een maand |
Tip: een best practice is om een unieke identificatie (UID) te bepalen. Dit is een waarde die elke rij identificeert als unieke data. Zie dit als het burgerservicenummer of de URL van elke record. In Superstore zou dat Rij-ID zijn. Niet alle datasets hebben een UID, maar het kan geen kwaad om er een te hebben.
Probeer te zorgen dat u de vraag "Wat vertegenwoordigt een rij in de dataset?" kunt beantwoorden. Dit is hetzelfde als het beantwoorden van de vraag "Wat vertegenwoordigt het veld Tabelnaam(Aantal)?" Als u dat niet kunt verwoorden, zijn de data mogelijk slecht gestructureerd voor analyse.
Een concept dat verband houdt met wat een rij vormt, is het idee van aggregatie en de granulariteit. Dit zijn tegenovergestelde uiteinden van een spectrum.
Aggregatie
verwijst naar de manier waarop meerdere datawaarden worden samengebracht in één enkele waarde, zoals het tellen van alle Google-zoekopdrachten naar 'Pumpkin Spice' of het nemen van het gemiddelde van alle temperatuurmetingen rond Seattle op een bepaalde dag.
Metingen worden in Tableau standaard altijd geaggregeerd. De standaardaggregatie is SOM. U kunt de aggregatie wijzigen in opties zoals Gemiddeld, Mediaan, Aantal uniek, Minimum, enz.
Granulariteit
verwijst naar hoe gedetailleerd de data zijn. Wat vertegenwoordigt een rij of record in de dataset? Iemand met malaria? Het totale aantal gevallen van malaria in een provincie voor deze maand? Dat is de granulariteit.
Het kennen van de granulariteit van de data is van cruciaal belang bij het werken met LOD-expressies (Level of Detail).
Het begrijpen van aggregatie en granulariteit is om vele redenen een cruciaal concept. Het heeft invloed op zaken als het vinden van nuttige datasets, het bouwen van de gewenste visualisatie, het correct relateren of samenvoegen van data en het gebruik van LOD-expressies.
Tip: zie Data-aggregatie in Tableau voor meer informatie.
Wat is een veld of kolom?
Een kolom met data in een tabel komt in Tableau Desktop binnen als een veld in het deelvenster Data, maar het zijn in wezen uitwisselbare termen. (We bewaren de term kolom in Tableau Desktop voor gebruik in de container met kolommen en rijen en om bepaalde visualisaties te beschrijven.) Een dataveld moet items bevatten die in een grotere relatie kunnen worden gegroepeerd. De items zelf worden waarden of leden genoemd (alleen discrete dimensies bevatten leden).
Welke waarden in een bepaald veld zijn toegestaan, wordt bepaald door het domein van het veld (zie de opmerking hieronder). Een kolom voor ’afdelingen van supermarkten' kan bijvoorbeeld de leden 'traiteur', 'bakkerij', 'producten', enz., bevatten, maar niet 'brood' of 'salami', omdat dit artikelen zijn en geen afdelingen. Anders gezegd: het domein van het veld Afdeling is beperkt tot alleen de mogelijke supermarktafdelingen.
Bovendien zou een goed gestructureerde dataset een kolom voor 'Verkoop' en een kolom voor 'Winst' hebben, en niet één enkele kolom voor 'Geld', omdat winst een ander concept is dan omzet.
Het domein van het veld Verkoop zou waarden ≥ 0 zijn, aangezien verkoop niet negatief kan zijn.
Het domein van het veld Winst zou echter uit alle waarden bestaan, omdat winst negatief kan zijn.
Opmerking: domein kan ook de waarden betekenen die in de data aanwezig zijn. Als de kolom 'supermarktafdeling' ten onrechte 'salami' bevatte, zou die waarde volgens deze definitie in het domein van de kolom liggen. De definities zijn enigszins tegenstrijdig. De ene betreft de waarden die er zouden kunnen of moeten zijn, de andere betreft de waarden die er daadwerkelijk zijn
Velden indelen
Elke kolom in de datatabel wordt in Tableau Desktop weergegeven als veld in het deelvenster Data. Velden in Tableau Desktop moeten een dimensie of meetwaarde zijn (gescheiden door een lijn binnen tabellen in het deelvenster Data) en discreet of continu (kleurgecodeerd: blauwe velden zijn discreet en groene velden zijn continu).
Dimensies zijn kwalitatief. Dit betekent dat ze niet kunnen worden gemeten, maar in plaats daarvan worden beschreven. Dimensies zijn vaak zaken als stad of land, oogkleur, categorie, teamnaam, enz. Dimensies zijn meestal discreet.
Meetwaarden zijn kwantitatief. Dit betekent dat ze kunnen worden gemeten en vastgelegd met cijfers. Meetwaarden kunnen zaken zijn als verkopen, hoogte, klikken, enz. In Tableau Desktop worden meetwaarden automatisch geaggregeerd en de standaardaggregatie is SOM. Meetwaarden zijn doorgaans continu.
Discreet betekent individueel gescheiden of verschillend. Toyota onderscheidt zich van Mazda. In Tableau Desktop worden discrete waarden weergegeven in de vorm van een label en ze creëren deelvensters.
Continu betekent het vormen van een ononderbroken, doorlopend geheel. 7 wordt gevolgd door 8 en dan is het dezelfde afstand tot 9. 7,5 zou halverwege tussen 7 en 8 vallen. In Tableau Desktop worden continue waarden als een as weergegeven.
Dimensies zijn meestal discreet en meetwaarden zijn meestal continu. Dit is echter niet altijd het geval. Datums kunnen discreet of continu zijn.
Datums zijn dimensies en worden automatisch als discreet weergegeven. Dit wordt ook wel 'datumdelen' genoemd, zoals 'Augustus'. Hierbij wordt rekening gehouden met de maand augustus zonder rekening te houden met andere informatie zoals het jaar. Een trendlijn die wordt toegepast op een tijdlijn met discrete datums wordt opgesplitst in meerdere trendlijnen, één per deelvenster.
Indien gewenst kunnen we kiezen om continue datums te gebruiken (ook wel datumafkortingen genoemd, zoals 'Augustus 2024', wat anders is dan 'Augustus 2025'). Een trendlijn die wordt toegepast op een tijdlijn met continue datums, heeft één trendlijn voor de gehele datumas.
Tip: zie Dimensies en meetwaarden, blauw en groen voor meer informatie.
In Tableau Prep wordt geen onderscheid gemaakt op dimensies of meetwaarden. Het begrijpen van de concepten achter discreet of continu is echter belangrijk voor zaken als het begrijpen van details versus de samenvattende presentatie van data in het deelvenster Profiel.
Detail: de detailweergave toont elk domeinelement als discreet label en beschikt over een visuele schuifbalk om een visueel overzicht van alle data te bieden.
Samenvatting: de samenvattingsweergave toont de waarden als histogram op een continue as.
Binning en histogrammen
Een veld als leeftijd of salaris wordt als continu beschouwd. Er is een relatie tussen de leeftijd van 34 en 35 jaar, en 34 ligt even ver van 35 als 35 van 36. Maar zodra we de leeftijd van circa tien jaar voorbij zijn, stoppen we meestal met het zeggen van dingen als '9 en een half' of '7 en drie vierde'. We sorteren (binnen) onze leeftijd al met nette stappen van één jaar. Iemand die 12.850 dagen oud is, is ouder dan iemand die 12.790 dagen oud is. Maar we trekken een grens en zeggen dat ze allebei 35 zijn. Op dezelfde manier worden leeftijdsgroepen vaak in plaats van werkelijke leeftijden gebruikt. Kinderprijzen voor bioscoopkaartjes kunnen gelden voor kinderen van 12 jaar en jonger. Of in een enquête wordt u mogelijk gevraagd uw leeftijdsgroep te selecteren, zoals 20-24, 25-30, enz.
Histogrammen worden gebruikt om de distributie van numerieke data te visualiseren met behulp van binning. Een histogram lijkt op een staafdiagram. Maar in plaats van discrete categorieën per staaf bestrijken de rechthoeken waaruit het histogram bestaat een bin van een continue as, zoals het bereik van het aantal bloesems (0-4, 5-9, 10-14, enz.). De hoogte van de rechthoeken wordt bepaald door de frequentie of het aantal van deze waarden. Hier is de y-as het aantal planten dat in elke bin valt. Zeven planten hebben 0-4 bloesems, twee planten hebben 5-9 bloesems en 43 planten hebben 20-24 bloesems.
In Tableau Prep is de samenvattingsweergave een histogram van 'gebinde' of gesorteerde waarden. De detailweergave toont de frequentie voor elke waarde en heeft een visuele schuifbalk aan de zijkant die de algehele distributie van de data laat zien.
Samenvattingsweergave | Detailweergave |
Distributies en uitschieters
Het zien van de distributie van een dataset kan helpen bij het detecteren van uitschieters.
Distributie: de vorm van de data in een histogram, hoewel dit afhangt van de grootte van de bins. Als u al uw data in een histogramweergave kunt zien, kunt u vaststellen of de data juist en volledig lijken. De vorm van de distributie heeft alleen nut als u de data kent en kunt interpreteren of de distributie al dan niet zinvol is.
Als we bijvoorbeeld zouden kijken naar een dataset van het aantal huizen met breedbandinternet tussen 1940 en 2017, zouden we een zeer scheve distributie verwachten. Als we echter kijken naar het aantal woningen met breedbandinternet van januari 2017 tot en met december 2017, verwachten we een vrij uniforme distributie.
Als we zouden kijken naar een dataset van Google-zoekopdrachten naar 'Pumpkin Spice Latte', zouden we in de herfst een vrij scherpe piek verwachten, terwijl zoekopdrachten naar 'Celsius naar Fahrenheit omzetten' waarschijnlijk redelijk stabiel zouden zijn.
Uitschieter: een waarde die extreem is in vergelijking met andere waarden. Uitschieters kunnen correcte waarden zijn of wijzen op een fout.
Sommige uitschieters zijn correct en duiden op daadwerkelijke afwijkingen. Deze mogen niet worden verwijderd of gewijzigd.
Sommige uitschieters duiden op problemen met de netheid van de data, zoals een salaris van € 50 in plaats van € 50.000 omdat er een komma is getypt in plaats van de punt.
Als u een lijst als deze zou zien:
op het eerste gezicht ziet het er niet vreemd uit. Maar als dit, in plaats van een lijst met labels, op een continue as met bins zou worden uitgezet, zou het er als volgt uitzien:
En het is veel duidelijker dat de laatste waarneming verder verwijderd is van de eerste en mogelijk een uitschieter betreft vanwege fouten.
Datatypen
Databases hanteren, in tegenstelling tot spreadsheets, doorgaans strikte regels voor datatypen. Datatypen delen de data in een bepaald veld in en bieden informatie over hoe de data moeten worden opgemaakt, geïnterpreteerd en welke bewerkingen met die data kunnen worden uitgevoerd. Op numerieke velden kunnen bijvoorbeeld wiskundige bewerkingen worden toegepast en geografische velden kunnen in kaart worden gebracht.
Tableau Desktop bepaalt of een veld een dimensie of meetwaarde is. Maar velden hebben andere kenmerken die afhankelijk zijn van hun datatype. Deze worden aangegeven door het pictogram dat elk veld heeft (hoewel sommige typen een pictogram delen). Tableau Prep gebruikt dezelfde datatypen. Als het datatype wordt afgedwongen voor een kolom en een bestaande waarde niet overeenkomt met het toegewezen datatype, kan deze als nul worden weergegeven (omdat 'paars' als getal niets betekent).
Sommige functies vereisen specifieke datatypen. U kunt BEVAT bijvoorbeeld niet gebruiken met een numeriek veld. Type-functies worden gebruikt om het datatype van een veld te wijzigen. DATEPARSE kan bijvoorbeeld een tekstdatum in een specifiek formaat nemen en er een datum van maken, Hierdoor worden zaken als automatisch inzoomen in de weergave mogelijk.
Pictogram | Datatype |
---|---|
Tekstwaarden (tekenreeks) | |
Datumwaarden | |
Datum- en tijdwaarden | |
Numerieke waarden | |
Booleaanse waarden (alleen relationeel) | |
Geografische waarden (gebruikt bij kaarten) |
Tip: raadpleeg het Help-artikel over Datatypen voor meer informatie.
Data draaien en terugdraaien
Mensvriendelijke data worden vaak vastgelegd in een brede indeling, met veel kolommen. Door computers leesbare data, waaraan Tableau de voorkeur geeft, zijn beter in een hoge indeling, met minder kolommen en meer rijen.
Opmerking: traditioneel betekent het draaien van data van hoog naar breed (rijen naar kolommen) gaan. Terugdraaien betekent dat u van breed naar hoog gaat (kolommen naar rijen). Tableau gebruikt het woord pivot (draaien) echter in de betekenis dat u van breed (mensvriendelijk) naar hoog (door computers leesbaar) gaat door kolommen in rijen te veranderen. In dit document zal pivot (draaien) verwijzen naar de betekenis die Tableau aan het woord toekent. Voor de duidelijkheid kan het helpen om 'kolommen naar rijen draaien' of 'rijen naar kolommen draaien' op te geven.
Raadpleeg de Help-artikelen over Uw data draaien en Tips voor het werken met uw data voor meer informatie.
Brede data
In de dataset over malaria van de Wereldgezondheidsorganisatie is er een kolom voor land en vervolgens een kolom per jaar. Elke cel vertegenwoordigt het aantal gevallen van malaria voor dat land en jaar. In deze indeling hebben we 108 rijen en 16 kolommen.
Een persoon kan deze indeling gemakkelijk lezen en begrijpen. Als we deze data echter in Tableau Desktop zouden overbrengen, krijgen we een veld per kolom. We hebben een veld voor 2000, een veld voor 2001, een veld voor 2002, enz.
Of bekijk dit op een andere manier: er zijn vijftien velden die allemaal hetzelfde vertegenwoordigen, namelijk het aantal gemelde gevallen van malaria, en er is geen enkel veld voor Tijd. Dit maakt het erg moeilijk om analyses over Tijd uit te voeren, omdat de data in afzonderlijke velden worden opgeslagen.
Vraag: hoe kunnen we een kaart maken die het totale aantal malariagevallen per land van 2000 tot 2014 weergeeft?
A: maak een berekend veld om alle jaren bij elkaar op te tellen.
Een andere indicatie dat deze indeling niet ideaal is voor analyse is het feit dat we nergens informatie hebben over wat de werkelijke waarden betekenen. Voor Algerije hebben we in 2012 de waarde 55. Vijfenvijftig wat? Het wordt niet duidelijk uit de structuur van de data.
Als de naam van de kolom niet beschrijft wat de waarden zijn, maar eerder aanvullende informatie overbrengt, is dit een teken dat de data moeten worden gedraaid.
Hoge data
Als we de data draaien, hervormen we de data van breed naar hoog. In plaats van voor elk jaar een kolom te hebben, hebben we nu één kolom (Jaar) en een nieuwe kolom: Gemelde gevallen. In deze indeling hebben we 1.606 rijen en 3 kolommen. Deze data-indeling is eerder hoger dan breder.
In Tableau Desktop hebben we nu een veld voor Jaar en een veld voor Gemelde gevallen, naast het oorspronkelijke veld Land. Het is veel eenvoudiger om analyses uit te voeren, omdat elk veld een unieke kwaliteit van de dataset vertegenwoordigt: locatie, tijd en waarde.
Vraag: hoe kunnen we een kaart maken die het totale aantal malariagevallen per land van 2000 tot 2014 weergeeft?
A: gebruik het veld Gemelde gevallen.
Nu is het gemakkelijk in te zien dat voor Algerije in 2012 het getal 55 verwijst naar het aantal gemelde gevallen (omdat we deze nieuwe kolom zouden kunnen benoemen).
Opmerking: in dit voorbeeld bestonden brede data uit één record per land. Met de indeling voor hoge data zijn er nu 15 rijen voor elk land (één voor elk van de 15 jaar in de data). Houd er rekening mee dat er nu meerdere rijen per land zijn.
Als er een kolom voor Landoppervlak zou zijn, zou die waarde worden herhaald voor elk van de 15 rijen voor elk land in een hoge datastructuur. Als u een staafdiagram hebt gemaakt met Land in Rijen en Landoppervlak in Kolommen, wordt in de weergave het landoppervlak voor alle 15 rijen per land standaard opgeteld.
Voor sommige velden kan het nodig zijn om dubbele tellingen te compenseren door aggregatie met een gemiddelde of minimum in plaats van som of filtering.
Normalisatie
Relationele databases bestaan uit meerdere tabellen die op de een of andere manier met elkaar in verband kunnen worden gebracht of aan elkaar kunnen worden gekoppeld. Elke tabel bevat een unieke identificatie, of sleutel, per record. Door sleutels met elkaar te verbinden of samen te voegen, kunnen records worden gekoppeld om meer informatie te verschaffen dan in één enkele tabel staat. Welke informatie in elke tabel terechtkomt, is afhankelijk van het gebruikte datamodel. Maar het algemene principe is het verminderen van duplicatie.
Denk bijvoorbeeld aan het plannen van evenementen zoals een bruiloft. We moeten informatie bijhouden op het niveau van groepen (zoals gezinnen of koppels) en op het niveau van individuen.
Er zou een tabel kunnen worden gemaakt waarin alle informatie wordt gecombineerd:
Als een adres echter onjuist is en moet worden gecorrigeerd, moet dit over meerdere rijen worden opgelost. Dit kan mogelijk tot fouten of conflicten leiden. Een betere structuur is om twee tabellen te maken: één voor informatie die betrekking heeft op de groep (zoals adres en of uitnodiging verzonden) en één voor informatie met betrekking tot individuen (voor zaken als tafelschikking en dieetwensen).
Groepsgewijze tabel | Individuele tabel |
Het is veel eenvoudiger om informatie op groepsniveau in de groepstabel en informatie op individueel niveau in de individuele tabel bij te houden en te analyseren. Het aantal benodigde stoelen kan bijvoorbeeld worden verkregen uit het aantal records met Aanwezig = Ja in de individuele tabel. Het aantal benodigde stempels voor bedankjes kan worden verkregen uit het aantal records in de groepstabel waar Geschenk geen nul is.
Het proces van het opsplitsen van alle data in meerdere tabellen (en het uitzoeken welke tabel welke kolommen bevat) noemen we ook wel normalisatie. Normalisatie helpt overtollige data te verminderen en vereenvoudigt de organisatie van de database.
Het kan echter voorkomen dat er informatie nodig is die meerdere tabellen omvat. Wat als we bijvoorbeeld de tafelschikking (individuen) zo willen bepalen dat groepen van de kant van de bruid worden vermengd met groepen van de kant van de bruidegom? (De connectie met de bruid of bruidegom wordt op groepsniveau bijgehouden.) Om dit te bereiken moeten we de tabellen weer met elkaar in verband brengen, zodat de individuen geassocieerd worden met informatie over hun groep. Een goede normalisatie betekent niet alleen het opsplitsen van tabellen. Het vereist ook de aanwezigheid van een gedeeld, gerelateerd veld of unieke identificatie die kan worden gebruikt om de data weer samen te voegen. Hier is dat gerelateerde veld Groep. Dat veld is aanwezig in beide tabellen, zodat we dit veld kunnen combineren en terugkeren naar onze oorspronkelijke indeling van een enkele tabel. Dit is een gedenormaliseerde structuur.
Waarom hebben we dan niet gewoon de originele gedenormaliseerde tabel behouden? Dit is moeilijker te onderhouden en er werd overtollige informatie opgeslagen. Op grote schaal kan het niveau van dataduplicatie enorm zijn. Het is niet efficiënt om steeds dezelfde informatie op te slaan.
Genormaliseerde tabellen hebben een paar belangrijke eigenschappen:
Elke rij heeft een unieke identificatie nodig
Elke tabel heeft een kolom of kolommen nodig die kan/kunnen worden gebruikt om de tabel weer met andere tabellen te verbinden (sleutel).
Deze gedeelde (sleutel)kolommen worden gebruikt om tabellen weer met elkaar te verbinden of er een join van te maken. Voor onze data zou de relatie of join-component in het groepsveld in elke tabel staan.
Join-typen
Hoewel de standaardmethode voor het combineren van data in Tableau Desktop relateren is, zijn er gevallen waarin u joins wilt maken van tabellen in Tableau Desktop of Tableau Prep Builder. Zie Joins maken van uw data voor een basisoverzicht van joins en join-typen.
'Nette' data
Hadley Wickham publiceerde in 2014 een artikel in de Journal of Statistical Software genaamd "Tidy Data" (augustus 2014, deel 59, nummer 10). Dit artikel levert uitstekend werk door een raamwerk voor data op te zetten dat goed gestructureerd is voor analyse. Het artikel is hier (Academische portefeuille van Hadley Wickham)(Link wordt in een nieuw venster geopend) of hier (gehost door r-project.org)(Link wordt in een nieuw venster geopend) te vinden.
Opmerking: het artikel wordt gehost op externe websites. Tableau neemt geen verantwoordelijkheid voor de juistheid of actualiteit van pagina's die worden onderhouden door externe aanbieders. Neem contact op met de eigenaren als u vragen hebt over hun inhoud.