Neben klas­si­scher Soft­ware für sta­tis­ti­sche Ana­ly­sen wie SAS, SPSS und Stata gewinnt seit eini­ger Zeit ins­be­son­dere R an Beliebt­heit, da es als Free­ware ver­füg­bar ist und eine breite Unter­stüt­zung durch Foren und detail­lierte Doku­men­ta­tion genießt. R und das eben­falls kos­ten­los ver­füg­bare R Stu­dio als IDE (inte­gra­ted deve­lo­p­ment envi­ron­ment) zur kom­for­ta­ble­ren Pro­gram­mie­rung basie­ren auf der Pro­gram­mier­spra­che S. R Stu­dio teilt sich über­sicht­lich in ver­schie­dene Fens­ter für Gra­fi­ken, Daten­ta­bel­len, Code und Out­put auf und bie­tet so die Mög­lich­keit einer kom­for­ta­blen Gesamt­über­sicht. Wesent­lich für die gestie­gene Beliebt­heit von R sind soge­nannte packa­ges oder Biblio­the­ken, die vor­ge­schrie­bene Funk­tio­nen beinhal­ten und auf die bei Instal­la­tion zurück­ge­grif­fen wer­den kann, sodass Fra­ge­stel­lun­gen kom­for­ta­bel bear­bei­tet wer­den kön­nen. Diese Biblio­the­ken kön­nen von jedem Nut­zer geschrie­ben und bei Prü­fung für alle ande­ren Nut­zer frei ver­füg­bar bereit­ge­stellt wer­den. Zusätz­lich wer­den Biblio­the­ken durch eine Doku­men­ta­tion der beinhal­te­ten Funk­tio­nen inklu­sive Bei­spiele und einer Vignette, wel­che die behan­del­ten Pro­ble­ma­ti­ken aus­führ­lich beschreibt und her­lei­tet unter­stützt, sodass eine breite Infor­ma­ti­ons­grund­lage vor Ver­wen­dung der Biblio­thek ver­füg­bar ist. Durch diese Mög­lich­keit wächst R sehr schnell und ver­schie­dene Biblio­the­ken zu unter­schied­li­chen kom­ple­xen The­men sind ver­füg­bar und ermög­li­chen eine umgangs­freund­li­che Bear­bei­tung von Fragestellungen.

Wich­tige R‑Bibliotheken im Umfeld Data Science

Die­ser Bei­trag stellt einige hilf­rei­che Biblio­the­ken vor, die im Bereich der Daten­ma­ni­pu­la­tion, Visua­li­sie­rung und Machine Lear­ning häu­fig genutzt wer­den und zum Stan­dard gewor­den sind.

Zu Beginn jeder fort­ge­schrit­te­nen Daten­be­ar­bei­tung steht ein schnel­ler Ein­blick und die Erstel­lung ein­fa­cher Über­sich­ten der Daten, die wohl belieb­teste Biblio­thek ist hier dplyr.

dplyr

Die Biblio­thek dplyr bie­tet eine Reihe ver­schie­de­ner Funk­tio­nen zur Daten­ma­ni­pu­la­tion an, die in ein­fa­cher Syn­tax und ein­deu­tig ver­ständ­li­cher Benen­nung der Befehle gehal­ten sind. Bei­spiele sol­cher Funk­tio­nen sind:

  • mutate() – fügt einem Daten­satz neue Varia­blen als Funk­tio­nen bestehen­der Varia­blen hinzu
  • sel­ect() – Varia­blen anhand der Benen­nung auswählen
  • fil­ter() – aus­ge­wählte Fälle anhand bestimm­ter Bedin­gun­gen darstellen
  • sum­ma­rise() – Dar­stel­lung zahl­rei­che Kenn­werte (Mit­tel­werte, Sum­men, Anzahl Aus­prä­gun­gen usw.)

Für diese grund­le­gen­den Funk­tio­nen ist dplyr die Stan­dard­bi­blio­thek. Die ein­zige Limi­ta­tion, die sich in der Pra­xis erwie­sen hat, ist, dass bei einer sehr gro­ßen Anzahl an Daten­sät­zen die Biblio­thek data.table die ähn­li­che Funk­tio­nen auf­weist, schnel­ler in der Berech­nung ist.

Wei­tere hilf­rei­che Biblio­the­ken sind hier reshape2 oder tidyr. Aus­rei­ßer oder andere Anoma­li­tä­ten in einem Daten­satz kön­nen mit den Biblio­the­ken Out­liers oder EVIR leicht auf­ge­deckt werden.

Eine andere Mög­lich­keit der über­sicht­li­chen Ein­sicht in einen Daten­satz bie­tet sich mit Hilfe von Gra­fi­ken. Hier bie­tet R mit der Biblio­thek ggplot2 eine umfas­sende und weit ver­brei­tete Biblio­thek für die Dar­stel­lung ver­schie­dens­ter publi­zier­ba­rer Grafiken.

ggplot2

Zur Erstel­lung gra­fi­scher Über­sich­ten baut ggplot2 Schritt für Schritt eine Gra­fik auf, bis das gewünschte Ziel erreicht ist. Mög­li­che Kom­bi­na­tio­nen sind das Hin­zu­fü­gen von detail­lier­ten Beschrif­tun­gen, Farb­ef­fek­ten, Trans­for­ma­tio­nen von Varia­blen oder Koor­di­na­ten­sys­teme. Unter erstell­ten Gra­fi­ken fin­det man klas­si­scher­weise für ein Merk­mal eine Dich­te­funk­tion, ein His­to­gramm oder ein Bal­ken­dia­gramm der Aus­prä­gun­gen. Bei zwei Merk­ma­len kön­nen Zusam­men­hänge anhand von Punk­te­wol­ken oder linea­ren Zusam­men­hän­gen oder auch anhand von Bal­ken­dia­gram­men oder Box­plots dar­ge­stellt wer­den. Auch fort­ge­schrit­tene Dar­stel­lun­gen wie Land­kar­ten oder dar­auf auf­bau­ende Heat­maps sind möglich.

R als Tool für Data Science Bild1
Abbil­dung 1 ggplot2 Grafik 

Wenige Biblio­the­ken sind der­art umfas­send doku­men­tiert und wer­den so zahl­reich genutzt wie ggplot2. Wird weni­ger Wert auf optisch hoch­wer­tige Gra­fi­ken, son­dern mehr Wert auf einen schnel­len Ein­blick in Daten­ver­tei­lun­gen gelegt, ist ggplot2 im Ver­gleich zu Basis R Funk­tio­nen umständ­lich und zeit­auf­wen­di­ger. Schnelle Ein­bli­cke kön­nen mit Basis R Funk­tio­nen wie plot()box­plot() oder plot(density()) erreicht werden.

Auf­bau­end auf die­sen Mög­lich­kei­ten des Ein­blicks in die Daten sol­len meist Zusam­men­hänge zwi­schen ver­schie­de­nen Merk­ma­len oder Vor­her­sa­gen für zukünf­tige Ergeb­nisse basie­rend auf den Merk­ma­len getrof­fen wer­den. Fort­fol­gend wer­den einige R Biblio­the­ken vor­ge­stellt, die häu­fig Ver­wen­dung im Bereich des Machine Lear­nings finden.

Über Stan­dard­funk­tio­nen zu linea­ren Model­len oder gene­ra­li­sier­ten linea­ren Model­len hin­aus gehen linear mixed models der Biblio­thek lme4.

lme4

Linear mixed models wer­den ins­be­son­dere rele­vant, wenn Unter­schiede zwi­schen Grup­pen inter­es­sant sind. Eine sol­che Daten­struk­tur, die unter­stellt, dass Beob­ach­tun­gen inner­halb einer Gruppe mit­ein­an­der kor­re­liert sind, wer­den typi­scher­weise als geclus­terte Daten bezeich­net. Mit­hilfe der Basis­funk­tion lmer() der Biblio­thek lme4 kann das lineare Modell um eine ran­dom Kom­po­nente erwei­tert wer­den, die Zufalls­schwan­kun­gen zwi­schen die­sen Grup­pen auf­neh­men kann. Diese Art der Model­lie­rung kann zwi­schen dem ran­dom inter­cept model und dem ran­dom slope model unter­schei­den. Unter Bezug­nahme auf das inter­es­sie­rende Merk­mal unter­stel­len ran­dom inter­cept models, dass jede Gruppe unter­schied­li­che Start­vor­aus­set­zun­gen in Bezug auf das inter­es­sie­rende Merk­mal haben. Dem ent­ge­gen­ge­setzt unter­stel­len ran­dom slope models, dass die Effekt­stärke der erklä­ren­den Merk­male in den Grup­pen unter­schied­lich ist.

In der prak­ti­schen Anwen­dung auf geclus­terte Daten erweist sich lme4 als sehr schnell und anspre­chen­der als der Vor­gän­ger lme. Die unter­schied­li­chen Effekte las­sen sich mit ein­fa­chen Funk­tio­nen aus dem Modell raus­zie­hen und Zusam­men­hänge sind leicht gra­fisch dar­stell­bar. Der typi­sche Out­put aus Vor­her­sa­gen eines in R berech­ne­ten linear mixed models sind Sum­men oder Mit­tel­werte, sodass schnell erste Unter­schiede zwi­schen Grup­pen her­aus­ge­fun­den wer­den können.

Eine ver­brei­tete Methode im Bereich des Machine Lear­nings stel­len Ent­schei­dungs­bau­m­al­go­rith­men dar. Die Basis­bi­blio­thek in R ist rpart.

rpart

Ent­schei­dungs­bau­m­al­go­rith­men las­sen sich in Regres­si­ons­bäume und Klas­si­fi­zie­rungs­bäume unter­tei­len. Ist das inter­es­sie­rende Merk­mal kon­ti­nu­ier­lich, wer­den Regres­si­ons­bäume auf­ge­baut. Wenn das inter­es­sie­rende Merk­mal in Klas­sen ein­teil­bar ist, wer­den Klas­si­fi­zie­rungs­bäume erstellt. Diese Art der Model­lie­rung wird des­halb als Baum bezeich­net, weil alle mög­li­chen Abspal­tun­gen in einem Daten­satz bis hin zur Erklä­rung des inter­es­sie­ren­den Merk­mals binär, aus­ge­hend von einem Start­wert (der Wur­zel – root) auf­ge­baut wer­den. Zum detail­lier­ten Auf­bau von Ent­schei­dungs­bäu­men sei auf den Blog­bei­trag „Ein­füh­rung in Decis­ion Trees“ ver­wie­sen. Die Biblio­thek rpart ver­fügt über die Grund­funk­tio­nen zum Auf­bau sol­cher Ent­schei­dungs­bäume. Die Funk­tion rpart() spe­zi­fi­ziert das Modell und legt fest, wel­che Art des Ent­schei­dungs­baums ver­wen­det wer­den soll. Mit den Funk­tio­nen printcp() und plotcp() kön­nen die Ergeb­nisse dar­ge­stellt wer­den. Die Visua­li­sie­rung durch printcp() gibt Ein­blick in ver­schie­dene Feh­ler­rech­nun­gen zur Modell­güte, plotcp() zeigt den Auf­bau in der Baumstruktur.

Rpart ist hilf­reich, wenn die bloße Model­lie­rung und Güte­be­wer­tung im Zen­trum der Auf­merk­sam­keit ste­hen. Sol­len die Ent­schei­dungs­bäume für Zuwei­sun­gen von neuen Daten­sät­zen genutzt wer­den, gibt es kom­for­ta­blere Biblio­the­ken als rpart, die auf die­ser auf­bauen. In der Ver­wen­dung als nicht-para­me­tri­sche Methode zur Ergän­zung feh­len­der Daten ist eine prak­ti­sche Imple­men­tie­rung in der Biblio­thek mice ent­hal­ten. Weit­aus ver­brei­te­ter im Machine Lear­ning ist die Nut­zung soge­nann­ter ran­dom Forest Metho­den, die eine Viel­zahl an Ent­schei­dungs­bäu­men auf­bauen und so die Modell­stärke erhö­hen. Diese kön­nen in R mit der Biblio­thek ran­dom­fo­rest erstellt wer­den, die rpart als Grund­lage hat.

Sol­len bei­spiels­weise Vor­her­sa­gen basie­rend auf vor­han­de­nen Zeit­rei­hen­da­ten getrof­fen wer­den, bil­det die Biblio­thek fore­cast in Kom­bi­na­tion mit der Biblio­thek tse­ries die Grund­lage der R Bibliotheken.

fore­cast

Inner­halb der fore­cast Biblio­thek wird das soge­nannte ARIMA (Auto-Regres­sive Inte­gra­ted Moving Average) Modell ver­wen­det. Diese Modelle errech­nen aus ver­füg­ba­ren Zeit­rei­hen­da­ten Trends und sagen ent­spre­chend die­ser Trends zukünf­tige Ent­wick­lun­gen vor­aus. Zu Beginn kön­nen mit ein­fa­chen plot Funk­tio­nen erste Über­sich­ten über die zeit­li­che Ent­wick­lung der Daten getrof­fen wer­den. Anhand ver­schie­de­ner Test­sta­tis­ti­ken wie dem Aug­men­ted Dickey-Ful­ler Test (ADF) oder dem Kwiat­kowsi-Phil­lips-Schmidt-Shin Test (KPSS) wird über­prüft, ob Schwan­kun­gen in den Daten tat­säch­lich zeit­ab­hän­gig sind oder dem Zufall unter­lie­gen. Abhän­gig von den Ergeb­nis­sen kann mit der auto.arima() Funk­tion das opti­male Modell zur Vor­her­sage zukünf­ti­ger Ereig­nisse auf­ge­stellt wer­den. Anhand der fore­cast() Funk­tion wer­den nun diese Ereig­nisse vor­her­ge­sagt. Diese kön­nen gra­fisch dar­ge­stellt wer­den, der graue Bereich beinhal­tet die auf­grund des Modells getrof­fe­nen Vorhersagen.

R als Tool für Data Science Bild2
Abbil­dung 2 Vor­her­sa­ge­mo­dell mit forecast 

Zur Vor­her­sage von zukünf­ti­gen Wer­ten anhand von Zeit­rei­hen­da­ten ist die fore­cast Biblio­thek die am wei­tes­ten ver­brei­tetste und wei­test­ge­hend kon­kur­renz­los auf­grund sehr hoher Per­for­manz. Anhand der Doku­men­ta­tio­nen ist die schritt­weise Bear­bei­tung nach­voll­zieh­bar und es kön­nen belast­bare Ergeb­nisse pro­du­ziert wer­den. Eine Alter­na­tive bei kur­zen Zeit­rei­hen­da­ten ist die bsts Biblio­thek die Baye­sia­ni­sche ARIMA Modelle berechnet.

R bie­tet dar­über hin­aus mit den Pake­ten caret (Clas­si­fi­ca­tion and Regres­sion Trai­ning), sur­vi­val für Sur­vi­val-Daten oder car mit der anova() oder der pre­dict() Funk­tion wei­tere zahl­rei­che Biblio­the­ken zur Model­lie­rung und Vor­her­sage von Daten an.

Zur Vali­die­rung auf­ge­stell­ter Modelle kann in R bei­spiels­weise die Biblio­thek Reg­Test für Regres­si­ons­mo­delle, Clus­t­E­val für geclus­terte Modelle oder LSMe­ans für eine gene­relle Modell­va­li­die­rung ange­wen­det werden.

Schluss­end­lich wer­den ver­schie­dene Pakete zur optisch anspre­chen­den Prä­sen­ta­tion von Ergeb­nis­sen und Zwi­schen­schrit­ten gebo­ten. Am bekann­tes­ten ist hier shiny und RMark­down.

RMark­down

RMark­down ist eine Erwei­te­rung von R, die es erlaubt, Texte, Gra­fi­ken und Prä­sen­ta­tio­nen unmit­tel­bar in einem R File zu schrei­ben, sodass ein prä­sen­tier­fä­hi­ges Doku­ment inklu­sive Code­ab­schnitte in einem geschrie­ben und erstellt wer­den kann. Dar­über hin­aus kann mit der Erwei­te­rung knitr Code aus ande­ren Spra­chen wie Python, SQL oder Stan ein­ge­fügt wer­den. Befehle inner­halb von RMark­down sind intui­tiv gehal­ten, wie bei­spiels­weise title, out­put, oder aut­hor.

Fazit

Diese vor­ge­stell­ten Pakete stel­len eine Aus­wahl an R Biblio­the­ken zur Lösung von Data Sci­ence Pro­ble­men dar, die häu­fig genutzt wer­den und sich in der Pra­xis als hilf­reich und per­for­mant erwei­sen. Auf­grund der erwähn­ten Fülle an ver­füg­ba­ren Biblio­the­ken wird nur ein klei­ner Teil abge­deckt, der belie­big erwei­ter­bar ist.