De functie boxplot() laat zien hoe de verdeling van een numerieke variabele y verschilt tussen de unieke niveaus van een tweede variabele, x. Voor een effectief resultaat mag deze tweede variabele niet te veel unieke niveaus hebben (bijv. 10 of minder is goed; veel meer dan dit maakt de plot lastig te interpreteren).
De functie boxplot() heeft ook een aantal optionele parameters. In deze oefening gebruik je er drie om een informatievere plot te krijgen:
varwidth maakt boxplots met variabele breedte mogelijk die de verschillende groottes van de datasubsets laten zien.
log maakt log-getransformeerde y-waarden mogelijk.
las zorgt voor beter leesbare aslabels.
Wanneer je een boxplot gebruikt
Wanneer je een continue variabele hebt, opgesplitst naar een categorische variabele.
Wanneer je de verdelingen van de continue variabele per categorie wilt vergelijken.
Histogram vs. boxplot
Hieronder staat de vergelijking van een histogram met een boxplot. De lijn in het midden toont de mediaan van de verdeling. Dat wil zeggen: de helft van de vorsten begon vóór deze leeftijd te regeren, en de andere helft erna.
De doos in de boxplot loopt van het eerste kwartiel tot het derde kwartiel. Het eerste kwartiel is het punt waar een kwart van de waarden eronder ligt. Met andere woorden: een kwart van de vorsten begon vóór deze leeftijd te regeren, en driekwart erna. Het derde kwartiel is de leeftijd waar driekwart van de vorsten eronder begon te regeren. Het verschil tussen het derde en het eerste kwartiel heet het interkwartielafstand (IQR).
De horizontale lijnen, de zogenaamde "snorharen" (whiskers), hebben een wat complexere definitie. Elke lijn strekt zich uit tot anderhalf keer de interkwartielafstand, maar wordt vervolgens beperkt tot het bereiken van daadwerkelijke datapunten.
De technische definitie staat in de onderstaande afbeelding, maar in de praktijk kun je de snorharen zien als zó ver doorlopend dat alles buiten die lijnen een extreem waarde is.
Zoals eerder vermeld, is de kracht van boxplots dat je veel verdelingen tegelijk kunt vergelijken. Hier zijn de koninklijke huizen geordend van oudste bovenaan tot nieuwste onderaan.
Er is een trend zichtbaar: sinds de Plantagenets in de veertiende eeuw schuiven de dozen geleidelijk naar rechts, wat laat zien dat de leeftijden waarop nieuwe vorsten de troon bestijgen zijn toegenomen.
Godwin en Blois verschijnen als een enkele lijn omdat er slechts één koning uit elk huis was. Het huis Anjou had maar drie koningen en vormt een doos met één snorhaar in plaats van twee.
Let op dat de boxplots voor de huizen Denemarken en Windsor enkele punten tonen. Dit zijn extreme waarden, dus waarden buiten het bereik van de snorharen. Windsors meest linkse uitschieter is Elizabeth de Tweede, die op 26-jarige leeftijd de troon besteeg.
boxplot()-functie
In het volgende voorbeeld, met de formule-interface, maak je een boxplot die de verdeling van numerieke crim-waarden laat zien over de verschillende rad-waarden uit het Bostondata frame. Gebruik vervolgens de parameter varwidth om boxplots met variabele breedte te krijgen, specificeer een log-getransformeerde y-as en zet de parameter las gelijk aan 1 om horizontale labels voor zowel de x- als y-as te krijgen.
Gebruik ten slotte de functie title() om de titel "Crime rate vs. radial highway index" toe te voegen.
# Create a variable-width Box Plot with log y-axis & horizontal labels
boxplot(crim ~ rad, data = Boston,
varwidth = TRUE, log = "y", las = 1)
# Add a title
title("Crime rate vs. radial highway index")
Als we de bovenstaande code uitvoeren, levert dit het volgende resultaat op: