R ist nun in der Version 3.3 verfügbar. Näheres bei Heise und im R-Blog.
Interessantes aus Informations- und Bibliothekswesen
Auf Stackoverflow ist R die am schnellsten wachsende Programmiersprache, und Microsoft hat eine Microsoft-R-Server-Produktfamilie an den Start gebracht. Ein Klick auf den ersten Link (zu diesem Posting von Joshua Kunst) zeigt übrigens eindrucksvoll, was man mit R alles anfangen kann. Stöbern im Blog lohnt sich, da gibt es fantastische Visualisierungen zu entdecken.
Neben den Boxplots und Violinplots gibt es noch zahlreiche bis zahllose andere Visualisierungen. Kürzlich bin ich (wieder besten Dank an Holger) über Beeswarm-Plots [1] Aron Eklund 2015. beeswarm: The Bee Swarm Plot, an Alternative to Stripchart. URL: http://CRAN.R-project.org/package=beeswarm. gestolpert. Auch hiermit lassen sich Verteilungen darstellen.
# Pakete laden library(ggplot2) library(beeswarm) # Daten aus CSV-Datei einlesen apc |
Das Skript wurde nun ein bißchen erweitert. Zuerst einmal musste ein weiteres Paket geladen werden, die Beeswarm-Library. Damit lassen sich Verteilungen sehr gut darstellen, sofern der Datensatz nicht allzu groß ist. Bei unserem Testdatensatz, den APCs der Uni Hannover, funktioniert das richtig gut:
Ergebnis:
Durch die Darstellung der einzelnen “Bienen” wird deutlich klarer, wie die Verteilung tatsächlich ist, da nicht nur ein ganzer Bereich für die jeweiligen Quartile abgesteckt wird. Die Menge der sinnvoll darzustellenden Punkte ist aber deutlich begrenzt. Versucht man, die Einwohnerzahlen von einigen Tausend Städten darzustellen, hat man im Ergebnis einen bunten Klecks, der letztendlich sehr stark einem unregelmäßig umrandeten Violinplot ähnelt.
Disclaimer: Dies ist eine äußerst laienhafte Erklärung!
References
↑1 | Aron Eklund 2015. beeswarm: The Bee Swarm Plot, an Alternative to Stripchart. URL: http://CRAN.R-project.org/package=beeswarm. |
---|
Der Violin-Plot (gibt es eine deutsche Bezeichnung? Violinen-Diagramm?) ist eine Weiterentwicklung des Boxplots. Er wurde 1998 vorgestellt [1]Hintze, Jerry L. & Nelson, Ray D. 1998. Violin Plots: A Box Plot-Density Trace Synergism. The American Statistician 52(2), 181–184. DOI: 10.1080/00031305.1998.10480559Besten Dank an Holger … Continue reading und soll die Visualisierung der Verteilungen verbessern. Das Boxplot-Skript kann man durch Ersetzung einer einzigen Funktion in ein Violinplot-Skript verwandeln:
# Pakete laden library(ggplot2) # Daten aus CSV-Datei einlesen apc <- read.csv('https://raw.githubusercontent.com/OpenAPC/openapc-de/master/data/apc_de.csv', encoding = "UTF-8", sep=",", header = TRUE) # Daten auswählen apc <- apc[, c("Institution", "EURO", "Period")] # Nur noch drei Spalten apc <- apc[apc$Institution == "Hannover U", ] # Nur noch Uni Hannover # Boxplot erstellen box <- ggplot(apc, aes(x = Institution, y = EURO)) box <- box + geom_boxplot() box # Ausgabe # Violinen-Plot erstellen vio <- ggplot(apc, aes(x = Institution, y = EURO)) vio <- vio + geom_violin() vio # Ausgabe |
Ich habe den Boxplot zur besseren Vergleichbarkeit im Skript belassen.
Ergebnis:
Aus der englischen Wikipedia:
The violin plot is similar to box plots, except that they also show the probability density of the data at different values (in the simplest case this could be a histogram). Typically violin plots will include a marker for the median of the data and a box indicating the interquartile range, as in standard box plots. Overlaid on this box plot is a kernel density estimation.
Dieses war der zweite Plot, und der nächste folgt sofott.
Disclaimer: Dies ist eine äußerst laienhafte Erklärung!
References
↑1 | Hintze, Jerry L. & Nelson, Ray D. 1998. Violin Plots: A Box Plot-Density Trace Synergism. The American Statistician 52(2), 181–184. DOI: 10.1080/00031305.1998.10480559 Besten Dank an Holger für den Hinweis! |
---|
Kürzlich fragte ich auf Twitter, ob man in bibliothekarischen Publikationen erklären müsse, was Boxplots sind, wenn man sie zur Visualisierung von Daten verwenden möchte. Tenor: Eher ja.
Eigentlich sind Boxplots nicht sonderlich kompliziert. Mit Boxplots kann man Verteilungen in Daten visualisieren. Nehmen wir – als einfaches und leicht nachzuvollziehendes Beispiel – die APCs (“Article processing charge”), die im Open-APC-Projekt gesammelt werden.
Die Beispiele hier sind mit R erstellt und relativ leicht nachvollziehbar. Einfach R (und unbedingt RStudio!) installieren und einfach ausprobieren. Es ist nicht so schwer, wie es zuerst aussieht. Und es gibt Unmengen an Tutorials und Büchern zu R. Und vor allem Stackoverflow.
Also: RStudio starten, die hier verwendeten Pakete installieren und dann folgendes Skript eingeben:
# Pakete laden library(ggplot2) # Daten aus CSV-Datei einlesen apc <- read.csv('https://raw.githubusercontent.com/OpenAPC/openapc-de/master/data/apc_de.csv', encoding = "UTF-8", sep=",", header = TRUE) # Daten auswählen apc <- apc[, c("Institution", "EURO", "Period")] # Nur noch drei Spalten apc <- apc[apc$Institution == "Hannover U", ] # Nur noch Uni Hannover # Boxplot erstellen box <- ggplot(apc, aes(x = Institution, y = EURO)) box <- box + geom_boxplot() box # Ausgabe |
Der Boxplot sieht dann folgendermaßen aus:
Erklärung:
X-Achse = Institution; Y-Achse = Höhe der APC in Euro. Was bedeutet jetzt dieses komische Kästchen mit den Strichen und Punkten? Ganz einfach:
Die Box entspricht dem Bereich, in dem die mittleren 50 % der Daten liegen. Sie wird also durch das obere und das untere Quartil begrenzt […]. Dieser ist ein Maß der Streuung der Daten, welches durch die Differenz des oberen und unteren Quartils bestimmt wird. Des Weiteren wird der Median als durchgehender Strich in der Box eingezeichnet. Dieser Strich teilt das gesamte Diagramm in zwei Hälften, in denen jeweils 50 % der Daten liegen.
Die “Antennen” (oder “Whisker”) auf und unter der Box stehen für die oberen und unteren 25 %. Ausreißer werden durch einzelne Punkte gekennzeichnet. In diesem Fall gibt es zwei Ausreißer zum unteren Ende.
Soviel erst einmal dazu. Es gibt noch viele andere Visualisierungsmöglichkeiten, von denen ich hier demnächst noch einige vorstellen möchte.
Disclaimer: Dies ist eine äußerst laienhafte Erklärung!
Ein Beispielskript für dynamische Graphen mit R und D3.
50+ Data Science and Machine Learning Cheat Sheets, u.a. zu Python, R, Machine Learning oder Django.
Teil der Operation Frühjahrsputz 2015, in deren Verlauf angefangene und nie beendete Postings einfach so veröffentlicht werden.
Ausführliches Beispiel für Social Network Analysis mit Affiliation-Data.
Da ich ziemlich viele SPSS-Anwender an Hochschulen kenne, möchte ich hier kurz auf das (relativ) neue R-Paket translateSPSS2R hinweisen, mit dem sich, die Fachleute werden es ahnen, SPSS-Skripte zu R-Skripten übersetzen lassen. Mehr im Blog des Produzenten eoda oder bei Heise.
Ich verweise hier seit ein paar Jahren immer mal wieder auf R. R ist (laut Wikipedia) eine freie Programmiersprache für statistisches Rechnen und statistische Grafiken.
R sieht auf den ersten Blick ein wenig abschreckend aus. Aber es existieren sehr, sehr viele Tutorials und Einführungen für Ein- und Umsteiger mit jeden denkbaren Vorkenntnissen.
In der aktuellen c’t (Heft 3/2014, S. 182-187) wurde eine Artikelserie begonnen, in der Andreas Krause in R einführt. Zielgruppe sind Programmierer. Eine andere Einführung, die ich sehr empfehlen kann, ist als RRZN-Handbuch erschienen. Das RRZN heißt zwar jetzt LUIS, die Handbücher werden aber zumindest bis jetzt unter altem Namen vertrieben. Und auf Coursera hat kürzlich wieder der Kurs Computing for Data Analysis begonnen, in dem R-Grundlagen vermittelt werden.