Bevolkingspiramide in Tableau

De bevolkingspiramide. Voor demografen een bekend begrip, voor anderen misschien iets minder. Bevolkingspiramides worden gebruikt om een beeld te verkrijgen van de opbouw van de bevolking van een gebied of land.

Hoeveel nieuwe leerlingen stromen er jaarlijks in op basisscholen? Hoeveel mensen gaan de komende jaren met pensioen? Hoe groot is de grootste risicogroep voor het ontwikkelen van borstkanker? Allemaal voorbeelden van vragen waarbij een bevolkingspiramide van pas komt.

In deze blogpost leg ik uit hoe we op basis van CBS-data een bevolkingspiramide kunnen bouwen in Tableau. Als bonus geef ik nog een aantal opties voor verdere analyse.

Centraal Bureau voor de Statistiek (CBS)

Het Centraal Bureau voor de Statistiek (CBS) biedt openbare data die voor veel bedrijven en instanties van waarde kan zijn. Een goed voorbeeld van een waardevolle databron is de tabel Bevolking; geslacht, leeftijd en burgerlijke staat, 1 januari. Deze tabel geeft voor alle jaren van 0 t/m 99 aan hoeveel mensen in bepaalde meetjaren die leeftijd hebben. Er is zelfs een tabel waar voor elke postcode de aantallen worden gegeven.

De tabellen van het CBS geven de mogelijkheid om éénmalig een bepaalde waarde op te zoeken. Om een goed beeld te krijgen van de verhoudingen moet de data echter visueel gemaakt worden. Met behulp van tools zoals Tableau kan de data bovendien gekoppeld worden aan andere gegevens, zoals andere data van CBS of eigen procesdata.

Voor deze oefening maken we gebruik van de eerder genoemde tabel Bevolking; geslacht, leeftijd en burgerlijke staat, 1 januari. De dataset kan in verschillende formaten worden gedownload, daarbij zijn er 2 opties:

  1. Microsoft Excel
  2. Microsoft Excel (gereed voor het maken van een draaitabel)

De voorkeur gaat hierbij uit naar de tweede optie. Dit is waarom:

Optie 1

Optie 2

Het veld ‘Perioden’ geeft aan in welk jaar de meting is gedaan. Over alle periodes zijn dezelfde metingen gedaan, dus de meetwaarde (het aantal mensen, de measure) blijft altijd hetzelfde. Daarom hebben we één measure nodig en is het veld ‘Perioden’ een dimensie.

CBS biedt een keuze voor verschillende formaten, maar helaas hebben we die luxe niet altijd. Voor die situaties biedt Tableau een eenvoudige gratis Excel add-in om data te ‘reshapen’ voor gebruik in Tableau. Voor meer complexe bewerkingen kan Alteryx worden gebruikt.

Data voorbereiden

Publieke data is bijna nooit perfect voorbereid voor Tableau. Vóórdat het bestand in Tableau geladen kan worden, moet worden gezorgd dat de eerste regel de veldnamen bevat.
In deze dataset staan een aantal regels met totalen. Die informatie is niet nodig bij het maken van een bevolkingspiramide, dus gebruik ik een data source filter (Data > [bronnaam] > Edit Data Source Filters…)

Tableau visualisatie

  • De dimensie [Leeftijd] bepaalt de rijen.
  • Kleuren scheiden op basis van dimensie [Geslacht]
  • Een calculated field voor de measure [Aantal per geslacht]

De aantallen mannen en vrouwen zijn beide positief, dus om de gewenste scheiding te maken (mannen links, vrouwen rechts), is een calculated field nodig:

if [Geslacht] = "Mannen" then -[Waarde]
elseif [Geslacht] = "Vrouwen" then [Waarde]
end

De scheiding tussen mannen en vrouwen zou ook gemaakt kunnen worden door twee verschillende calculated fields ([Aantal mannen] en [Aantal vrouwen]) te plaatsen met een dual axis.

Het aantal mannen is in werkelijkheid natuurlijk een positief getal. Daarom moeten we de nummering van de X-as formatteren zoals in het screenshot:

Als laatste heb ik voor overzicht gezorgd door de leeftijden te groeperen per tiental. Hiervoor zijn verschillende opties:

  1. Handmatig groeperen
  2. Calculated fields
  3. Bins

In dit voorbeeld heb ik gekozen voor optie 3: bins.

  1. Maak van de leeftijden een measure met behulp van een calculated field:
    Leeftijd getal = int(left([Leeftijd],2))
  2. Rechts-klik de nieuwe measure en selecteer Create Bins…
  3. Plaats de nieuwe Bin geheel links op de Rows
  4. Verberg de header van de leeftijd

Tot zover de uitleg.

In het gepubliceerde dashboard staat een aantal voorbeelden van hoe deze visualisatie kan worden verbeterd en aangevuld:

  • Alle meetjaren in één dashboard
  • Overlappende aantallen voor mannen en vrouwen voor betere vergelijking
  • Percentages mannen en vrouwen per leeftijd

Je kunt het Tableau workbook downloaden voor verdere analyse of om verder te oefenen.

Wil je weten hoe je openbare data kunt toepassen binnen jouw bedrijfsprocessen of ben je geïnteresseerd in een dashboard met bevolkingspiramide voor elke postcode in Nederland? Neem contact met ons op en wij helpen je graag verder!