R biedt krachtige hulpmiddelen voor het visualiseren van gegevens, wat essentieel is voor het begrijpen van patronen en relaties die mogelijk niet meteen duidelijk zijn uit ruwe getallen. Dit is van cruciaal belang in cultuurdata-analyse, waar de gegevens vaak complex en divers zijn. In deze context zijn visualisaties meer dan alleen een manier om cijfers te presenteren: ze bieden inzicht en kunnen zelfs het startpunt zijn voor diepere onderzoeksvragen. Dit hoofdstuk behandelt enkele basistechnieken voor visualisatie in R, met de nadruk op het gebruik van de basisfunctionaliteit van de programmeertaal. Het is een introductie die later verder wordt uitgebreid met geavanceerdere pakketten zoals "ggplot2", maar het biedt genoeg mogelijkheden voor praktische toepassing in culturele analyses.
Het Gebruik van de apply-functie in R
Voordat we dieper ingaan op visualisatie, is het belangrijk om te begrijpen hoe we data kunnen manipuleren voordat we deze grafisch weergeven. R biedt krachtige functies zoals apply waarmee je snel en efficiënt berekeningen kunt uitvoeren op je dataset zonder expliciete for-lussen te hoeven schrijven. Dit is bijzonder handig wanneer je grote hoeveelheden gegevens hebt en complexe berekeningen moet uitvoeren. Door vectorized operations te gebruiken, kun je je code eenvoudiger maken, maar tegelijkertijd efficiënter uitvoeren. Vooral in cultuurdata-analyse, waar datasets vaak bestaan uit duizenden of miljoenen gegevenspunten, is het gebruik van deze technieken essentieel om tijd te besparen en de werklast te verminderen.
Basis Plotten in R: Visualiseren van Cultuurdata
Histograms
Histograms zijn een van de meest fundamentele manieren om de verdeling van gegevens te visualiseren. Ze tonen hoe de waarden binnen een dataset zijn verdeeld en helpen ons om te begrijpen of de data bijvoorbeeld normaal verdeeld zijn, welke waarden frequent voorkomen, en waar eventuele uitschieters zich bevinden. In R wordt een histogram gemaakt met de hist()-functie. Stel dat we de hoogte van atleten in een dataset willen visualiseren, dan zou de code er als volgt uitzien:
Deze visualisatie toont ons de verdeling van de lengtes van atleten in de dataset. Histograms zijn ook nuttig om te onderzoeken of de data een bepaalde vorm vertoont, zoals de normale verdeling. Dit kan inzicht bieden in biologische data of in andere gebieden waar variabelen zich vaak in een bell curve verdelen. Als we bijvoorbeeld de verdeling van het gewicht van atleten onderzoeken, kunnen we ook zien of er een scheefheid in de data is, wat betekent dat het gemiddelde gewicht lager ligt dan de mediaan.
Barplots
Een ander veelgebruikte grafiek is de barplot, die vooral handig is voor het visualiseren van categorische gegevens. Bijvoorbeeld, stel dat we het aantal medailles willen weergeven dat atleten in een dataset hebben gewonnen, dan kunnen we de barplot()-functie gebruiken:
Barplots zijn ideaal om het aantal waarnemingen per categorie te vergelijken, zoals het aantal atleten per land of het aantal medailles per type. Het is belangrijk om te begrijpen dat barplots anders zijn dan histograms: terwijl histograms de verdeling van continue data weergeven, tonen barplots de frequentie van discrete categorieën.
Scatterplots
Een scatterplot is een krachtig hulpmiddel voor het visualiseren van de relatie tussen twee continue variabelen. In de context van cultuurdata-analyse kan dit bijvoorbeeld worden gebruikt om de relatie tussen leeftijd en prestaties in een sport of de hoogte en het gewicht van atleten te onderzoeken. De plot()-functie in R maakt het eenvoudig om deze visualisatie te genereren:
Hier kunnen we bijvoorbeeld de relatie tussen de lengte en het gewicht van atleten uit Kroatië visualiseren. Scatterplots zijn vooral nuttig als je wilt onderzoeken of er een correlatie is tussen twee variabelen, en ze zijn vaak de eerste stap in statistische analyses zoals lineaire regressie.
Wat Belangrijk is voor Effectieve Visualisatie
Bij het werken met R en het maken van visualisaties voor cultuurdata-analyse is het cruciaal om te begrijpen dat data geen op zichzelf staande entiteiten zijn. Ze vertellen een verhaal, en het is aan de analist om dit verhaal te ontrafelen en op een begrijpelijke manier weer te geven. Het gebruik van basistools zoals apply en de plotfuncties van R maakt het mogelijk om snel inzichten te verkrijgen, maar het is de interpretatie van de visualisaties die de waarde ervan bepaalt. Een histogram kan bijvoorbeeld niet alleen de verdeling van een variabele weergeven, maar ook aanwijzingen geven over de aard van de data – bijvoorbeeld of er uitschieters zijn of of de verdeling normaal is. Barplots kunnen niet alleen aantallen tonen, maar ook patronen in categorieën of groepen onthullen die verder onderzocht kunnen worden.
Daarnaast is het belangrijk om goed na te denken over de context van de gegevens en het publiek waarvoor de visualisatie bestemd is. Cultuurdata-analyse vereist niet alleen technische vaardigheden in R, maar ook een diep begrip van de culturele, sociale en historische factoren die de gegevens beïnvloeden. Elke visualisatie moet dus niet alleen correct zijn vanuit een statistisch oogpunt, maar ook betekenisvol in de bredere culturele context.
Hoe Werkt de Grammatica van Grafieken in ggplot2?
In de wereld van datavisualisatie is het begrijpen van de fundamentele elementen van de grammatica van grafieken essentieel. Wanneer je werkt met tools zoals R en de populaire ggplot2-bibliotheek, wordt het proces van visualisatie vereenvoudigd door een set duidelijke en krachtige principes die helpen bij het creëren van effectieve grafieken. Dit hoofdstuk verkent de drie hoofdcomponenten die samen de basis vormen voor de meeste grafieken: data, esthetiek en geometrische objecten.
De eerste stap in het maken van een grafiek is het begrijpen van de data. In ggplot2 is dit de meest fundamentele laag en wordt deze aangeduid als "data". Het begint allemaal met het aanroepen van de ggplot() functie en het doorgeven van de dataset die je wilt visualiseren. Dit kan bijvoorbeeld een dataset zijn die informatie bevat over muziekgenres, zoals de MuSe-dataset, die details biedt over verschillende muziekstukken, zoals genre, valentie en opwinding van de muziek.
Bijvoorbeeld, stel je voor dat je de data filtert op basis van muziekgenres zoals rap, metal en funk. Dit doe je door de dataset door de pipe-operator te sturen en te filteren voor de genres die je interesse hebben. Na deze stap zal ggplot2 de basisstructuur voor de grafiek creëren, maar er zal nog geen visuele weergave zijn totdat we verder gaan met de esthetiek.
Het tweede element in de grammatica van grafieken is "esthetiek". In de context van ggplot2 betekent esthetiek niet zozeer de artistieke waarde van de grafiek, maar hoe de data wordt weergegeven in visuele vorm. Dit omvat het bepalen van de variabelen die op de assen van de grafiek zullen verschijnen, evenals het kiezen van de kleuren, vormen en stijlen van de datapunten. In plaats van simpelweg te denken aan esthetiek als decoratie, gaat het hier over de manier waarop de data op een functionele manier wordt gepresenteerd. Wanneer je bijvoorbeeld de relatie tussen 'valentie' en 'arousal' van muziek onderzoekt, kun je de variabelen van deze twee kenmerken instellen als de x- en y-as van de grafiek met behulp van de aes() functie.
Het derde cruciale onderdeel zijn de "geoms", oftewel geometrische objecten. Deze bepalen de visuele elementen die de data daadwerkelijk vertegenwoordigen. Het kan gaan om punten, lijnen, balken of andere vormen, afhankelijk van het type grafiek dat je maakt. In een klassieke scatterplot bijvoorbeeld, worden de datapunten weergegeven als stipjes. Het kiezen van het juiste geom is van groot belang voor de duidelijkheid en leesbaarheid van je visualisatie. Hoewel je bijvoorbeeld smiley-emoji's zou kunnen gebruiken om je datapunten te markeren, zullen traditionele cirkels of stippen waarschijnlijk de meeste herkenning krijgen van het publiek.
Het gebruik van geometrische objecten gebeurt via de toevoeging van lagen met de + operator. In tegenstelling tot de pipe-operator, die je normaal gebruikt in de tidyverse, vereist ggplot2 dat je de + operator gebruikt om lagen toe te voegen aan je grafiek. Geometrische objecten zijn dus de visuele representaties die je in de grafiek ziet en ze moeten zorgvuldig worden gekozen op basis van het type data en het doel van de visualisatie.
Met deze drie elementen – data, esthetiek en geoms – kun je vrijwel elke grafiek maken die je nodig hebt om de statistische betekenis van je data duidelijk over te brengen. Dit concept van de grammatica van grafieken is niet alleen handig voor het creëren van visuele representaties, maar biedt ook een theoretische basis voor het begrijpen van hoe data visueel wordt gecommuniceerd. Wanneer je een grafiek maakt, is het van cruciaal belang om na te denken over welke informatie je wilt benadrukken en hoe je de visuele elementen het beste kunt gebruiken om die boodschap effectief over te brengen.
Naast deze technische aspecten van ggplot2, moet de context en het doel van je visualisatie altijd in overweging worden genomen. Het is belangrijk dat je je publiek begrijpt en weet welke elementen voor hen het meest betekenisvol zullen zijn. Het juiste gebruik van kleuren, vormen en lijnen kan het verschil maken tussen een grafiek die visueel aantrekkelijk is maar weinig zegt, en een die diepgaande inzichten biedt. Onthoud ook dat de keuze van geoms en esthetiek afhankelijk is van de specifieke vraag die je wilt beantwoorden. De theoretische basis van je visualisatie moet altijd in harmonie zijn met je praktische keuzes van datarepresentatie.
Hoe De Veronderstellingen van Lineaire Modellen Te Controleren
Een van de fundamentele aannames bij het werken met lineaire regressiemodellen is dat de residuen gelijkmatig verspreid moeten zijn over het bereik van de voorspellers. Dit betekent dat de spreiding van de residuen consistent moet blijven voor alle waarden van de voorspellers. Wanneer deze aanname niet wordt nageleefd, kan het zijn dat we patronen zien van toenemende of afnemende spreiding in de residuen, afhankelijk van de waarde van de voorspellers. Dit fenomeen wordt heteroscedasticiteit genoemd en kan erop wijzen dat het model de gegevenspunten niet gelijk behandelt.
Een andere cruciale aanname van lineaire modellen is de onafhankelijkheid van de residuen. Het is van essentieel belang dat elke data punt unieke informatie aan het model toevoegt. Wanneer de data punten met elkaar verbonden zijn, bijvoorbeeld bij herhaalde metingen van dezelfde proefpersoon of geclusterde observaties van verwante individuen, kunnen deze relaties de residuen beïnvloeden op een manier die de aanname van onafhankelijkheid schendt. Dit kan een vertekend resultaat opleveren, aangezien het model geclustereerde gegevenspunten als onafhankelijke waarnemingen beschouwt, wat leidt tot overconfidence in de voorspellingen van het model. Dit is vooral van belang bij datasets die een temporele of ruimtelijke component bevatten, zoals tijdreeksdata of gegevens die gegroepeerd zijn op basis van fysieke nabijheid of sociale connecties. Dergelijke datastructuren kunnen autocorrelatie veroorzaken, waarbij de residuen met elkaar gecorreleerd zijn en de aanname van onafhankelijkheid niet wordt nageleefd.
Om de aannames van lineaire modellen te controleren, zijn er verschillende statistische tests beschikbaar. De eenvoudigste techniek is echter het visueel controleren van de modelresultaten. Een van de beste tools voor dit doel is het "performance" pakket, ontwikkeld door het Core R Team, onderdeel van de “easystats” bibliotheek. Dit pakket biedt een handige manier om de aannames van een regressiemodel te controleren met de functie check_model().
Het controleren van de aannames kan met verschillende visuele hulpmiddelen worden gedaan, zoals het controleren van de voorspelde lijnen in vergelijking met de waargenomen gegevens, het controleren op homogeniteit van variantie, het onderzoeken van de invloedrijke waarnemingen, en het verifiëren van de normaliteit van de residuen. Wanneer het model goed is en de aannames worden nageleefd, kunnen we met vertrouwen de coëfficiëntschattingen interpreteren. Het is echter belangrijk om te beseffen dat niet alle aannames perfect moeten worden nageleefd. Zolang er geen flagrante afwijkingen zijn, kunnen de meeste datasets nog steeds nuttige inzichten bieden, zelfs als sommige aannames niet strikt voldoen, vooral wanneer de steekproefgrootte niet bijzonder klein is.
Bij het werken met lineaire regressiemodellen is het ook belangrijk om naar de scheefheid van de gegevens te kijken, voordat we beginnen met het bouwen van het model. Scheefheid van de gegevens verhindert het gebruik van lineaire regressie niet, zoals vaak ten onrechte wordt aangenomen. Het gaat niet om de scheefheid van de voorspellende of afhankelijke variabelen zelf, maar om de scheefheid van de residuen die van belang is. Scheefheid in de verdeling van de voorspellers of uitkomstvariabelen kan echter de aanname van normaliteit van de residuen of de lineariteit verstoren. Om scheefheid te identificeren, kunnen we de verdeling van de variabelen visualiseren, bijvoorbeeld door het maken van histogrammen. Wanneer scheefheid wordt gevonden, kan een transformatie van de gegevens, zoals het nemen van de logaritme, de vierkantswortel, of een andere niet-lineaire transformatie, helpen de verdeling te normaliseren en de variantie over de gegevens te stabiliseren.
Transformaties kunnen de verdeling van de gegevens dichter bij de normale verdeling brengen en helpen de aannames van lineaire regressie te vervullen, wat de betrouwbaarheid van de resultaten vergroot. Het is echter belangrijk om voorzichtig te zijn bij het toepassen van transformaties. Na het toepassen van een transformatie moet de verdeling van de getransformeerde gegevens opnieuw worden gecontroleerd om te zien of deze nu dichter bij een normale verdeling ligt.
In de context van de verdelingen van de statistieken voor aanval en verdediging van Pokémon, bijvoorbeeld, kunnen we zien dat beide variabelen een lichte scheefheid vertonen, naar rechts toe. Dit kan in sommige gevallen worden veroorzaakt door enkele uitzonderlijk sterke outliers, zoals Pokémon met zeer hoge aanvalswerden, die afwijken van het normale bereik. Hoewel deze outliers de verdeling kunnen beïnvloeden, is hun invloed niet zo groot dat ze de uiteindelijke analyses of voorspellingen ernstig verstoren.
Het is echter belangrijk te begrijpen dat wanneer we kijken naar de verdelingen van variabelen zoals aanval en verdediging, het cruciaal is om niet alleen naar de gemiddelden te kijken, maar ook naar de vorm van de verdeling. Inzicht in de verdeling helpt ons ervoor te zorgen dat het model is gebouwd op solide basis en dat de aannames die nodig zijn voor een betrouwbare regressieanalyse niet worden geschonden. Bij de analyse van verdediging, net als bij aanval, is het belangrijk om goed te kijken naar de vorm en spreiding van de verdeling, aangezien dit direct van invloed kan zijn op de validiteit van het model.
Hoe machine learning besluitvormingsbomen kan helpen bij het analyseren van culturele representatie in kunstgeschiedenisboeken
In de vorige hoofdstukken leerden we hoe lineaire regressie werd toegepast om patronen te identificeren en uitkomsten te voorspellen. Hoewel lineaire regressie technisch gezien machine learning is, wordt de term meestal geassocieerd met andere complexere analytische methoden en algoritmes, zoals besluitvormingsbomen, willekeurige bossen, support vector machines en diepe neurale netwerken. Elk van deze technieken heeft zijn eigen sterke en zwakke punten, en het is cruciaal om te weten welke je moet gebruiken voor een specifieke taak om nauwkeurige en betekenisvolle resultaten te verkrijgen.
Door het enorme aantal beschikbare machine learning-technieken is het voor de R-gemeenschap moeilijk gebleken een onderliggende filosofie of raamwerk te ontwikkelen om deze methoden consistent en gestroomlijnd toe te passen. Een van de eerste pakketten die probeerde dit probleem op te lossen, was het caret-pakket, ontwikkeld door Max Kuhn in 2008. Dit pakket bood een uniform raamwerk om verschillende stappen in de machine learning-pijplijn te voltooien, zoals gegevensvoorverwerking, cross-validatie en het afstemmen van hyperparameters. Het stelde onderzoekers ook in staat om modelprestaties te visualiseren en te evalueren, wat waardevol was voor het verfijnen van modelinstellingen en het verbeteren van de nauwkeurigheid.
Hoewel het "caret"-pakket revolutionair was voor R, kende het ook beperkingen, zowel qua syntaxis als prestaties. Omdat het zijn eigen implementaties van verschillende algoritmes gebruikte, waren de resultaten niet altijd compatibel met andere pakketten. Het bijhouden van de nieuwste ontwikkelingen werd uitdagend, en de opkomst van het "tidy"-paradigma leidde ertoe dat veel gebruikers op zoek gingen naar een pakket dat sterker was geïntegreerd met het bredere tidyverse-ecosysteem. Dit resulteerde in het meta-pakket "tidymodels", ontwikkeld door Julia Silge en Max Kuhn, dat het erfgoed van "caret" voortzette en tegelijkertijd de beperkingen ervan aanpakte.
Tidymodels biedt een samenhangende verzameling van pakketten die gericht is op het stroomlijnen van machine learning-workflows. Het biedt een grammatica voor modelleren die consistent is met de filosofie van tidyverse en flexibel genoeg om een breed scala aan datawetenschappelijke taken te modelleren. Door de complexiteit van verschillende modelleermethoden en algoritmes te abstraheren, stelt het pakket onderzoekers in staat zich meer te concentreren op de interpretatie en het vertellen van verhalen over hun data, wat centraal staat in culturele analyse. Deze abstractie betekent dat het schakelen tussen verschillende modelleerbenaderingen geen nieuwe syntaxis of functies vereist, waardoor verkennende analyses soepeler en intuïtiever worden. Bovendien maakt de modulariteit van tidymodels het eenvoudig om uit te breiden en aan te passen aan de specifieke behoeften van culturele analyse, omdat nieuwe modelleertechnieken of gegevensvoorverwerkingsstappen in de bestaande workflow kunnen worden geïntegreerd zonder de structuur te verstoren.
In dit hoofdstuk richten we ons op enkele fundamentele methoden die breed gebruikt worden en beschikbaar zijn binnen het "tidymodels"-raamwerk, maar die tot nu toe weinig rol hebben gespeeld in de culturele analyse vanwege hun vermeende complexiteit of rekeneisen: besluitvormingsbomen. Omdat besluitvormingsbomen relatief eenvoudig te begrijpen zijn, dienen ze als uitstekende inleidende voorbeelden voor wie nieuw is in machine learning. We zullen ons richten op het opbouwen van een solide basisbegrip van de kernfunctionaliteiten van "tidymodels", zoals gegevensvoorverwerking, hyperparameter-afstemming en modelbeoordeling. We leren ook hoe "tidymodels" complexe algoritmes vereenvoudigt en toepast door te observeren hoe kleine aanpassingen in onze code ons in staat stellen om andere machine learning-technieken te onderzoeken met de veelzijdigheid van het pakket.
Om te begrijpen hoe deze technieken ons in de praktijk kunnen helpen, onderzoeken we een uitgebreide dataset die zorgvuldig werd samengesteld door Holland Stam voor haar bacheloronderzoek. Het onderzoek van Stam biedt een kijkje in de representatie van kunstenaars in twee invloedrijke kunstgeschiedenisboeken: H. W. Janson’s History of Art en Helen Gardner’s Art Through the Ages. Deze boeken zijn wereldwijd zeer geprezen en worden vaak gebruikt in onderwijsinstellingen als basis voor kunstgeschiedeniscurricula. Stam onderzocht de relatie tussen de demografische kenmerken van kunstenaars – zoals geslacht, ras en nationaliteit – en de mate waarin ze in deze boeken werden vertegenwoordigd. Hoewel de dekking van minderheidskunstenaars in de loop der tijd is toegenomen, blijkt er nog steeds een aanzienlijke oververtegenwoordiging van witte mannelijke kunstenaars.
We breiden het onderzoek van Stam uit om de patronen van representatie beter te begrijpen en mogelijk vooroordelen die in het materiaal aanwezig zijn, bloot te leggen. We zullen onderzoeken of besluitvormingsbomen en willekeurige bossen ons kunnen helpen om te analyseren of er een correlatie is tussen het demografische profiel van een kunstenaar en de ruimte die aan hun werk in de boeken wordt toegewezen. Daarnaast onderzoeken we de relatie tussen de representatie in de boeken en de bredere kunstwereld, door bijvoorbeeld de frequentie van tentoonstellingen van deze kunstenaars in prominente instellingen zoals het Museum of Modern Art (MoMA) en het Whitney Museum of American Art te bekijken. Het doel is niet alleen toekomstige edities van kunstgeschiedenisboeken te informeren, maar ook een kritische discussie over diversiteit en representatie in het kunsthistorische narratief te stimuleren.
Bij het laden van de dataset moeten we zorgvuldig omgaan met ontbrekende gegevens, aangezien machine learning-algoritmes betrouwbare en volledige data nodig hebben om goed te functioneren. Daarom verwijderen we bijvoorbeeld alle rijen met ontbrekende waarden voordat we de gegevens verder analyseren.
De dataset bevat meer dan 3100 verschillende gegevenspunten, met variabelen zoals de naam van de kunstenaar, de editie van het boek, het jaar van publicatie, de nationaliteit van de kunstenaar, het geslacht, het ras en de etniciteit, evenals informatie over de mate van representatie in de boeken en het aantal tentoonstellingen van de kunstenaar in belangrijke musea. Door deze gegevens te gebruiken, kunnen we de representatie van kunstenaars vanuit verschillende perspectieven analyseren en eventueel patronen van bias identificeren.
Het is belangrijk om te begrijpen dat de keuze voor machine learning-technieken, zoals besluitvormingsbomen, niet alleen afhankelijk is van de complexiteit van de data, maar ook van de vraag hoe we deze data willen interpreteren en presenteren. In culturele analyse is de manier waarop we modellen bouwen en de resultaten presenteren even belangrijk als de techniek zelf. De kracht van tidymodels ligt in de eenvoud waarmee het complexe machine learning-processen toegankelijk maakt, wat het mogelijk maakt om deze technieken toe te passen op uiteenlopende datawetenschappelijke vraagstukken.

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский