1
STAGEVERSLAG CAREER MINOR
DIENST UITVOERING ONDERWIJS (DUO)
MARIJN ULENKATE | S2757397 | M.H.ULENKATE@STUDENT.RUG.NL | 06 8189 6729
BACHELOR INFORMATIEKUNDE
STAGEBEGELEIDER: BAS WIND | PRODUCT OWNER GEGEVENSGEBIED LIJNSTURING |
BEDRIJFSINFORMATIEVOORZIENING
STAGEBEGELEIDEND DOCENT: LEONIE BOSVELD-DE SMET | UNIVERSITAIR DOCENT
INFORMATIEKUNDE | RIJKSUNIVERSITEIT GRONINGEN
1
VOORWOORD
Dit stageverslag is geschreven in het kader van de Bachelor Career Minor van de Rijksuniversiteit
Groningen. Van eind oktober 2018 tot eind januari 2019 heb ik bij het Bedrijfsinformatiecentrum
van DUO een data-analyse uitgevoerd aangaande het ziekteverzuim binnen de organisatie.
Gegevens over ziekteverzuim zijn afgezet tegen inzet van intern en extern personeel, gerealiseerde
uren en telefonie-aantallen.
Het leveren van de data bleek complexer dan van tevoren gedacht en de omvang van de data was
beperkt. Hierdoor heb ik uiteindelijk geen zinvolle data-analyse kunnen uitvoeren. Hier zal ik onder
het kopje ‘Stage’ uitgebreid op ingaan. Wel heb ik de beginselen van een (online) dashboard
opgezet dat, wanneer de data beschikbaar zijn, naar behoeven kan worden aangepast en uitgebreid.
Ook heb ik mijn bevindingen over de huidige datastructurering van DUO in een memo aangekaart
en heb ik, afgaande op deze bevindingen, een advies over de datastructurering geschreven.
Bovendien heb ik mijn belangrijkste aandachtspunten van het gehele proces van de data-analyse
gebundeld in een naslagwerk.
Graag wil ik mijn stagebegeleider, Bas Wind, bedanken voor een prettige begeleiding en
samenwerking. Ook wil ik Roline Kamphuis bedanken. Zij stond altijd klaar om vragen te
beantwoorden, waardoor ik verder kon met mijn data-analyse. In de bijlagen heb ik een schema
toegevoegd met mijn algemene werkzaamheden. Hierin staat meer informatie over de aard en
frequentie van mijn afspraken met Roline.
Ik wens u veel leesplezier toe.
Marijn Ulenkate
2
INHOUDSOPGAVE
INLEIDING ... 3
DE STAGEGEVENDE ORGANISATIE ... 5
DE STAGE ... 7
DE STAGEOPDRACHT ... 7
VERLOOP STAGE ... 8
PROBLEMEN ... 9
CONTEXT EINDRESULTAAT ... 10
HET LEERATELIER ... 12
EVALUATIE ... 13
KENNIS EN COMPETENTIES ... 13
LEERDOELEN ... 14
VERBETERPUNTEN ... 15
CONCLUSIE ... 16
BIJLAGEN ... 17
WERKZAAMHEDEN ... 17
ADVIES ... 18
NASLAGWERK ... 20
HANDLEIDING ... 13
3
INLEIDING
Data-analyse staat sterk in de belangstelling, met name vanwege de toenemende
beschikbaarheid en de combinatie- en analysemogelijkheden van databases, om
vervolgens op feiten gebaseerde conclusies te trekken of beslissingen te nemen.
Hierdoor vormt data-analyse een steeds belangrijker onderdeel van organisaties.
Steeds vaker lees ik in de krant en online over het toenemende aantal
bedrijven/instanties dat hun data analyseert of laat analyseren door een hierin
gespecialiseerd bedrijf, zoals Analitiqs. Met name een voorbeeld van de politie sprak
mij erg aan. Zij maken namelijk gebruik van algoritmes die aan de hand van
opgeslagen data kunnen voorspellen waar de kans op criminaliteit het grootst is.
Aangezien data-analyse niet standaard onderdeel is van de studie en het mij
toch erg leuk leek om hiermee in aanraking te komen, heb ik gezocht naar een
stageplek waar ik meer kon leren over data-analyse. Voordat ik bij het
Bedrijfsinformatiecentrum van DUO terecht ben gekomen, ben ik nog met een aantal
andere instanties in gesprek gegaan.
Allereerst heb ik mijn motivatiebrief en CV geüpload op de site van de Rijksoverheid.
Ik heb hierbij aangegeven dat ik mijn stage graag bij de politie wilde lopen. Hierdoor
ben ik in contact gekomen met ICT-stagerecruiter Graciëlla Gentle. Na een aantal
weken te hebben afgewacht en meerdere malen telefonisch contact te hebben
gehad, werd duidelijk dat een stage bij de politie helaas niet zou lukken. Wel heeft ze
mijn motivatiebrief en CV doorgestuurd naar Marieke Lokhorst, IT-recruiter bij DUO,
die mij uitnodigde om op gesprek te komen. Aan haar heb ik destijds mijn wens om
met data-analyse aan de slag te gaan duidelijk gemaakt. Echter was er toen geen
stageplek voor mij beschikbaar. De stagecoördinator van de RUG, Esther Haag,
heeft hierna nog een lijntje uitgegooid naar DUO.
Aangezien ik na een aantal weken nog geen antwoord had gekregen vanuit
DUO ben ik ook in gesprek gegaan met de Universiteitsbibliotheek en Sogeti. Deze
laatste is een ICT-bedrijf met een aparte ‘Business analytics’ afdeling. Bij de
Universiteitsbibliotheek kon ik mij tijdens mijn stage gaan bezighouden met het
combineren van verschillende databases. De opdracht moest echter nog wel verder
worden geconcretiseerd. Ook werd aangegeven dat deze afdeling van de
Universiteitsbibliotheek tot dus ver nog geen stagiairs heeft aangenomen, maar dit
wel graag zou willen.
Met Sogeti heb ik telefonisch contact gehad. Ze waren onder de indruk van
mijn motivatiebrief en CV, maar zagen helaas geen kans om een stagiair aan te
nemen voor slechts drie maanden. Wel werd ik aangespoord om nogmaals contact
met hen op te nemen wanneer ik voor langere tijd stage kan lopen.
4
werkzaam bij het Bedrijfsinformatiecentrum van DUO. Hij wilde graag met mij in
gesprek en gaf aan reeds een mooie stageopdracht voor mij klaar te hebben liggen.
Tijdens mijn sollicitatiegesprek heeft Bas de opdracht nader uitgelegd. Ook heeft hij
mij de werking van een van de genoemde programma’s in de stageopdracht,
Business Objects, laten zien en mij aan een aantal collega’s voorgesteld. De keuze
tussen de Universiteitsbibliotheek en DUO was na dit sollicitatiegesprek niet moeilijk:
door het feit dat er bij DUO al een heldere opdracht klaarlag en het enthousiasme
van Bas heb ik ervoor gekozen om mijn stage bij het Bedrijfsinformatiecentrum van
DUO te lopen.
Mijn stage duurde van eind oktober 2018 tot eind januari 2019. Gedurende deze
dertien weken dat ik stage heb gelopen bij DUO heb ik wekelijks 36 uur gewerkt. Van
maandag tot en met donderdag was ik aanwezig op het hoofdkantoor aan de
Kemkensberg 12 om mijn werkzaamheden uit te voeren
In dit verslag wordt ten eerste kort aandacht besteed aan de achtergrond van
DUO en het Bedrijfsinformatiecentrum. Hierna zal ik ingaan op de stage zelf en zal ik
mijn opdracht, werkzaamheden en resultaten benoemen. Als laatst evalueer ik mijn
stage aan de hand van onder meer mijn vooraf opgestelde leerdoelen. Ook zal ik de
problemen waar ik tegenaan ben gelopen uitlichten en het hebben over mijn
stagebegeleiding.
5
DE STAGEGEVENDE ORGANISATIE
DUO is een afkorting die staat voor Dienst Uitvoering Onderwijs. Dit een
uitvoeringsorganisatie die valt onder de Rijksoverheid voor het onderwijs. Het
takenpakket van DUO is breed. Deze uitvoeringsorganisatie informeert bijvoorbeeld
onderwijsdeelnemers zoals studenten en leerlingen. Ook heeft DUO een belangrijke
informerende functie voor onderwijsinstellingen. Verder organiseert DUO examens.
Het doel van DUO is het verbeteren van onderwijs in Nederland.
De Dienst Uitvoering Onderwijs (DUO) voert een aantal taken uit in opdracht
van de minister van Onderwijs, Cultuur en Wetenschap. In opdracht van deze
minister worden wetten met betrekking tot het onderwijs uitgevoerd door DUO. Hierbij
functioneert deze uitvoeringsorganisatie als een baten-lastendienst. DUO voert in
opdracht van het ministerie van Sociale Zaken en Werkgelegenheid ook de Wet
inburgering uit. In feite werkt de Dienst Uitvoering Onderwijs in opdracht van twee
ministeries. Het takenpakket van DUO is zowel financieel als organisatorisch.
WAT ZIJN DE TAKEN VAN DUO?
Uit de hierboven geschreven alinea's kan men opmaken dat de Dienst Uitvoering
Onderwijs een breed takenpakket heeft. Dit takenpakket kan worden opgedeeld in
een aantal hoofdtaken. Allereerst is DUO verantwoordelijk voor het bekostigen van
onderwijsinstellingen. DUO betaald dus scholen en opleidingsinstituten. Daarnaast
verstrekt DUO ook studiefinanciering aan studenten en ondersteund deze organisatie
studenten met de tegemoetkoming in de schoolkosten. Verder is DUO
verantwoordelijk voor het innen van lesgeld. Als studenten een studieschuld hebben
opgebouwd kunnen ze ook in aanraking komen met DUO want deze organisatie is
ook verantwoordelijk voor het innen van studieschulden.
DIPLOMABANK, EXAMENS EN ADMINISTRATIE
DUO is ook de belangrijkste organisatie als het gaat om het erkennen van diploma's.
DUO kan de waarde van een diploma bepalen op de arbeidsmarkt. Ook kan DUO
inschatten wat de waarde van een diploma is als men wil doorstuderen. DUO beheert
een Diplomabank. Hierin kan men eventueel een diploma terugvinden als men deze
kwijt is geraakt of als een diploma door een calamiteit zoals een brand is vernietigd.
DUO organiseert ook verschillende examens. Voorbeelden hiervan zijn het
schoolexamen en het staatsexamen. In het kader van de Wet inburgering worden
ook inburgeringexamens georganiseerd. De gegevens van deze examens en de
resultaten daarvan worden ook door DUO beheert. Ook het proces van aanmelding
voor hoger onderwijs wordt door DUO verzorgd evenals de selectie en de plaatsing
van studenten in het hoger onderwijs. Tot slot functioneert DUO als het Nationaal
Europass Centrum Nederland.
6
TOT SLOT
DUO is een brede organisatie die primair gericht is op het optimaliseren en beheren van alle
processen rondom het onderwijs. Het gaat hierbij zowel om de financiële aspecten als om alle
administratieve en organisatorische aspecten. Door het brede takenpakket vormt DUO een
verzamelpunt voor informatie voor leerlingen, docenten, scholen, universiteiten en
overheden op het gebied van opleiding.
HET BEDRIJFSINFORMATIECENTRUM
Het Bedrijfsinformatiecentrum van DUO is verantwoordelijk voor de informatievoorziening
voor sturing en verantwoording op alle niveaus van de organisatie. Ook is het
Bedrijfsinformatiecentrum verantwoordelijk voor een aantal registratiesystemen- en modules
op het terrein van lijn- en projectregistraties. Dit geldt bijvoorbeeld voor de
urenverantwoording.
Het Bedrijfsinformatiecentrum is tevens opgedeeld in een aantal serviceteams dat
verantwoordelijk is voor een deel van de informatievoorziening van het
Bedrijfsinformatiecentrum. Lijnsturing is verantwoordelijk voor de informatievoorziening aan
het bestuur van DUO (en zijn gedelegeerden). Informatie wordt verstrekt over financiën,
bezetting, uren en personeel.
7
DE STAGE
DE STAGEOPDRACHT
Mijn stageopdracht luidde als volgt:
“ Onderzoek met behulp van de beschreven applicaties (Business Objects en RStudio) of er
ziekteverzuim te verklaren is uit de volgende onderwerpen:
-
Werkvoorraden (telefonie en e-mail)
-
Inzet van personeel (uren en FTE’s)
-
Span of control management (aantal medewerkers per manager)
Visualiseer dit.
Zorg ervoor dat de inspanningen worden opgeslagen in workspaces om ze later met vergelijkbare
datasets te kunnen hergebruiken.
Geef op basis van de bevindingen een advies. Het advies wordt gebruikt als input voor een memo
richting het bestuur van DUO teneinde budget te verkrijgen voor verder onderzoek. ”
De data-analyse kan mijns inziens worden opgedeeld in de volgende vier fasen:
1.
Verzamelen
Bas leverde mij de benodigde data voor de analyse. Bij aanvang van mijn stage kreeg ik al data over
verzuimgegevens aangeleverd, zodat ik gelijk met deze kon oefenen in RStudio.
2.
Structureren
Dit betreft onder meer het zorgen voor informatieve variabele namen, het samenvoegen van
datasets en het filteren van variabelen. Ook kan de wijze van presentatie van gegevens worden
aangepast. Zo bestaat het verschil tussen breed en lang formaat. “Brede” gegevens hebben voor
iedere variabele een aparte kolom. Gegevens in een “lang” formaat hebben een kolom voor
mogelijke variabele typen en een kolom voor de waarde van deze variabelen. Ter illustratie: lang en
wijd formaat.
Product
Type
Waarde
A
breedte
12
A
hoogte
10
B
breedte
8
C
hoogte
10
Bepaalde visualisaties en statistische toetsen eisen dat de data zijn weergegeven in breed formaat
en vice versa. Hierom heb data soms op deze manier moeten converteren.
Product
Breedte
Hoogte
A
12
10
B
8
NA
8
3.
Analyseren
Dit betreft het toepassen van statistische toetsen op de data. Uit deze stap kunnen de grootste
conclusies m.b.t. de data worden getrokken. Echter heb ik deze stap door het gebrek aan data en de
beperkte omvang hiervan niet goed uit kunnen voeren. Ik zal later de problemen nader toelichten.
4.
Visualiseren
Het is belangrijk om de goede visualisaties te kiezen voor de typen gegevens. Zo zijn lijngrafieken
geschikter om veranderingen over tijd weer te geven, en staafdiagrammen om aantallen te
visualiseren. Ook moet een geschikt informatieproduct worden gekozen om deze visualisaties
samen te voegen. Zo zijn er statische manieren (rapporten, markdowns) en dynamische manieren
(dashboards).
Gegevens hoeven overigens niet altijd eerst geanalyseerd te zijn alvorens deze kunnen worden
gevisualiseerd. Een visualisatie van ‘ruwe’ data, afkomstig rechtstreeks uit de datasets, is ook
mogelijk.
VERLOOP STAGE
Mijn stage kan globaal verdeeld worden in de volgende vier fasen:
1.
Oriënteren: week 1 t/m 3
Tijdens de eerste drie weken van mijn stage heb ik de data verkent en wat geoefend met RStudio en
de verschillende packages die ik nodig dacht te hebben. Ook heb ik in deze weken nog gekeken naar
het programma Power BI. Dit programma kan op een gemakkelijke manier grafieken opbouwen. Ik
heb ervoor gekozen dit programma tijdelijk te gebruiken om sneller inzichten te genereren in de
data.
2.
Analyseren en visualiseren: week 3 t/m 11 (inclusief kerstvakantie)
Tijdens deze weken heb ik mij gericht op het analyseren en visualiseren van de data in R. Hiervoor
heb ik ook de data gestructureerd. Ook heb ik gedurende deze weken het dashboard opgebouwd. In
de kerstvakantie heb ik hieraan doorgewerkt, hoewel ik wegens persoonlijke omstandigheden
minder heb kunnen doen tijdens de vakantie dan gehoopt.
3.
Advies en afronding: week 11 t/m 13
In deze laatste twee weken heb ik mijn memo (advies) over de structurering van data geschreven en
mijn dashboard helemaal afgemaakt. Ook heb ik mijn code nog opgeschoond waar mogelijk en
voorzien van meer commentaar. Tot slot heb ik mijn naslagwerk en de handleiding van het
dashboard geschreven.
9
PROBLEMEN
Zoals ik eerder aangaf, heb ik geen zinvolle data-analyse kunnen uitvoeren. Dit had meerdere
oorzaken.
1.
Beperkte beschikbaarheid data
Al na een aantal weken bleek dat het lastig was om data aan mij te verschaffen over telefonie- en
mail-aantallen. Mijn stagebegeleider heeft tevergeefs gepoogd om deze gegevens in handen te
krijgen. Het bleek uiteindelijk onmogelijk om aan data betreffende mail-aantallen te komen. Data
over telefonie-aantallen waren slechts uit 2015 beschikbaar.
De data waarmee ik uiteindelijk heb gewerkt waren van beperkte omvang. In de eerste instantie had
ik gegevens over 5 afdelingen, die elk vervolgens waren onderverdeeld in onderafdelingen. Alle data
van deze onderafdelingen kon worden samengevoegd. Doordat de datalevering van bepaalde
afdelingen echter onmogelijk bleek, heeft mijn begeleider een aantal afdelingen verwijderd uit de
data. Hierdoor had ik uiteindelijk een afdeling over, namelijk die van klantbediening.
2.
Ongeschiktheid statistische toetsen
Door de aard en omvang van de data vielen een hoop statistische toetsen bij voorbaat af. Zo is een
voorwaarde van veel statistische toetsen dat de data ongepaard zijn. Deze voorwaarde werd door
de aard van de data geschonden. De data bevatten namelijk maandgegevens. Hoewel niet expliciet
af te leiden was van welke werknemers de gegevens afkomstig waren, kon wel worden gesteld dat
de gegevens meerdere malen dezelfde personen betroffen. Er was dus sprake van gepaarde,
afhankelijke data.
Samen met Antonio Toral, docent statistiek aan de Rijksuniversiteit Groningen, heb ik aan het begin
van mijn stage gekeken naar geschikte toetsen voor mijn data. Samen zijn we tot de conclusie
gekomen dat een simpele correlatietoets en de complexere ‘Linear Mixed Effects Regression’ (LMER)
de meest geschikte opties waren. Deze laatste toets biedt de mogelijkheid om zogenaamde ‘random
effects’ toe te voegen aan het model. Deze maken een inschatting van de afwijking die metingen
van eenzelfde werknemer hebben t.o.v. de regressielijn. In de eerste instantie had ik variabelen als
afdeling, onderafdeling en tijdstip willen gebruiken als random effects. Doordat ik uiteindelijk slechts
data had over een afdeling (klantbediening) vielen deze random effects af. Hierdoor kon ik deze test
niet meer gebruiken.
Mijn correlatietoets heb ik toe kunnen passen op de verzuimgegevens in combinatie met
gerealiseerde FTE’s/uren. Aangezien deze datasets in feite dezelfde gegevens weergaven, heb ik de
toets op een van de twee datasets toegepast. Een correlatietoets tussen verzuimgegevens en
telefonie-aantallen bleek helaas onmogelijk. Doordat de telefonie-aantallen alleen over 2015
beschikbaar waren, had ik te weinig datapunten voor de toets. Dit waren er namelijk maar 12; voor
iedere maand een.
De datasets bevatten dus gegevens op maandniveau. Wanneer de gegevens op dagniveau geleverd
zouden zijn, zouden al een hoop meer datapunten gebruikt kunnen worden voor de analyse. Hoe
10
meer datapunten, hoe zorgvuldigere analyse uitgevoerd kan worden. Bovendien waren de data
geanonimiseerd; de data waren niet herleidbaar tot persoon.
3.
Begeleiding
Er was weinig inhoudelijke begeleiding. Nog niet eerder is gewerkt met RStudio, noch is eerder een
data-analyse op dit gebied uitgevoerd. Hierom heb ik actief hulp gezocht en heb ik uiteindelijk veel
gehad aan de hulp van Antonio Toral en Roline Kamphuis (data-analist OCW).
4.
Overig
Het duurde zeer lang voordat ik toegang had tot de vaste werkplekken van DUO. Hiervoor heb ik
moeten werken op een laptop, wat verre van ideaal is om een data-analyse op uit te voeren. Met
name het visualiseren van de data werd hierdoor belemmerd. Bovendien was er lange tijd
onduidelijkheid over de beschikbaarheid van een ‘Shiny-server’ (hierover later meer). In de eerste
instantie zou ik mijn eigen account krijgen waarmee ik toegang tot de server kreeg. Echter heb ik
uiteindelijk gewerkt op het account van een collega.
Het was ook niet altijd duidelijk hoe de data tot stand waren gekomen. Zo schold achter de
gegevens over verzuim een formule; de uiteindelijke gegevens over verzuim waren opgebouwd
doordat een formule op zogenaamde ‘bouwstenen’ was toegepast. De verzuimgegevens waren op
deze manier gebaseerd op een drietal variabelen. Het was hierdoor voor mij niet gelijk duidelijk wat
de gegevens representeerden.
Tot slot ging ik er wellicht te veel vanuit dat ik verbanden en trends zou ontdekken in de data.
Hierdoor had ik, met name in het begin van mijn stage, het gevoel dat ik iets fout deed. Ik kon
namelijk geen interessante ontwikkelingen ontdekken in de data.
CONTEXT EINDRESULTAAT
Doordat het uitvoeren van een goede data-analyse onmogelijk bleek, heb ik mij uiteindelijk gericht
op het neerzetten van een geschikt informatieproduct dat gemakkelijk kan worden aangepast en
uitgebreid wanneer de data hiervoor beschikbaar zijn. Mijn keuze hiervoor is gevallen op een
(online) dashboard. Een dashboard is visuele weergave van een aantal brokken inzichtelijke
informatie. Het is een mooie manier om op continue basis belangrijke informatie naar betrokkenen
te communiceren.
Het dashboard heb ik door middel van de R-package ‘Shiny’ opgezet. Shiny biedt de mogelijkheid
om gemakkelijk rechtstreeks vanuit R interactieve web-applicaties te bouwen. De applicaties kunnen
worden uitgebreid met CSS-thema’s, HTML-widgets en JavaScript. Het dashboard is tevens
interactief. Op verschillende manieren kunnen datafilters worden geïmplementeerd. Zo kunnen
bijvoorbeeld alleen gegevens uit een bepaald jaar worden weergegeven, of kan ervoor worden
gekozen om de gegevens van een bepaalde afdeling weg te laten.
Zoals eerder aangegeven heb ik het dashboard zo gebouwd dat deze gemakkelijk kan worden
aangepast en uitgebreid. Hiervoor heb ik mijn code voorzien van informatief commentaar; per stuk
11
code heb ik aangegeven wat dit doet en hoe deze eventueel kan worden uitgebreid. Zo bestaat de
code uit twee delen: de UI en de server. Deze eerste zorgt eigenlijk voor het uiterlijk van het
dashboard. Hierin worden ook de CSS, HTML en JavaScript-elementen aangeroepen. In het tweede
onderdeel, de server, worden de data opgeroepen en de verschillende visualisaties aangemaakt.
Deze worden vervolgens in de UI weer expliciet aangeroepen. Deze tweedeling heb ik ook duidelijk
gemaakt met mijn commentaar, zodat men de code op de goede plek zal aanpassen.
Naast het voorzien van commentaar heb ik een handleiding van het dashboard geschreven. Hierin
staat voornamelijk informatie over de mappenstructuur van de server. Waar horen welke bestanden
te staan? Hoe kom ik in de goede map en check ik ik welke map ik mij momenteel bevind? Hoe voeg
ik bestanden toe aan de desbetreffende map? Ook staat hierin informatie over het beheer van de
server en waar men terecht kan met eventuele problemen. Als laatst heb ik in de handleiding een
aantal openstaande verbeteringen gezet. Dit zijn dingen waar ik gezien te tijd niet meer aan toe ben
gekomen, zoals het schrijven van een formule waardoor eenzelfde filter tegelijkertijd op meerdere
datasets kan worden toegepast.
Ook heb ik een advies (memo) geschreven over de datastructurering van DUO en hoe deze
verbeterd kan worden. De belangrijkste punten die in mijn advies staan zijn:
1.
Het overwegen of de analyse en/of structurering moet worden uitgevoerd door in- of
extern personeel. Hierbij heb ik de belangrijkste voor- en nadelen van beide opties benoemd en ook
een combinatie van beide uitgelicht.
2.
Het verkennen van mogelijkheden om het Datawarehouse (DWH) te koppelen aan een
applicatie als R. Het is namelijk wenselijk om zo veel mogelijk schakels binnen het proces van een
data-analyse binnen dezelfde programmatuur te hebben. Zo zullen de meest recente data altijd
beschikbaar zijn om te worden weergegeven op bijvoorbeeld een dashboard. Hierbij heb ik
overigens wel aangegeven dat ik onzeker ben of R hiervoor de meest geschikte tool is en dat er
wellicht betere opties bestaan (zoals Python). R slaat namelijk alles op in intern geheugen, wat
impliceert dat het ongeschikt is om te gebruiken wanneer wordt gewerkt met grote hoeveelheden
data. Mijn advies hierover was dan ook om dit met een expert te bespreken.
Naast de aandachtspunten die ik belicht heb in de memo, heb ik nog een hoop andere punten
genoteerd die van belang zijn bij het uitvoeren van een data-analyse. De aandachtspunten heb ik
benoemd per onderdeel van een data-analyse, onderverdeeld in het doel, de input, de verwerking
en het informatieproduct (output). Al deze punten heb ik gebundeld in een naslagwerk, dat ik
vervolgens als bijlage aan mijn memo heb toegevoegd.
12
HET LEERATELIER
Het Leeratelier is een centraal punt binnen DUO dat is opgericht om meer jonge talenten aan
de organisatie te verbinden. Het Leeratelier is onder andere verantwoordelijk voor de
instroom, doorstroom en uitstroom van stagiairs en WEP’ers (mensen die hier een
werkervaringsplaats doen). Daarnaast is het Leeratelier het eerste aanspreekpunt voor
stagiairs, WEP’ers, interne opdrachtgevers, stagebegeleiders, coaches en
onderwijsinstellingen. Voor vragen kan je dus bij het Leeratelier terecht.
Het Leeratelier inventariseert eerst wat voor opdrachten er zijn bij de verschillende
afdelingen binnen DUO en probeert dan een match te maken met een student op basis van
CV en selectiegesprekken. Op deze manier levert het voor beide partijen veel op; de jongere
doet werkervaring op of kan een afstudeeronderzoek doen, de werknemer ervaart meer
werkplezier en krijgt de kans om zichzelf verder te ontwikkelen. Daarnaast zijn de opdrachten
die de stagiairs doen van grote waarde voor DUO doordat ze binnen de strategische
doelstellingen passen.
Nadat je bent geselecteerd voor een stage blijft het Leeratelier je steunen,
bijvoorbeeld door het organiseren van intervisiebijeenkomsten, workshops en borrels. Ook
kan je als stagiair tijdens de stageperiode altijd bij het Leeratelier terecht voor vragen.5
Tijdens mijn stage heb ik veel gehad aan het Leeratelier. Allereerst is via het Leeratelier het
ondertekenen van de contracten goed verlopen en heb ik een handig informatieboekje
ontvangen met daarin informatie over een aantal algemene zaken, zoals stagevergoeding en
reiskosten. Ook heb ik via het Leeratelier een hoop mede-stagiairs leren kennen. In de eerste
instantie zou de eerste gelegenheid om andere stagiairs te ontmoeten pas tijdens de
kerstborrel zijn. Aangezien ik toch graag wat eerder samen wilde komen heb ik aan Marije van
het Leeratelier voorgesteld om een vrijblijvende lunch te organiseren voor alle stagiairs. Hier
zijn toen een hoop stagiairs op afgekomen; schijnbaar was ik toch niet de enige die dit een
goed idee leek.
Samen met vier andere stagiairs heb ik een gezellig groepje gevormd. We lunchten
vaak samen en hebben ook een aantal keer een spelletjes dag bij iemand thuis georganiseerd.
Ook met Marije van het Leeratelier heb ik leuk contact gehouden tijdens mijn stage. Tijdens
lunches en borrels heb ik vaak gezellig met haar gekletst. Aangezien zij natuurlijk met een
hoop stagiaires te maken heeft, kon ze me ook geruststellen in het feit dat het niet raar is om
redelijk wat tijd nodig te hebben om op gang te komen met een stageopdracht. Dit was
natuurlijk erg fijn om te horen.
13
EVALUATIE
KENNIS EN COMPETENTIES
Vanuit mijn studie:
1.
RStudio en statistiek
Tijdens de vakken Statistiek 1 en 2 heb ik gewerkt met R en zijn een hoop statistische toetsen aan
bod gekomen.
2.
HTML, CSS, JavaScript
Deze programmeertalen zijn tijdens meerdere vakken en projecten teruggekomen. Tijdens deze
vakken en projecten moest een webpagina worden gebouwd voor onder meer een restaurant en
een klein sociaal netwerk.
3.
Data-analyse
Hoewel ik tijdens de studie nog niet eerder een soortgelijke data-analyse heb hoeven uitvoeren,
worden er tijdens de studie wel een hoop data geanalyseerd. Tijdens een vak als Inleiding
Wetenschappelijk Onderzoek heb ik al eerder Twitter-data moeten analyseren. Ook heb ik reeds een
sentiment-analyse uitgevoerd op Twitter-data . Bovendien heb ik mij tijdens NLP beziggehouden
met de manier waarop computers moeten worden geprogrammeerd om grote hoeveelheden
natuurlijke taalgegevens te verwerken en analyseren.
4.
Algoritmisch denken
Het opdelen van het probleem in kleinere sub-problemen, gegevens logisch organiseren, denken in
een reeks geordende stappen en het generaliseren van het proces om een probleem op te lossen
vallen alle onder de term algoritmisch denken. Ik merk dat ik een hoop van deze stappen (onbewust)
heb toegepast tijdens het uitvoeren van mijn stageopdracht. Zo ben ik klein begonnen met het
onderzoeken van slechts een dataset en heb ik hier pas later andere datasets aan toegevoegd.
Stapsgewijs heb de gegevens onderzocht en gestructureerd op zo’n manier dat ze konden worden
geanalyseerd en gevisualiseerd. De verschillende stappen heb ik in mijn code goed van elkaar
onderscheiden door het voorzien van commentaar. Ook kunnen de verschillende stukken code,
onderverdeeld in kopjes, naar wens worden in- en uitgeklapt. Zo kun je ervoor kiezen om slechts
een bepaald stuk code te bekijken. Een hoop stukken code zijn tevens reproduceerbaar.
5.
Conceptueel denken
Deze vaardigheid is helaas minder naar voren gekomen. Omdat in de stageopdracht stond
aangegeven dat ik met RStudio te werk zou gaan, heb ik mij hierop wellicht te veel vastgepind en
andere, eventueel meer geschikte opties, over het hoofd gezien. Zo zou het dashboard natuurlijk
ook met behulp van een andere tool gebouwd kunnen worden.
Wel heb ik in mijn memo en naslagwerk aangegeven dat R niet de meest geschikte taal is om het
Datawarehouse aan te koppelen en dat een taal als Python hier misschien meer geschikt voor is. Op
deze manier heb ik toch nog wat afstand van R genomen. Ook heb ik aan het begin van mijn stage
nog gebruik gemaakt van een ander programma dan RStudio, namelijk Power BI. Met dit
programma kunnen gemakkelijk mooie visualisaties tot stand worden gebracht. Dit programma heb
ik tijdelijk gebruikt om sneller inzichten te krijgen in de data.
14
Persoonlijk:
1.
Actieve houding/initiatief tonen
Aangezien er geen inhoudelijke begeleiding beschikbaar was, heb ik een actieve houding moeten
aannemen om hulp te krijgen.
2.
Precies
Ik heb over het algemeen een goed oog voor detail. Zo ben ik tijdens het bestuderen van de
verscheidene datasets op een aantal opmerkelijke dingen gestuit. Deze heb ik vervolgens aan mijn
stagebegeleider voorgelegd. Vaak bleek inderdaad dat er iets niet juist was aan de data en heb ik
nieuwe , juiste data gekregen.
LEERDOELEN
Voorafgaand aan de stage heb ik een aantal leerdoelen opgesteld. Ik zal deze benoemen en
aangeven in hoeverre ik erin ben geslaagd om deze doelen te behalen.
1. Kennis opdoen over RStudio en bijbehorende visualisatie-tools.
In dit leerdoel ben ik zeer geslaagd. Ik heb onwijs veel geleerd over de mogelijkheden van
visualisaties die RStudio aanbiedt. Zo wist ik niet dat ik via RStudio interactieve visualisaties
kon bouwen, waarbij kan worden ingezoomd en hover-informatie wordt weergegeven. Bij
mijn eerdere statistiek vakken, waarbij ook gebruik van RStudio werd gemaakt, is het namelijk
bij simpele visualisaties gebleven. Ik ben erg blij dat ik nu heb geleerd hoe ik deze visualisaties
kan opzetten en hoop dit tijdens het schrijven van mijn scriptie ook toe te kunnen passen.
Naast het maken van de interactieve visualisaties heb ik ook geleerd hoe ik een Shiny-
dashboard kan opzetten met R. Alhoewel ik niet verwacht dat ik eenzelfde server nog vaak
tegen zal komen (het opzetten van een server kost een hoop geld), heb ik hier toch goed
kunnen oefenen met coderen in R, HTML en een klein beetje CSS. Eenzelfde dashboard kan
overigens ook worden gemaakt middels Python in plaats van R. Mocht ik toch ooit nog een
dashboard mogen bouwen met Python heb ik al een hoop kennis opgedaan over hoe dit te
werk gaat.
2. Kennis opdoen over het analyseren van grote hoeveelheden data; hoe bepaal ik welke data-
onderdelen relevant zijn voor mijn onderzoek, hoe onderzoek ik welke relevante verbanden bestaan?
In dit leerdoel ben ik helaas minder geslaagd. Ik heb met name geleerd dat de kwaliteit en
omvang van data ontzettend belangrijk zijn voor het doen van een goede data-analyse. Met
de beperkte data die ik had om mee te werken, heb ik geen waardevolle analyse kunnen
doen. Wel heb ik door het bouwen van het dashboard en het schrijven van het naslagwerk
een goede basis opgezet waarop voortgebouwd kan worden.
Tijdens mijn Career Minor had ik, naast bovenstaande doelen, ook nog het volgende leerdoel
opgesteld: Ik wil graag wat zelfverzekerder worden. Hierin ben in, verspreid over de gehele
Career Minor, langzaam in gegroeid. Mijn stage heeft hieraan zeker bijgedragen. Ik heb een
mooi eindproduct neergezet waarover mijn stagebegeleider erg te spreken is, wat natuurlijk wel een
boost geeft.
15
VERBETERPUNTEN
1. Ik hoef niet altijd te pleasen. Wanneer ik het ergens niet mee eens ben of ergens van baal,
mag ik dit best duidelijk aangeven. Hierin was ik nu vrij voorzichtig.
2. Effectief en efficient schrijven. Stem je teksten af op het te behalen doel (van je tekst) en de
beoogde lezers. Ontdoe stukken die je oplevert van niet noodzakelijke elementen. Dit zorgt
ervoor dat de lezers (vaak management en andere opdrachtgevers onder tijdsdruk) in zeer
korte tijd de essentie van een stuk tot zich kunnen nemen.
16
CONCLUSIE
De stageopdracht, zoals deze bij aanvang van de stage was geformuleerd, heb ik niet geslaagd uit
kunnen voeren door de beperkte omvang van de beschikbare data. In plaats van het uitvoeren van
een data-analyse heb ik mij gericht op het neerzetten van een dashboard. De bijbehorende
handleiding en commentaar zorgen ervoor dat het dashboard gemakkelijk kan worden aangepast en
uitgebreid. Mijn advies over de datastructurering van DUO zal
worden gebruikt als input voor een
memo richting het bestuur van DUO teneinde budget te verkrijgen voor verder onderzoek.
Hoewel het natuurlijk jammer is dat ik geen zinvolle data-analyse heb kunnen uitvoeren, heb ik wel
een hoop geleerd van mijn stage. Ik hoop mijn verworven kennis snel toe te kunnen passen tijdens
mijn studie.
17
BIJLAGEN
WEEK
ACTIVITEITOMSCHRIJVING
Week 1 | 29 oktober – 1 november
- Verkenning datasets en RStudio
Week 2 | 5 november – 8 november
- Oefenen RStudio
- Kennismaking Annemijn
- Uitproberen POWER-BI
Week 3 | 12 november – 15 november
- Kennismaking Roline
- Oefenen RStudio: mergen datasets
Week 4 | 19 november – 22 november
- Oefenen RStudio
Week 5 | 26 november – 29 november
- Ziek
Week 6 | 3 december – 6 december
- Oefenen RStudio: ggplot2 package
- Afspraak Antonio Toral
- Afspraak Roline: ging niet door
Week 7 | 10 december – 13 december
- Oefenen RStudio: ggplot2 package
- INTERIM
- Afspraak Roline in Den Haag: opzetten
Shiny Rijkscloud server
Week 8 | 17 december – 20 december
- Verder werken aan Shiny-dashboard
- Afspraak Roline in Den Haag: begin
visua-lisaties Shiny-dashboard
Week 9 | 24 december – 27 december
(kerstva-kantie)
- Verder werken aan Shiny-dashboard
- Data telefonie toevoegen
- Filters toevoegen
Week 10 | 31 december – 3 januari
(kerstvakan-tie)
- Verder werken aan Shiny-dashboard
- Statistiek toevoegen: correlatie
Week 11 | 7 januari – 10 januari
- Begin advies schrijven
- Begin handleiding dashboard schrijven
Week 12 | 14 januari – 17 januari
- Advies, stageverslag en handleiding
ver-der afschrijven
- Code nog ietwat opschonen en extra
comments toevoegen indien nodig
- Dashboard helemaal afgemaakt
- Afspraak Roline in Den Haag: statistiek en
bespreken advies
Week 13 | 21 januari – 24 januari
- Code opgeschoond, memo, naslagwerk
Pagina 1 van 2 Directie Rijksuniversiteit Groningen Afdeling Informatiekunde Contactpersoon Marijn Ulenkate Datum 22-01-2019 Bijlagen
Naslagwerk (big) data analytics
Advies structurering data DUO
Beste Bas,
Vanaf november 2018 is gedurende drie maanden een data-analyse uitgevoerd aangaande het ziekteverzuim binnen DUO. Met behulp van de applicaties Business Objects en RStudio is onderzocht of het ziekteverzuim te verklaren is uit de volgende onderwerpen:
Werkvoorraden (telefonie en e-mail)
Inzet van personeel (gerealiseerde uren en FTE’s)
Span of control management
De inspanningen zijn opgeslagen in workspaces in RStudio, zodat deze later met vergelijkbare datasets in vervolgonderzoek hergebruikt kunnen worden.
Het vermoeden was dat er een verband tussen ziekteverzuim en een van bovengenoemde factoren bestond. Met de beschikbaar gestelde data konden deze verbanden echter niet worden vastgesteld. De vier grootste oorzaken hiervoor zijn als volgt:
De datalevering verliep niet ongecompliceerd. Er waren problemen met het beschikbaar stellen van de voor de analyse benodigde data. Zo konden de data over e-mail niet op een dusdanige manier aangeleverd worden opdat deze konden worden meegenomen in de analyse.
De omvang van data is van groot belang voor het doen van betekenisvolle analyses. Deze heeft invloed op het gebruik van de statistische toetsen, waarbij de resultaten van een toets van meer waarde zullen zijn dan van een andere toets. Door de beperkte omvang van de dataset betreffende de telefonie-aantallen was hierover geen zinvolle analyse mogelijk.
Het is van cruciaal belang dat de data van goede kwaliteit zijn. Uit gebrekkige data is het onmogelijk om volledige, zuivere en juiste conclusies te trekken. Bij de totstandkoming van de data, bijvoorbeeld al bij de vastlegging van de uren, moet rekening worden gehouden met de wijze waarop de data gebruikt zal worden. Hierover zullen procedureel afspraken moeten worden gemaakt.
Het moet duidelijk zijn wat de gegevens betekenen en hoe deze tot stand zijn gekomen. Vaak zijn gegevens opgebouwd doordat een formule op ‘bouwstenen’ is toegepast. Zo waren de verzuimgegevens gebaseerd op een drietal variabelen.
Concluderend kan worden gesteld dat de huidige wijze van het structureren en verschaffen van informatie bij DUO onvoldoende is voor het toetsen van een hypothese als verwoord in bovenstaande opdrachtomschrijving.
MEMO ADVIES STRUCTURERING DATA DUO.DOCX Pagina 2 van 2
Indien de organisatie besluit om (big) data-analytics onderdeel te maken van de informatievoorziening kunnen de volgende aanbevelingen worden overwogen:
Overweeg of de analyse en/of de structurering wordt uitgevoerd door in- of extern personeel.
o Wanneer gekozen worden voor externe inhuur kan worden geput uit een bron van reeds beschikbare kennis, middelen en ervaring. Hierdoor wordt de tijdsduur van een data-analyse ingekort. Het is wenselijk als een intern persoon op gelijk niveau met de externe partij kan meepraten en kan controleren of de kwaliteitseisen worden nageleefd.
o Wanneer gekozen wordt voor intern personeel zal het traject van het uitvoeren van een analyse langer zijn. De juiste mensen moeten worden ingezet, tooling en infrastructuur dient aanwezig te zijn en de te analyseren vraagstukken moeten voldoende uitdaging bieden. Wel bevordert dit de continuïteit en flexibiliteit.
o Een combinatie van de twee is mogelijk. Bijvoorbeeld door de infrastructuur en de applicatiebeheerders intern te houden, maar analisten in te huren om op de applicaties te werken. Ook kan intern personeel het creëren van dashboards en het doen van eenvoudige beschrijvende analyses op zich nemen, terwijl externen werken aan de meer complexe en voorspellende analyses.
o Tot slot bestaat de mogelijkheid om de regie en uitvoering van analyses in eigen handen te houden onder begeleiding van een externe partij.
Verken de mogelijkheden om de Datawarehouse (DWH) te koppelen aan een applicatie als RStudio. Wanneer informatie in het DWH wordt geüpdatet zal hierdoor de juiste informatie gelijk beschikbaar zijn om in RStudio te analyseren en weer te geven op bijvoorbeeld een dashboard. Hiervoor is een taal als Python wellicht geschikter dan R (met RStudio), gezien de wijze waarop RStudio informatie opslaat. Voor meer informatie hierover refereer ik naar het laatste punt onder het kopje ‘Input’ in de bijlage.
Formuleer ten slotte bij aanvang van de analyse de hypothesen en omschrijf een helder doel met betrekking tot de verkregen inzichten. Ga, aan de hand van je doel, na welke data gebruikt dient te worden voor de analyse en sluit niet-relevante data uit. Dit zal het beantwoorden van de onderzoeksvraag makkelijker maken.
Met hartelijke groeten,
Pagina 1 van 7 Directie Rijksuniversiteit Groningen Afdeling Informatiekunde Contactpersoon Marijn Ulenkate Datum 22-01-2019
Naslagwerk (big) data-analytics
Beste lezer,
Vanaf november 2018 heb ik gedurende drie maanden gewerkt aan een data-analyse aangaande het ziekteverzuim binnen DUO. Aan de hand van dit proces en mijn bevindingen schrijf ik dit naslagwerk over het structureren en analyseren van data.
Het proces van een data-analyse ziet er als volgt uit:
Het structureren van data gebeurt met name tijdens de stappen 'Input' en 'Informatieproduct'. Stapsgewijs zal ik voor ieder sub-proces de aandachtspunten uitlichten.
DOEL
Het is allereerst van belang om het doel van de data-analyse helder te hebben: Wat hoop wil je te weten komen over de data en wat wordt er vervolgens gedaan met de opgedane inzichten? Waar wil je de uitkomsten voor gebruiken? Worden deze bijvoorbeeld gebruikt om de oorzaken van ziekteverzuim te achterhalen (en hier iets aan te doen), of om alleen de stand van zaken inzichtelijk te maken?
Hierbij is het belangrijk om geen onrealistische verwachtingen te scheppen. Doordat het vakgebied van data-analyse in ontwikkeling is, ontstaan deze namelijk wel.DOEL INPUT INFORMATIE
-PRODUT
ANALYSE
VISUALI-SATIE
RESULTATEN VERWERKING
NASLAGWERK BIG DATA ANALYTICS.DOCX Pagina 2 van 7
INPUT
Bij het tot stand komen van de data moet rekening worden gehouden met de wijze waarop je de data wilt gebruiken. Hierover moeten procedureel afspraken worden gemaakt. Houdt hierbij het doel van de analyse in gedachten. De
volgende aandachtspunten zijn tevens van belang bij dit onderdeel in het proces:
De datalevering moet goed en snel verlopen.
De kwaliteit van data is van groot belang wanneer je een data analyse wilt uitvoeren. Dit heet ook wel “Garbage in, garbage out”: uit data van slechte kwaliteit is het onmogelijk om volledige, zuivere en juiste conclusies te trekken. Dit zorgt ervoor dat er suboptimale beslissingen worden gemaakt. Overigens kan het ook zo zijn dat de kwaliteit van de data niet slecht is, maar dat de wijze waarop deze zijn vastgelegd minder geschikt is.
Bij het tot stand komen van de data moet rekening worden gehouden met de wijze waarop je de data wilt gebruiken. Hierover moeten procedureel afspraken worden gemaakt. Houdt hierbij het doel van de analyse in gedachten. Op deze manier zal onvoorziene vastlegging van data worden voorkomen.
Betrouwbaarheid is een belangrijk aspect van kwaliteit en essentieel voor een succesvolle data-analyse. Zijn de data op een juiste manier
verkregen? Denk hierbij bijvoorbeeld aan verscheidene interviewtechnieken en het weglaten van bepaalde data.
Wanneer gegevens tot stand zijn gekomen door het toepassen van een formule op 'bouwstenen' is het van groot belang dat de onderliggende definities van deze bouwstenen hetzelfde zijn. Alleen dan is het mogelijk de uitkomsten van deze formules met elkaar te vergelijken. Wanneer onduidelijk is hoe gegevens zijn berekend middels deze bouwstenen, wordt het analyseren van data overigens ook lastig. Bovendien kan het zijn dat deze formules zelf niet kloppen en dat hierdoor foutieve gegevens worden berekend.
De omvang van data is van groot belang voor het doen van betekenisvolle analyses. De omvang heeft namelijk invloed op het gebruik van de
statistische toetsen, waarbij de resultaten van een toets van meer waarde zullen zijn dan van een andere toets. Men is het er echter nog niet over eens vanaf hoe veel mensen je iets zinnigs kan zeggen aan de hand van statistische analyses. Sommigen hanteren een ondergrens van 200-250 mensen, anderen van 1000-1500 mensen. Één ding is in ieder geval waar: hoe meer gegevens je verzamelt van mensen, hoe betrouwbaarder je conclusies. Mits je data geschikt zijn, natuurlijk. Tevens kunnen ingewikkeldere analyses en modellen worden uitgevoerd wanneer de omvang van de data groot is. De omvang bepaalt het potentieel voor meer diepgaande analyses.
Een hoop data zijn interessant, maar welke gaan je écht verder helpen in je onderzoek? Dit is het verschil tussen 'Nice to know' en 'Need to know'. Een onderzoek moet informatie opleveren, maar te veel informatie is niet fijn. Je kunt verdwalen in de data en de onderzoeksvraag niet langer helder beantwoorden. Vraag jezelf daarom af welke informatie je écht
NASLAGWERK BIG DATA ANALYTICS.DOCX Pagina 3 van 7
nodig hebt, en gebruik alleen deze in plaats van de gehele hoeveelheid gegevens. Het helpt wellicht om hierbij een stermodel te maken van hetgeen je wilt analyseren. Zo kun je eenvoudig de scope inperken en niet-relevante data uitsluiten.
Voordat je de analyse uitvoert, moet je de hypothesen opstellen. Vaak zijn er al bepaalde verwachtingen over de data en wil men door middel van de data-analyse onderzoeken of deze juist zijn. Het van tevoren opstellen van de hypothesen helpt met het doelgerichter analyseren van de data. Houd ook hierbij rekening met eventuele onrealistische
verwachtingen.
Privacy is een belangrijk aspect van het verzamelen en analyseren van gegevens. Zo onthulde onderzoeksplatform Investico onlangs dat
tientallen grote Nederlandse bedrijven en ook de overheid gegevens over onder meer werkplezier, persoonlijkheid en ziekte verzamelen - vaak zonder dat werknemers hiervan weten. Dit zou leiden tot discriminatie van vrouwen en aantasting van de privacy van personeel. Tevens stellen de nieuwe Europese privacyregels dat data voor wetenschappelijk ook
statistisch onderzoek zo veel mogelijk geanonimiseerd moeten worden, en zo snel mogelijk weggegooid nadat het onderzoek is afgerond.1
De documentatie over het proces van de ‘ruwe’ data uit de database tot aan het dashboard moet goed te volgen zijn. Waar komen de data binnen en wat gebeurt er in de tussentijd tot de data zijn geconverteerd naar een Excel bestand? Dit proces wordt ook wel de ‘datawasstraat’ genoemd. Een onduidelijke documentatie van deze wasstraat is een risico voor fouten.
De database is als het ware de eerste schakel in het proces van de ‘datawasstraat’. Het informatieproduct (zoals een dashboard) is de laatste schakel. Het is wenselijk om zoveel mogelijk schakels binnen één
programmatuur te hebben. Denk hierbij bijvoorbeeld aan het koppelen van de database/DWH aan RStudio. Wanneer het eindproduct vaak moet worden geüpdatet, scheelt dit een hoop tijd. De geüpdate data uit de database zijn dan namelijk gelijk beschikbaar in RStudio en hoeven niet eerst nog te worden opgestuurd. Een taal als Python is hiervoor echter wellicht geschikter dan R (met RStudio), gezien de wijze waarop RStudio informatie opslaat. Experts zeggen dat R alles in het geheugen verwerkt, wat impliceert dat het misschien moeilijk is om het te gebruiken voor grote hoeveelheden gegevens. Wanneer ik zoek naar opties om DWH te combineren met Python vind ik hierover een stuk meer resultaten. Echter raad ik sterk aan om hierover met een expert aan tafel te gaan zitten en de mogelijke opties hiervoor door te nemen.
1L. Klompenhouwer, ‘We gaan niet in persoonlijke e-mails neuzen’, 15 november 2018,
NASLAGWERK BIG DATA ANALYTICS.DOCX Pagina 4 van 7
VERWERKING
De verwerking bestaat uit de analyse als het visualiseren. Deze worden door elkaar heen gebruikt; je ziet iets interessants in de data en analyseert vervolgens of dit significant is. Vervolgens ontdek je weer iets anders interessants, en ga zo maar door.
Zorg voor duidelijke, inzichtelijke en consistente namen voor variabelen. Zo raak je niet in de war tijdens bijvoorbeeld het ‘subsetten’ (creëren van kleinere datasets uit de gehele dataset) van de data en het combineren van meerdere kolommen met gegevens.
Met het creëren van subsets breng je overigens ook structuur aan in de data. Je verzamelt (meestal) specifieke gegevens uit verscheidene
datasets die je met elkaar in verband wilt brengen. Deze kleinere datasets kunnen vervolgens weer worden opgeslagen in workspaces, zodat deze later gemakkelijk bekeken kan worden.
Maak van tevoren afspraken over het leveren van de data. Denk hierbij bijvoorbeeld aan het soort scheidingstekens in de datasets en het soort tekencodering. Deze laatste moet vrijwel altijd UTF-8 zijn. Dit is met name belangrijk wanneer wordt gewerkt met categorische data. Documenteer deze afspraken goed, zodat ze makkelijk te hergebruiken zijn en niet telkens opnieuw hoeven worden opgesteld.
Het helpt wanneer de verschillende datasets worden aangeleverd in een ZIP-bestand. Met RStudio kan zo de gehele inhoud van het bestand in één keer worden ingeladen. Gezien de grootte van ZIP-bestanden ten opzichte van bijvoorbeeld Excel bestanden zijn deze zo gemakkelijker te versturen via mail.
De programmatuur voor het doen van de analyses moet beschikbaar zijn op zowel de vaste PC’s en laptops en moet gemakkelijk toegankelijk zijn. Het is onveilig wanneer mensen genoodzaakt zijn dit op hun eigen computers moeten installeren.
Wanneer je gegevens uit meerdere datasets aan elkaar wilt koppelen of met elkaar wilt vergelijken, moeten deze datasets ten minste één overeenkomende variabele bevatten. Dit, zodat de datasets vervolgens middels programma's als RStudio aan elkaar kunnen worden 'geplakt'.
Plaats commentaar in je code om het jezelf en je lezer gemakkelijk te maken.
Stel jezelf regelmatig de vragen ‘Doe ik wat ik denk dat ik doe?’ en ‘Doet mijn programma wat ik denk dat het doet?’.
Stel een ‘code controller’ in. Dit is een tweede lezer die nagaat of de geschreven code klopt. Deze kijkt onder meer naar de gebruikte formules, methodes en parameters en gaat na of de interpretaties juist zijn.
ANALYSE
De omvang van de data en de vooraf opgezette hypothesen hebben invloed op het soort statistische toets die kan worden gehanteerd. Kies dus de juiste statistische toets. Hoe meer data, hoe complexere en interessantere toetsen kunnen worden gebruikt.
NASLAGWERK BIG DATA ANALYTICS.DOCX Pagina 5 van 7
oorzakelijk verband is, dit doe je zelf. De interpretaties van de statistische resultaten moeten juist zijn en goed zijn opgebouwd.
Zelfs bij statistieken waarbij voor allerlei bijkomende factoren is gecorrigeerd en die zijn gemaakt op basis van gegevens die uit gericht onderzoek zijn voortgekomen, kunnen nog fouten in voorkomen. Dit kan bijvoorbeeld wanneer de verkeerde vragen zijn gesteld of belangrijke vragen niet zijn gesteld.
Je kunt statistieken niet één op één toepassen op individuen. Statistieken geven namelijk waarheden op populatieniveau, niet op individueel niveau. Dat betekent dat je wel tendensen kunt zien in de grote getallen, maar dat het per individu anders kan gaan.
De uitspraak ‘Er zijn drie soorten leugens: leugens, grove leugens, en statistieken’ wordt toegeschreven aan Benjamin Disraeli. Hij was premier onder de regering van Koningin Victoria en aan de waarheid van zijn uitspraak is nog niet veel veranderd. Uiteraard zijn het niet de statische gegevens zelf die liegen. Dat zijn gewoon rijen cijfers die de uitkomsten van onderzoeken vormen. Het zijn de interpretatie en schikking van de cijfers die de leugens vormen.
Zorg ervoor dat duidelijk is of de vooraf opgestelde hypothesen juist zijn gebleken. Licht toe hoe je deze hebt onderzocht en verantwoord je keuzes voor het soort visualisaties en statistische toetsen.
Praat, na het testen van de hypothesen, met hr-experts. Deze koppeling tussen inhoudelijke onderzoekers en data analisten is erg belangrijk. Door hier samen naar te kijken, kunnen eventueel nieuwe onderzoeksvragen worden opgesteld. Wanneer je allen de statistiek toepast, mis je het hele plaatje.
Het verwerkingsproces resulteert in resultaten. Deze staan vast. Gebruik niet dezelfde test meerdere malen op dezelfde data. Mocht je dit toch willen doen, pas dan de alfa-waarde aan.
VISUALISATIE
Een visualisatie moet aansluiten op de vraag van de opdrachtgever. Wat wil hij precies weten en wat is de beste manier om dit inzichtelijk te maken?
Data visualisatie helpt om de bevindingen inzichtelijk te maken, mits hiervoor voor het juiste type visualisatie wordt gekozen. Sommige
visualisaties zijn beter dan andere; dit is sterk afhankelijk van de aard van de gegevens die je wilt visualiseren. Zo zijn lijngrafieken zeer geschikt om een verandering over tijd weer te geven en zijn barplots of histogrammen geschikt om aantallen aan te duiden. Bedenk dus goed met wat voor soort informatie je te maken hebt en kies hiervoor de juiste visualisatie. Houdt ook rekening met de doelgroep en bepaal of het interactief maken van visualisaties van nut is.
Naast het kiezen van een juiste manier van visualisatie is het belangrijk dat de visualisatie makkelijk af te lezen is. Zorg dan ook voor duidelijke kleuren, labels en waarden van de x- en y-as. Geef je visualisatie tevens een informatieve titel. Niet alleen met statistiek kan worden gelogen. Ook
NASLAGWERK BIG DATA ANALYTICS.DOCX Pagina 6 van 7
visualisaties kunnen worden gemanipuleerd. Zo kunnen de x- en y-as waarden zo worden aangepast dat een verband sterker lijkt te zijn dan deze werkelijk is. Dit kan bijvoorbeeld door de y-as niet bij 0 te laten beginnen of waarden op de x-as over te slaan, zoals bepaalde jaren of maanden.
De visualisatie moet feiten weergeven, geen interpretaties.
Kies voor het juiste programma om je data mee te visualiseren. Programma’s als Power BI en Tableau hebben een hoog
visualisatieniveau. Beide programma’s zijn goed geschikt voor beginners: het is met name een hoop sleepwerk en alles staat al vast. Dit laatste limiteert je echter wanneer je verder wilt met je analyse. Ook moet voor beide programma’s worden betaald. R leent zich goed voor het doen van (complexe) statistische analyses. Het programma biedt, in tegenstelling tot Power BI en Tableau, een hoog gehalte van vrijheid en flexibiliteit. Hierdoor kun je met R erg veel kanten op met de analyse en het maken van visualisaties. Voor dit laatste worden voornamelijk het package ‘ggplot’ en het maken van een dashboard gebruikt. R is ‘column-based’. Dit houdt in dat statistieken op een gehele kolom worden toegepast. De programmeertaal Python kan ook worden gebruikt voor het doen van statistische analyses. In tegenstelling tot R is Python ‘row-based’. Dit wordt meer gebruikt wanneer je bijvoorbeeld over een bepaald persoon data wilt verzamelen die verspreid zijn over meerdere datasets. Ook in Python kunnen zware statistische toetsen worden uitgevoerd. De taal ondersteunt tevens het bouwen van dashboards. Wel is R (in combinatie met Shiny) hierin geavanceerd, maar Python wordt langzaam steeds populairder.
Als laatst gaat het principe ‘less is more’ zeker op voor het visualiseren van data. Maak de visualisaties zo eenvoudig mogelijk; gebruik niet te veel informatie-elementen en houd rekening met bovenstaande punten. Een visualisatie oogt al snel druk, waardoor deze minder goed af te lezen is en men naast de essentie van de visualisatie grijpt.
Tegenwoordig schieten bedrijven die gespecialiseerd zijn in het uitvoeren van data-analyses als paddenstoelen uit de grond. Bedrijven als Analitiqs, XOmnia, Ynformed en QNH kunnen door organisaties worden ingehuurd om kennis en inzichten over de organisatie te leveren. Wanneer gekozen worden voor externe inhuur kan worden geput uit een bron van reeds beschikbare kennis, middelen en ervaring. Hierdoor wordt de tijdsduur van een data-analyse ingekort. Het is wel wenselijk als een intern persoon op gelijk niveau met de externe partij kan meepraten en kan controleren of de kwaliteitseisen worden nageleefd. Houdt overigens bij het uitbesteden van de opdracht aan een externe partij wel rekening met vertrouwelijke informatie.
Uiteraard kan iemand ook intern worden aangesteld. Wanneer gekozen wordt voor intern personeel zal het traject van het uitvoeren van een analyse langer zijn. De juiste mensen moeten worden ingezet, tooling en infrastructuur dient aanwezig te zijn en de te analyseren vraagstukken moeten voldoende uitdaging bieden. Wel bevordert dit de continuïteit en flexibiliteit.
NASLAGWERK BIG DATA ANALYTICS.DOCX Pagina 7 van 7
Een combinatie van de twee is mogelijk. Bijvoorbeeld door de infrastructuur en de applicatiebeheerders intern te houden, maar analisten in te huren om op de applicaties te werken. Ook kan intern personeel het creëren van dashboards en het doen van eenvoudige beschrijvende analyses op zich nemen, terwijl externen werken aan de meer complexe en voorspellende analyses. Tot slot bestaat de mogelijkheid om de regie en uitvoering van analyses in eigen handen te houden onder begeleiding van een externe partij.
INFORMATIEPRODUCT
Zoals ik eerder aangaf vindt het structureren vooral plaats tijdens de 'Input' en de 'Informatieproduct' fase. Deze laatste fase gaat in op het op een overzichtelijke manier presenteren van alle visualisaties en analyses uit voorgaande fase.
Zorg voor een duidelijke structuur in je informatieproduct. In een dashboard kan bijvoorbeeld in navigatiebalk worden toegevoegd (afbeelding 1). In een rapport worden (sub)koppen gehanteerd.
Kies voor het type informatieproduct dat de vergaarde informatie het beste weergeeft. Een dashboard kan bijvoorbeeld worden gebruikt wanneer men regelmatige feedback wilt zien over (de ontwikkeling van) een resultaat van een organisatie of proces. Een dashboard kan altijd worden uitgebreid. De resultaten van een analyse kunnen ook in een statisch rapport worden weergegeven. Wat voor opzet je ook kiest, zorg er altijd voor dat de resultaten op een overzichtelijke en gestructureerde manier zijn gepresenteerd.
Met hartelijke groeten,
Handleiding Shiny-dashboard
InleidingDit dashboard geeft een meerjarig inzicht in de verzuimgegevens van DUO. Het dashboard is opgezet als onderdeel van een stage-opdracht betreffende een data-analyse over het verzuim binnen DUO. Naast verzuimgegevens bevat het dashboard ook gegevens over externe inzet, gerealiseerde uren en telefonie-aantallen.
Inloggegevens
Er kan voor worden gekozen om de inloggegevens van de server in dit bestand te zetten.
R-omgeving
Op de R-omgeving staan onder 'Home' zowel persoonlijke mappen als de shiny-server. Ook bestaat de 'share' map. Hierin kunnen bestanden worden gezet die bedoeld zijn om met andere collega's te delen. De 'shiny-server' bestaat uit een private en public server (navigeer hiervoor naar /shiny-server/web/). Voor de private server zijn inloggegevens nodig. De public server is voor iedereen beschikbaar, indien de URL bekend is. Wanneer wordt ingelogd op de private server, zullen de mappen die hierin zijn aangemaakt worden weergegeven in de browser. Hiermee kan worden genavigeerd naar de juiste Shiny-applicatie.
app.R
Indien een Shiny-dashboard aangemaakt wenst te worden, moet in de desbetreffende map ALTIJD een app.R bestand staan. Dit bestand runt het dashboard. Als dit bestand niet bestaat, zal de server een error geven. Het app.R bestand wordt aangemaakt via File -> New File -> Shiny Web App. Noem het bestand altijd app.R (zonder hoofdletter).
Packages Bovenaan het app.R bestand dienen de benodige packages ingeladen te worden. Ik heb deze nu in een variable gestopt genaamd 'pkg'. Deze bevat een
lijst van alle packages en kan gemakkelijk worden uitgebreid of aangepast. In het app.R-bestand doe ik dit als volgt:
pkg <- c("shiny", "devtools", "ggplot2", "readxl", "xlsx", "dplyr", "ggrepel", "data.table", "shiny", "shinythemes", "plotly", "scales", "ggExtra", "reshape2", "forecast")
invisible(lapply(pkg, require, character.only = TRUE))
Met de laatste regel roep ik de variabele aan. Aangezien de output van dit command niet bijzonder interessant is om naar te kijken, heb ik deze in de functie 'invisible' gezet.
UI & Server De app.R bestaat uit een UI en een server. In de UI wordt de layout van het dashboard gespecificeert. Hierbij kunnen ook HTML en CSS
elementen worden toegepast. Dit gaat als volgt:
tags$head(tags$style( HTML(' hr { border-color: #007BC7; } ') ))
In bovenstaand geval heb ik alleen het HTML-element 'hr' toegevoegd en deze een andere kleur gegeven.
In de server worden de benodigde data ingeladen en de visualisaties gegenereerd. Deze kunnen vervolgens worden aangeroepen in de UI. Zo ziet het genereren van een plot er bijvoorbeeld uit:
output$verzuim2 <- renderPlotly({ data = dataFilter()
plot_ly(data) %>%
add_trace(mode = "lines", x = data$JaarMaand, y = data$Verzuimpercentage * 100, name = "Verzuim", line = list(color = 'rgb(12,51,131)')) %>%
add_trace(mode = "lines", x = data$JaarMaand, y = data$Gemiddeld.ziek.jaar * 100, name = "Gemiddelde", line = list(dash = "dash", color = 'rgb(255,140,0)')) %>%
layout(title = "", xaxis = list(title = "", tickangle = -45), yaxis = list(title = "[%]")) })
Iedere output (plots, tabellen, toetsen, etc.) moet een ID hebben om te worden aangeroepen in de UI. Dit gebeurt in de eerste regel: 'output$verzuim2'. Deze specifieke plot heeft als ID 'verzuim2' meegekregen. In de UI wordt deze plot als volgt aangeroepen:
plotlyOutput("verzuim2")
Hierbij wordt de ID van de plot tussen aanhalingstekens genoteerd.
In het geval van dit dashboard zijn de UI en server in eenzelfde bestand aangemaakt. Het is echter ook mogelijk om een apart bestand voor de UI en de server aan te maken.
Afbeeldingen Afbeeldingen dienen in een aparte map gezet te worden. Deze heb ik nu 'www' genoemd. In de UI kan als volgt worden gerefereerd naar een
img(src = "duo_logo_klein.png", align = "center")
De 'align' parameter is optioneel. Zoals je hierboven ziet hoeft in de path niet de map 'www' genoemd te worden.
Data inladen en prepareren
Het inladen en prepareren van de data is nauw verbonden. Ik raad aan om allereerst een aparte map aan te maken voor het prepareren van de data (in dit geval data_prep). Maak hierin nogmaals een aparte map aan waarin de ingeladen data komen te staan. Deze heb ik nu 'datasets' genoemd.
Working directory Datasets moeten worden ingeladen in een bepaalde map. Ga naar de map toe waar je de datasets in wilt plaatsen (in dit geval 'datasets') en
zet deze als working directory. Dit kan op twee manieren. Als eerst kun je klikken op het blauwe wieltje waarachter 'More' staat. Deze is te vinden in het rechterblok, onderaan de pagina. Klik vervolgens op 'set as working directory'. Het is ook mogelijk om de working directory via de console aan te passen. In het geval van de private server, type dan het volgende in de console:
setwd("~/shiny-server/web/private")
Om te controleren in welke working directory je je momenteel bevindt, typ het volgende in de console:
getwd()
Inladen data Om de data in te laden, klik op 'Upload' in het scherm rechts onderaan de pagina. Losse Excel bestanden kunnen alleen één voor één worden
ingeladen. Wanneer deze in een ZIP-bestand staan, kunnen ze echter allemaal tegelijk worden ingeladen. Bij het inladen verschijnt een scherm, waarbij je alvast het een en ander kan aanpassen aan de data.
Data prepareren
Het prepareren van de data gebeurt in een apart R-bestandje. Deze staat los in de 'data_prep' map. Hierin kunnen de namen van variabelen worden aangepast, gegevens gefilterd, subsets gecreëerd, etc. Na het inladen van de data (zie bovenstaande stap) verschijnt in de console een stuk code. Zet deze in je dataprep-bestand om de data in te lezen in het dataprep-dataprep-bestand. Let hierbij wel op de '>' tekens; deze dienen in de R-code weggehaald te worden. Het inladen van de telefonie-dataset ziet er bijvoorbeeld zo uit:
Telefonie <- read_excel("~/shiny-server/web/private/Verzuim-analyse/data_prep/datasets/Telefonie.xlsx",
col_types = c("text", "text", "skip", "numeric", "skip", "numeric", "numeric", "numeric", "numeric", "date"))
De ingeladen dataset wordt in een variabele gestopt, genaamd 'Telefonie'. De read_excel-functie wordt aangeroepen om het bestand in te lezen. In deze functie wordt de path naar het bestand weergegeven. Ook worden de data-types van de variabelen gespecificeerd. Hierbij betekend “skip” dat de gehele kolom wordt overgeslagen. Na het inlezen van deze data wordt 'Telefonie' opgeslagen in de workspace.
Workspace
De workspace, ofwel 'environment', is te zien aan de rechterkant van het scherm. Het bevat in feite alle actieve datasets en subsets die kunnen worden gebruikt voor de analyse.
Opslaan workspace Zorg ervoor dat de workspace/environment leeg is voordat je begint met het runnen van je dataprep-bestand. Doe dit door op het bezempje
te klikken, rechts onder de 'Environment' tab. Run hierna de gehele dataprep-code. Nadat de datasets die niet zullen worden gebruikt in de analyse zijn verwijderd, kan de workspace worden opgeslagen. Door de volgende regel onderaan het bestand te zetten, zal de workspace automatische worden opgeslagen:
save.image(file = "myData.RData")
Inlezen workspace Lees, na het inlezen van de benodigde packages voor het dashboard, de workspace in je app.R-bestand in via de volgende code: load("./myData.RData")
Hierbij is 'myData.RData' de naam van de workspace.
Log
Wanneer je dashboard een error geeft, is het tijd om in de log te kijken. Hierin worden fouten in de code uitgelicht en kan je makkelijker zien waardoor de error is ontstaan. De log is te vinden onder Home/shiny-server/log. Het helpt om de meest recente logs bovenaan te hebben staan. Klik hiervoor op 'Modified'. Door op een .log bestand te klikken, wordt deze geopend. Wanneer de error lijkt de komen door een ongeinstalleerde OS-package zal de log ook iets in de trend van 'OS-file of OS-package' noemen.
Verantwoording
Statistische toetsen Door de beperkte omvang van de telefonie-dataset kan de correlatie-waarde tussen het verzuim en de telefonie-aantallen niet als juist
worden beschouwd. Aangezien de telefonie-dataset gegevens per maand bevatte, geeft deze dataset dus uiteindelijk maar 12 punten aan gegevens (de gehele KB afdeling wordt namelijk samengenomen). Ik raad aan deze correlatietoets nogmaals uit te voeren wanneer er zeker genoeg data beschikbaar zijn.
Voorspelling/predictive Net als bovenstaand punt is voor de voorspellingen meer data nodig dan beschikbaar is gesteld. Deze voorspelling zijn enkel in het
dashboard gezet als voorbeeld wat mogelijk is met meer data.
Openstaande verbeteringen
Probeer dezelfde analyse uit op data van daggegevens.
Het schrijven van een formule waarmee het algemeen filter (jaar) in één keer op meerdere data toegepast kan worden. Het schrijven van een formule waarmee meerdere datasets in het dataprep-bestand tegelijk kunnen worden ingeladen.
Het toevoegen van een sliderfilter over de maanden, in plaats van een dropdownfilter voor de jaren. Zo kunnen bijvoorbeeld de maanden juni 2013 -februari 2014 worden getoond, in plaats van enkel informatie over 2013 of 2014.
Het toevoegen van meerdere filters, zoals onderafdelingen/kostenplaatsen. Het verduidelijken van variable- en subsetnamen.
Een aantal visuele elementen verbeteren, zoals hover-informatie, decimalen, kleurenpalettes, het toevoegen van een DUO-icon voor bovenaan het tabblad, etc.