Flaschenhälse (langsame Code-Abschnitte) in R finden mit Profiling: profvis

Wenn R-Code zu langsam läuft, sind es oft nur ganz bestimmte Stellen, die optimiert werden müssen. Nicht immer ist sofort klar, welche Codezeilen das sind. Daher ist es sinnvoll zu wissen, wie man solche Flaschenhälse (oder „Bremsklötze“) effizient und elegant finden kann. Ein hilfreiches Werkzeug dafür ist das sogenannte Profiling: Das automatisierte Erstellen eines Profils, … „Flaschenhälse (langsame Code-Abschnitte) in R finden mit Profiling: profvis“ weiterlesen

Verdeckte Korrelationen sichtbar machen in R mit linearen Modellen

Nach meinem Eindruck erhalten verdeckte Korrelationen weniger Aufmerksamkeit als ihre bekannteren Kollegen, die Scheinkorrelationen. Dabei stellen beide Phänomene ähnliche Herausforderungen für die Datenanalyse dar. Eine verdeckte Korrelation liegt vor, wenn ein Zusammenhang zwischen zwei Variablen besteht, aber nicht direkt sichtbar wird, weil er von (mindestens) einer anderen Variable verdeckt oder überlagert wird. Kein Zusammenhang zwischen … „Verdeckte Korrelationen sichtbar machen in R mit linearen Modellen“ weiterlesen

Scheinkorrelationen aufdecken in R mit linearen Regressionsmodellen

Störche bringen Babies – das wohl bekannteste Beispiel der Statistik für eine klassische Scheinkorrelation. Der Zusammenhang ist tatsächlich statistisch nachweisbar – es handelt sich jedoch (nach heutigem Wissen) nicht um einen Kausalzusammenhang. Auch wenn uns das inhaltlich bekannt ist – wie können wir das statistisch belegen? In anderen Anwendungsfällen wird uns inhaltlich vielleicht nicht so … „Scheinkorrelationen aufdecken in R mit linearen Regressionsmodellen“ weiterlesen

Schleifen parallelisieren in R mit foreach

Schleifen haben einen schlechten Ruf in R: Sie gelten nicht zu unrecht als langsam. Oft ist es möglich, Schleifen zu vermeiden, etwa durch vektorisierte Funktionen, mit Funktionen aus der apply-Familie (wie lapply) oder mit map-Funktionen aus dem purrr-Paket. Manchmal wäre es jedoch recht aufwändig, R-Code so umzuschreiben, dass Schleifen eliminiert werden. Dann ist es nützlich, … „Schleifen parallelisieren in R mit foreach“ weiterlesen

R-Code parallelisieren mit parallel::clusterApply()

R-Code ist oft schnell zu schreiben, aber nicht immer schnell genug in der Ausführung. Eine Methode, dem abzuhelfen, besteht darin, R-Code zu parallelisieren, d. h. mehrere Prozessorkerne oder mehrere Arbeiter einzusetzen. Das parallel-Paket, das zur Base-R-Installation gehört, bietet mit der clusterApply()-Funktion eine elegante Möglichkeit. Parallelisierung: Vorgehen und Vorbereitung Ziel ist es, 200 Regressionsmodelle mit jeweils … „R-Code parallelisieren mit parallel::clusterApply()“ weiterlesen

Große Datenmengen visualisieren mit R, ggplot2 und trelliscopejs

Wie kann man große Datenmengen in R so darstellen, dass sie gut lesbar sind und viele Informationen preisgeben? „Große Datenmengen“ verstehen wir hier im Sinne von „viele Untergruppen“, nicht unbedingt im Sinne von vielen Gigabyte. Wer versiert ist, denkt vielleicht an eine Shiny App, die große Flexibilität und viele Nutzereinstellungen erlaubt. Wir suchen heute jedoch … „Große Datenmengen visualisieren mit R, ggplot2 und trelliscopejs“ weiterlesen

Elegante R-Programmierung mit purrr::map und genisteten Datensätzen

2016 machte Hadley Wickham eine Idee populär, von der er zunächst selbst nicht sicher war, ob sie gut ist: genistete Datensätze (nested data frames). Das Prinzip ist einfach: Eine Spalte eines Datensatzes kann selbst ein Datensatz sein. Was zunächst umständlich oder verwirrend klingt, kann zum mächtigen Werkzeug werden – vor allem, wenn man viele gleich … „Elegante R-Programmierung mit purrr::map und genisteten Datensätzen“ weiterlesen

Machine Learning-Algorithmen verstehen: Interaktionseffekte

Machine Learning-Algorithmen zu verstehen ist eine Herausforderung. Mit dem folgenden Text möchte ich einen Beitrag dazu leisten, indem ich ein Spezialthema betrachte: Wie gehen verschiedene Machine Learning-Algorithmen mit Interaktionseffekten um? Folgende Machine-Learning-Algorithmen werden betrachtet: Lineare Regression GAM = Generalized Additive Model KNN = K nächste Nachbarn = k nearest neighbors Ein einzelner Entscheidungsbaum (rpart) Ein … „Machine Learning-Algorithmen verstehen: Interaktionseffekte“ weiterlesen

Regressionsmodelle visualisieren in R: Mit Interaktionseffekten, 3D (ggplot2, plotly)

Regressionsmodelle sind nach wie vor sehr populär in der Statistik, dem Data Mining, Data Science und Machine Learning – das belegen aktuelle Zahlen, die KDNuggets kürzlich via Twitter präsentierte: Heute geht es um Möglichkeiten, solche Modelle mit der frei erhältlichen Software R / RStudio zu visualisieren. Wir nutzen den weit verbreiteten Datensatz mtcars, der in … „Regressionsmodelle visualisieren in R: Mit Interaktionseffekten, 3D (ggplot2, plotly)“ weiterlesen

Diagramme für Präsentationen, Berichte, Abschlussarbeiten: Beispiele mit der freien R-Software (Boxplots, Histogramme, Streudiagramme)

Sind Sie gelangweilt von Standard-Excel-Diagrammen in Präsentationen, Berichten oder Abschlussarbeiten? Hier ein paar Beispiele, die mit der freien Statistik-Software R erstellt wurden, und zwar mit Hadley Wickhams ggplot2-Paket (sofern nicht anders angegeben). Beispiele für Boxplots mit Untergruppen Eine besondere Stärke von R besteht im sog. „faceting“: man kann Diagramme für Untergruppen elegant anordnen. Wer schon mal … „Diagramme für Präsentationen, Berichte, Abschlussarbeiten: Beispiele mit der freien R-Software (Boxplots, Histogramme, Streudiagramme)“ weiterlesen