Laat u niet afschrikken door diepere relaties

Vanwege de aard van relaties is het belangrijker dan ooit om te begrijpen waar velden vandaan komen, wat hun domein is en waar nullen voor staan. Bedenk dat iedereen die de visualisatie bekijkt zonder toegang tot de pagina Databron of het deelvenster Data, afhankelijk is van de titel of andere informatie die de auteur opgeeft om de visualisatie correct te interpreteren.

Opmerking: als u nog niet vertrouwd bent met de principes achter databronnen die gebruikmaken van relaties, is het misschien nuttig eerst te kijken naar Laat u niet afschrikken door relaties voordat u zich in dit onderwerp verdiept.

Waarom zijn niet alle datumvelden gelijk?

Het is belangrijk om te onthouden dat het feit dat twee veldnamen, alleen omdat ze het woord 'Datum' bevatten, nog niet betekent dat de inhoud van die velden identiek is. Laten we eens kijken naar een voorbeeld met het niveau Jaar. Dat wil zeggen: het maakt niet uit wat de waarden voor maanden en dagen zijn, we zijn alleen geïnteresseerd in de jaren die de velden bestrijken.

Er zijn meerdere velden binnen De Bookshop-dataset met het datatype Datum.

  • Geboortedatum
  • Publicatiedatum
  • Verkoopdatum
  • En Gewonnen in het jaar en Jaar van oprichting bevatten ook datuminformatie, ook al zijn het numerieke velden.
    • Let op: als het pictogram in het deelvenster Data groen is, is dit veld continu. Klik met de rechtermuis op de veldnaam in het deelvenster Data en kies Converteren naar Discreet(Link wordt in een nieuw venster geopend). Het pictogram moet blauw worden. Doe dit zo nodig voor zowel Gewonnen in het jaar als voor Jaar van oprichting.

Maar het domein (de waarden in elk veld) kan variëren. Verplaats elk veld beurtelings naar de rijencontainer en kijk naar het aantal markeringen in de linkerbenedenhoek, waarbij u elk veld verwijdert voordat u het volgende tevoorschijn haalt.

  • YEAR(Birthday) heeft 27 markeringen, wat betekent dat het domein 27 verschillende jaren bevat.
  • YEAR([Publication Date]) heeft 15 markeringen, dus het domein bestaat uit 15 jaar.
  • Gewonnen in het jaar heeft 11 markeringen
  • Jaar van oprichting heeft vier markeringen
  • YEAR([Sales Date]) heeft één markering

Dit verschil in domeinen is erg belangrijk om in gedachten te houden. Als we de tabel met edities en prijzen op YEAR([Publication Date]) zouden relateren aan Gewonnen in het jaar, kunnen we analyses krijgen die gebruikmaken van een inner join en daarom worden teruggebracht tot alleen de jaren waarin een prijs is gewonnen. Daardoor zouden alle boeken uit jaren zonder bekroningen worden verwijderd. (Merk op dat dit niet hetzelfde is als het uitfilteren van boeken zonder bekroningen. Niet-bekroonde boeken die in hetzelfde jaar zijn gepubliceerd als een bekroond boek, blijven behouden. Alle boeken uit jaren zonder bekroningen worden volledig geschrapt. De filteractie van de join is op jaarniveau, niet op boekniveau.)

Voorbeeld: Publicatiedatum en Geboortedatum

Als we de publicatiedatum naar de kolommen verplaatsen en de geboortedatum naar de rijen, krijgen we een tabel met ABC's. U kunt de werkmap downloaden en zelf verder onderzoeken. (Vereist Tableau Desktop 2020.2 of later.)

ABC is maar een tijdelijke aanduiding, omdat er geen andere data zijn dan de jaren. Tableau heeft geen waarden om markeringen mee te maken, maar de ABC laat zien waar markeringen mogelijk naartoe gaan.

U ziet dat deze tabel veel lege ruimte heeft. Er is geen tijdelijke aanduiding voor publicatiejaar 2180 en geboortedatum 2133. Dit betekent dat de auteur die in 2133 is geboren, geen publicatie heeft in het jaar 2180.

Oké. Maar waarom is dat belangrijk?

Stel dat u een analyse over een bepaalde periode wilt uitvoeren. Neemt de verkoop van hardcovers in de loop van de tijd toe? Stelt u zich de grafiek voor als een tijdlijn die het formaat filtert op alleen hardcover, met Verkoop(Aantal) in rijen en de datum in Kolommen. Maar welk datumveld? Publicatiedatum? Geboortedatum? Verkoopdatum? Deze velden hebben goede namen en het is vrij duidelijk dat als we een vraag over de verkoop hebben, we Verkoopdatum moeten gebruiken. Maar niet alle datasets hebben zo'n duidelijke naam. Als de velden bijvoorbeeld 'Datum1' en 'Datum3' waren, was het veel moeilijker te bepalen. Vooral als de analytische vraag niet duidelijk doordacht is.

Uit welke tabel een veld afkomstig is en waar het domein van het veld voor staat, is essentieel voor de analyse.

Door het datumveld te wijzigen kunnen we de analyse volledig veranderen. Kijk eens naar deze twee visualisaties:

De eerste kan worden geïnterpreteerd als: "Hoeveel boeken zijn er geschreven door auteurs die in elk jaar geboren zijn?" Dit beantwoordt vragen als "Hebben oudere auteurs meer boeken geschreven?" (Nee) of "Auteurs uit welk geboortejaar zijn het meest productief?" (2155).

De tweede kan worden geïnterpreteerd als: "Hoeveel boeken werden er elk jaar gepubliceerd?" Dit beantwoordt vragen als "In welk jaar werden de meeste boeken gepubliceerd?" (2188) of "Is de publicatie van boeken in de loop van de tijd stabiel?" (Nee).

Het is lastig om de vraag te formuleren voor de visualisatie die de geboortedatum gebruikt, omdat dat een lastige combinatie van concepten is. Maar Tableau oordeelt niet en laat u elke vraag stellen die u wilt, ongeacht of u die vraag ook zo bedoelt. Dat is een belangrijke les. Als u Datum3 gebruikt terwijl u Datum1 had moeten gebruiken, geeft Tableau u een visualisatie. Maar niet alle datumvelden hebben dezelfde betekenis, en het is aan de auteur om te weten welk veld moet worden gebruikt om de juiste analyse te krijgen.

Voor meer informatie over het belang van de tabel waaruit een veld afkomstig is, raadpleegt u dit blogbericht(Link wordt in een nieuw venster geopend).

Wat betekent het dat er data ontbreken?

Er is een verschil tussen nul en null.

Nul betekent dat we hebben gemeten en dat iets er niet is. We weten de waarde en die is nul. Als ik geen boetes voor snelheidsovertredingen heb, rijd ik waarschijnlijk niet vaak te hard.

  • NB: 0 en 1 worden vaak gebruikt als verwisselbaar met Waar/Onwaar of andere binomiale waarden als Ja/Nee of Pass/Fail. In dit geval wordt nul gebruikt als label en niet als numerieke waarde.

Null betekent dat we het niet weten: we hebben niet gemeten of we hebben de data niet vastgelegd. Als mijn rijbewijs gewoon geen snelheidsovertredingen telt, hebben we geen idee of ik te hard rijd of niet.

Nullwaarden kunnen staan voor ontbrekende data of voor niet-bestaande data.

  • Wat betreft mijn rijbewijs: als de waarde van de snelheidsboetes null is, is het nog steeds denkbaar dat ik een snelheidsboete heb die niet is geregistreerd. We moeten ervan uitgaan dat er data ontbreken.
  • Niet-bestaande data kunnen worden geregistreerd als n.v.t., maar worden vaak gewoon niet vastgelegd omdat we geen onmogelijke dingen hoeven bij te houden. Hoeveel snelheidsboetes heb ik gekregen tijdens busritten? Die data zijn waarschijnlijk niet aanwezig in de dataset. In een matrix van "Vervoermiddelen" en "Snelheidsboetes" zijn sommige combinaties gewoon niet logisch. We mogen ervan uitgaan dat er geen data zijn.

Wanneer nullwaarden betekenis hebben

Er is kennis van de data nodig om te weten of een nul echt onbekend is (gebrek aan informatie over het aantal snelheidsboetes) of dat deze niet-bestaande data vertegenwoordigt (gebrek aan informatie over snelheidsovertredingen als buspassagier). Zijn de data betrouwbaar genoeg om gebrek aan informatie te kunnen opvatten als niet-bestaande data in plaats van als ontbrekende data? Wanneer een inhoudelijke expertise wordt toegepast, kunnen nullwaarden betekenisvol zijn.

Als we nog eens naar de tabel met ABC's kijken, kunnen we de ruimtes zonder tijdelijke aanduidingen analyseren. We gaan ervan uit dat deze data betrouwbaar zijn en dat een nullwaarde betekent dat de data eerder niet-bestaand zijn dan onvolledig.

Het ontbreken van een tijdelijke aanduiding betekent dat een auteur in een bepaald jaar is geboren (dus de rij bestaat) en dat er in dat jaar een boek is gepubliceerd (dus de kolom bestaat), maar dat het gepubliceerde boek niet is geschreven door een auteur die in dat jaar is geboren (dus de cel is leeg). We kunnen een zinnigelabel aan die lege ruimte toewijzen: Niets gepubliceerd. We zouden zelfs een analyse kunnen maken van deze nullwaarden. Hoeveel jaren zijn er, gegeven de datums in de data, bijvoorbeeld voor elke auteur verstreken zonder dat deze een boek heeft gepubliceerd?

Opmerking: ook in het domein Geboortedata zitten hiaten. Er zijn geen auteurs geboren in 2131 of 2132, dus Jaar springt van 2130 naar 2133 (de rijen voor 2131 en 2132 bestaan niet). Deze ontbrekende jaren kunnen worden geïnterpreteerd als "van geen enkel boek in deze dataset is de auteur in een van deze jaren geboren". Zoals hierboven echter is aangegeven bij het bespreken van het domein van de datumvelden, is het feit dat er waarden in het domein ontbreken, belangrijke informatie waarmee rekening moet worden gehouden bij het opbouwen van relaties of het kiezen van het veld dat in een visualisatie moet worden gebruikt als koptekst of as.

Bekijk dit blogbericht(Link wordt in een nieuw venster geopend) voor meer informatie over het werken met nullwaarden in relaties.

Praktische oefeningen

Schrijf een titel op voor elke visualisatie. Kunt u in gewone taal beschrijven wat er aan de hand is? Download de werkmap om de live visualisaties te verkennen. (Deze werkmap maakt gebruik van een enigszins aangepaste versie van De Bookshop-dataset en gebruikt slechts twee tabellen. De datumvelden zijn aangepast zodat ze als gerelateerd veld kunnen worden gebruikt.)

De matrix van visualisaties lezen: 

  • De balken tonen het aantal edities (paars) en het aantal bekroningen (groen) per jaar.
  • Elke kolom heeft een ander datumveld voor de as. De linkerkolom is het Publicatiejaar uit de tabel Editie, de middelste kolom is Gewonnen in het jaar in de tabel Bekroningen, en de rechterkolom is een berekend veld op basis van de publicatiedatum, maar als dat veld null is, wordt Gewonnen in het jaar gebruikt (deze berekening wordt gebruikt om ervoor te zorgen dat beide domeinen volledig vertegenwoordigd zijn).
  • Elke rij is een andere relatie voor de manier waarop de tabellen voor bekroningen en edities worden gecombineerd. De bovenste rij stelt een relatie in op Boek-ID, de middelste rij op Jaar, en de onderste rij op zowel Boek-ID als Jaar.
  • De balken voor het jaar 2183 zijn dikker om de vergelijking gemakkelijker te maken. In de onderstaande oplossing is dat het jaar waarvan de waarden in detail worden bekeken.
  • U ziet dat de twee gearceerde visualisaties identieke waarden hebben.

Als u vastloopt

Doorloop stap voor stap elk onderdeel van de visualisatie. Kijk naar de databronstructuur, de as en kopteksten, en de velden die voor de markeringen worden gebruikt (en uit welke tabellen ze komen). Denk na over nullwaarden en waarom ze er zouden kunnen zijn. Bekijk de data voor een paar specifieke markeringen om te zien welke records er zijn.

  • De databron is Bekroningen gerelateerd aan Edities per Boek-ID.
  • De datum-as is Publicatiejaar
  • De waarden zijn Aantal bekroningen en Aantal edities.

Kies één markering in de visualisatie definieer die. Voor het jaar 2183 toont de visualisatie dat er zeven edities en drie bekroningen zijn. Gebruik Onderliggende data weergeven om te onderzoeken welke records in elke markering worden vertegenwoordigd.

Edities

Bekroningen

Alles tezamen kan dit worden geïnterpreteerd als "retourneer de zeven boeken die in 2183 zijn gepubliceerd en vermeld voor die boeken alle prijzen die ze hebben gewonnen ongeacht wanneer ze die prijs hebben gewonnen". TM925 werd oorspronkelijk gepubliceerd in 2179 en de hardcover-editie won in dat jaar twee prijzen. In 2183 werd een andere editie van het boek gepubliceerd, mogelijk als paperback. De waarde voor Aantal of Bekroning is gekoppeld aan het boek, niet aan het jaartal.

De visualisatie kan dus grofweg worden geïnterpreteerd als "het aantal edities dat elk jaar is gepubliceerd, en hoeveel prijzen er zijn gewonnen door boeken die in dat jaar zijn gepubliceerd" of "het aantal edities dat elk jaar is gepubliceerd en het aantal prijzen dat door die boeken is gewonnen".

Oplossing van de praktische oefening

Het jaar 2183 – de dikkere balken – is het jaar dat we willen interpreteren. Informatie over edities is paars en informatie over bekroningen is groen. In de beschrijvingen wordt ook het jaartal 2187 genoemd, omdat dit een jaar is waarin geen prijzen zijn gewonnen maar wel boeken zijn gepubliceerd. Als zodanig is het een goede illustratie van de kracht van het gebruikte datumveld voor de as. Deze nuance wordt in de beschrijving in blauw weergegeven. Het belang van de gebruikte velden voor het instellen van de relatie op te zetten, wordt in roze weergegeven.

Deze visualisatie is bedoeld voor uw gemak, maar als u een betere ervaring wilt, downloadt u de werkmap en opent u hem in Tableau Desktop 2020.2 of hoger, zodat u kunt gebruikmaken van interactiviteit zoals knopinfo en Data weergeven. Als u de bladen wat zorgvuldiger wilt bekijken, klikt u met de rechtermuisknop op een van de dashboardtabbladen onderaan en kiest u Alle bladen zichtbaar maken. Hierdoor zijn alle afzonderlijke visualisaties beschikbaar en kunt u vanaf elk blad het deelvenster Data en de authoringomgeving zien, en ook welke velden zich in welke containers bevinden. Voor het bereiken van de drie verschillende relaties (de rijen van de bovenstaande matrix) zijn er drie verschillende databronnen.

Gerelateerde bronnen

Voelt u zich enigszins overweldigd en wilt u een stap terug doen? Probeer Laat u niet afschrikken door relaties.

Klaar om te beginnen aan berekeningen met Relaties? Bekijk Laat u niet afschrikken door berekeningen in relaties.

Bekijk voor meer informatie over de technische onderbouwing van relaties, rechtstreeks afkomstig van het Product Management-team, de serie over relaties in de Tableau-blog.

Zie ook videopodcasts over relaties van Actieanalyses(Link wordt in een nieuw venster geopend), zoals Waarom heeft Tableau relaties uitgevonden?(Link wordt in een nieuw venster geopend) Klik op 'Videopodcast’ in de Bibliotheek(Link wordt in een nieuw venster geopend) om meer te zien.

Bedankt voor uw feedback.De feedback is verzonden. Dank u wel.