MBA Big Data Analytics
Module: Data Analytics with R
Docent: Hans van der Zwan
Handout 01
Onderwerp: exploratory graphic data analysis
Literatuur
Venables, W.N., Smith D.M., R Core Team. (2018). An introduction to R, version 3.5.1. Te downloaden van https://cran.r-project.org/manuals.html.
Wickham H. & Grolemund, G. (2017). R for Data Science. Sebastopol, CA: O’Reilly.
Aanbevolen literatuur
Ekstrom, C. T. (2012). The R primer. Boca Raton, FL: CRC Press.
Peng, Roger D. (2015). R programming for data science. Leanpub, https://leanpub.com/rprogramming.
Voorbereiding college
Datacamp course Introduction R, https://www.datacamp.com/.
Zie hiervoor MBA BDA handout 00.
De kracht van R ligt in het feit dat het open source is en wereldwijd packages worden ontwikkeld en beschikbaar gesteld voor allerlei toepassingen.
Voor het vervolg van deze outline dient een aantal packages geïnstalleerd te worden. Installeren gebeurd met opdracht install.packages(“naam package”). De naam van het package moet tussen quotes worden geplaatst.
Voor het vervolg is het package tidyverse nodig, dit is in feite een verzameling veel gebruikte packages, o.a. readr (inlezen en opslaan databestanden), ggplot 2 (visualiseren) en dplyr (samenvatten en aggregeren van data, samenvoegen van databestanden).
Type in de console: install.packages(“tidyverse”). Hiermee wordt het package tidyverse op de eigen computer toegevoegd aan de R library; om het package in een R sessie te gebruiken, type library(tidyverse).
Voor de eerste analyse van een gestructureerde dataset – d.w.z. geordende data in een datamatrix met in de rijen de observaties en in de kolommen de variabelen – wordt veelal gebruik gemaakt van verkennende grafische data-analyse, exploratory graphical data analysis. Base R kent goede mogelijkheden om standaardgrafieken te maken en aan te passen. Een andere mogelijkheid is gebruik te maken van het package ggplot2 (onderdeel van tidyverse). Dit package is gebaseerd op de theorie van het maken van grafieken zoals beschreven in Wilkonson (2005).
Bestudeer Wicham & Grolemund, H2.
De grammar of graphics beschouwt een grafiek te zijn opgebouwd uit verschillende lagen te weten
(i) data; de data die in de grafiek worden afgebeeld; ggplot vereist een dataframe als input;
(ii) mapping; de variabelen die worden afgebeeld in de grafiek en op welke wijze; een variabele kan bijvoorbeeld afgebeeld worden op de horizontale as, op de vertikale as, op de kleur of vorm van geometrische objecten die gebruikt worden;
(iii) stats; de statistische transformaties die gebruikt worden om een variabele af te beelden; voor een staafdiagram wordt bijvoorbeeld per categorie het aantal waarnemingen geteld;
(iv) position; de positionering van de geometrische objecten in de figuur; kan bijvoorbeeld gebruikt worden om een tekst object te positioneren in een grafiek;
(v) geom; het soort geometrische objecten dat gebruikt wordt; bijvoorbeeld punten, lijnen, staven;
(vi) coordinate system; het soort coördinatensysteem dat gebruikt wordt; veelal is dat het zogenaamde cartesische systeem met een x-as en een daar loodrecht opstaande y-as, maar er zijn ook andere mogelijkheden zoals een poolcoördinatensysteem;
(vii) facets; facets geeft de mogelijkheid om de grafiek te splitsen in subgrafieken op basis van een (categoriale) variabele.
De verschillende lagen (layers) waaruit een grafiek is opgebouwd komen in de code in ggplot2 terug. Aan de meerderheid van de layers kent ggplot2 default waarden toe. Dat geldt niet voor (i) data, (ii) mapping en (iii) geom, er moeten waarden aan de argumenten van deze layers worden toegekend om een grafiek te krijgen. De default waarden zijn voor een deel afhankelijk van de soort variabelen (numeriek of categoriaal) en de gebruikte geom (voor een staafdiagram gelden andere defaultwaarden dan voor een scatterplot).
Eén van de doelstellingen van een grafische verkenning van de gegevens is het identificeren van uitschieters (outliers). Na identificatie is het zaak de oorzaak te achterhalen om vervolgens te beslissen of de outliers worden verwijderd, aangepast of meegenomen zoals ze zijn.
Outliers uit een dataframe in R verwijderen kan eenvoudig met de functie dplyr::filter(). Om waarnemingen uit het dataframe df te verwijderen waarvoor de waarden van een variabele X1 kleiner zijn dan 0, gebruik: filter(df, X1 >= 0).
Het schaaltype van een variabele bepaalt welk type grafiek geschikt is om de data mee weer te geven.
Kwalitatieve variabelen, ook wel categoriale variabelen genoemd, worden onderscheiden in nominale variabelen en ordinale. Het verschil is dat bij een ordinale variabele een ordening (van laag naar hoog) tussen de verschillende waarden die de variabele aan kan nemen bestaat. Een categoriale variabel wordt in R een factor variabele genoemd. Veel gebruikte grafieken: staafdiagrammen, cirkeldiagrammen (hoewel, zie de opmerking in R bij ?pie).
OPGAVE 2.1 (barplot)
Zie script SDA_funda_01.R; werk het script door (inclusief de opgaven in het script).
Kwantitatieve variabelen worden onderscheiden in variabelen met een intervalschaal en variabelen met een ratioschaal. Het verschil is het niet/wel aanwezig zijn van een natuurlijk nulpunt. Zo wordt temperatuur (0C) gemeten op een intervalschaal, het nulpunt van deze schaal is een gekozen nulpunt. Bij keuze voor een andere meeteenheid, hoort een ander nulpunt. Veel gebruikte grafieken voor numerieke variabelen: boxplots en histogrammen.
OPGAVE 2.2 (histogram en boxplot)
Zie script SDA1_funda_02.R; werk het script door (inclusief de opgaven in het script).
Bij multivariate analyses worden grafieken gebruikt waarin twee of meer variabelen worden afgebeeld.
Geëigende grafieken om twee categoriale variabelen in één grafiek weer te geven zijn ‘side-by-side’ of gestapelde (stacked) staafdiagrammen (barplots).
OPGAVE 2.3
Zie script SDA_hbo.R. Werk dit script door.
Verband tussen een categoriale variabele en een numerieke variabele kan bijvoorbeeld worden weergegeven in side-by-side boxplots of side-by-side histogrammen. Zie hiervoor het script SDA_funda_02.
De meeste geëigende grafiek om het verband tussen twee numerieke variabelen weer te geven is een spreidingsdiagram (scatterplot).
OPGAVE 2.4
Maak een nieuw script in R.
Lees het funda bestand opnieuw in.
(i) Maak een scatterplot waarin de oppervlakte wordt uitgezet tegen de vraagprijs.
(ii) Gebruikfacet_grid()om voor elke van de tien plaatsen dit scatterplot te genereren.
(iii) Genereer een scatterplot met op de x-as het aantal kamers en op de y-as de vraagprijs.
(iv) Genereer een scatterplot met op de x-as het aantal kamers en op de y-as de oppervlakte.
Een tijdreeks is een serie waarnemingen in de tijd met in principe gelijke tijdsintervallen tussen de waarnemingen. Voor tijdreeksen wordt veelal een lijngrafiek gebruik al dan niet in combinatie met punten.
OPGAVE 2.5
Zie script SDA_pp_london.R.
In dit script wordt het aantal per dag verkochte woningen in London in 2016 geanalyseerd.