Von SPSS zu R: eoda bietet Assessment für wechselwillige SPSS-User

Lange Zeit galt SPSS in Unternehmen und öffentlichen Einrichtungen als Standard Tool der statistischen Datenanalyse. Heute erwägen viele Nutzer einen Wechsel hin zu R, der vielversprechendsten Lösung im Umfeld von Data Mining und Predictive Analytics.

Durch die enge Verknüpfung mit der weltweiten Data Science Community gewährleistet R die Verfügbarkeit der aktuellsten Methoden zur Datenanalyse. Mit der stetig wachsenden Anzahl an zusätzlichen Erweiterungspaketen ist R in den Bereichen Funktionsumfang und Flexibilität führend. Ein entscheidender Pluspunkt ist die Integrierbarkeit von R in bestehende IT-Landschaften. Nahezu alle Datenbanken verfügen über Schnittstellen zu R und durch die Verbindung mit anderer Programmiersprachen wie C++ oder JavaScript lässt sich R einfach erweitern und optimieren. Durch die Unterstützung der Community und Unternehmen wie Oracle®, Microsoft® oder SAP® ist der positiven Entwicklung von R noch lange kein Ende gesetzt. Vorreiter des Big Data Business wie Google beschäftigen längst große R-Entwicklerteams. Zudem ist R Open Source und im Gegensatz zu anderen Analyselösungen lizenzkostenfrei.

eoda migriert auf Knopfdruck SPSS Syntax nach R

eoda migriert auf Knopfdruck SPSS Syntax nach R

Die Übersetzung von SPSS-Syntax in R-Code kann jedoch ein komplexes IT-Projekt werden. Eine manuelle Migration ist fehleranfällig, aufwendig und die Erstellung eines funktionell äquivalenten R-Skriptes wegen der Unterschiede zwischen den beiden Sprachen kompliziert.

eoda eröffnet SPSS-Usern auf Knopfdruck das Potenzial von R

Der von der Kasseler eoda GmbH entwickelte Service translate2R strebt durch die Automatisierung weiter Teile des Migrationsprozesses die Lösung dieser Probleme an. Auf Knopfdruck übersetzt translate2R große Teile des bestehenden SPSS Codes in ein vollfunktionsfähiges R-Skript. Mit eoda | migrateR verfügt der Datenanalyst über ein ganzheitliches Angebot rund um translate2R, das sich aus Projektmanagement, Beratung, Codeübersetzung und R-Schulungen zusammensetzt.

Zum offiziellen Release von translate2R bietet eoda SPSS-Nutzern ein umfassendes Assessment, bestehend aus einem Workshop zur Evaluierung des bestehenden SPSS-Codes, einem individuellen Report mit den Handlungsempfehlungen bezüglich einer R-Migration und der Teilnahme an einem R-Einführungskurs. Weitere Informationen zum Assessment und zu eoda | migrateR finden Interessierte unter http://www.eoda.de/de/R-Migration.html.

eoda auf der useR! Conference 2015 in Aalborg: Ein Resümee

R goes professional – so könnte das Fazit der diesjährigen Konferenz für Entwickler und Nutzer der Programmiersprache R lauten. Rund 660 Teilnehmer aus über 40 verschiedenen Ländern erhielten im dänischen Aalborg einen Einblick in neue Pakete, aktuelle Entwicklungen im Umfeld der Community und interessante Anwendungsfälle von R.

Aalborg: Der Veranstaltungsort der useR! 2015

Aalborg: Der Veranstaltungsort der useR! 2015

R erreicht die nächste Entwicklungsstufe

Die Professionalisierung von R war das übergreifende Thema der Konferenz. Angetrieben von der immer stärkeren Verbreitung von R im Unternehmenskontext erreicht die Lingua franca der Datenanalyse die nächste Entwicklungsstufe. Von der Performanceoptimierung über die Steigerung der Reproduzierbarkeit bis hin zur Validierung – die useR! 2015 hat die positiven Entwicklungen von R im Hinblick auf die Leistungsfähigkeit und Usability im kommerziellen Bereich gezeigt.

Weiterlesen

eoda auf der useR! Conference 2015 in Aalborg: Das Wichtigste vom zweiten Präsentationstag – Teil 2

Nach dem ersten Teil unserer Zusammenfassung vom zweiten Präsentationstag der useR! 2015 folgt hier die Fortsetzung der Highlights vom Donnerstag und das Wichtigste der Keynote vom letzten Konferenztag am Freitag.

Session – Machine Learning 1

Ron Pearson von Datarobot zeigt in seinem Vortrag, wie sich durch den Vergleich unterschiedlicher Data Mining Modelle Erkenntnisse über die Bedeutung einzelner Variablen gewinnen lassen. In seinem Beispiel ging es um die Prognose der Stabilität von Beton auf Basis verschiedener Einflussvariablen. Insgesamt wurden 30 Modelle berechnet. Eine vergleichende Analyse des besten Modells gegenüber dem Durchschnitt aller Modelle hat gezeigt, dass eine bestimmte Variable – der Wasseranteil im Beton – im Vergleich zu den anderen Modellen einen signifikant höheren Einfluss hatte. Die Detailanalyse zeigt, dass der Einfluss des Wasseranteils nicht linear und nicht monoton ist, was von den meisten Modellen nicht erkannt wurde. Neben der Verbesserung der Modellqualität hilft der Vergleich verschiedener Data Mining Modelle dabei, inhaltlich Erkenntnisse über den Zusammenhang von Ziel- und Einflussvariablen abzuleiten.

Um räumlich und zeitlich bezogene Clusteranalysen ging es im Vortrag von Markus Loecher von der Berlin School of Economics and Law. Im ersten Schritt projiziert Loecher Punkte mit Hilfe von rgooglemaps auf eine Karte und visualisiert die Dichte über Farbverläufe. Werden die Karten über die Zeit animiert, lassen sich raumzeitliche Cluster leicht erkennen. Um die Cluster analytisch aufzufinden, verwendet Loecher die Decision Tree Methode. Die aus den Entscheidungsbäumen entstandenen Cluster sind zunächst rechteckig, können aber rotiert werden, so dass die Punkte in Form von Parallelogrammen geclustert werden. Die visuelle Kontrolle bestätigt, dass die gefundenen Cluster mit den tatsächlichen Hot-Spots gut übereinstimmen.

Aus dem Bereich der Faktorenanalyse stammt das Paket PCAmixdata, das Marie Chavent in ihrem Vortrag vorgestellt hat. Mit Hilfe des Pakets kann eine Hauptkomponentenanalyse, die im englischsprachigen Raum als Principal Component Analysis (PCA) bezeichnet wird, unter der Bedingung von gemischten Daten durchgeführt werden. Die Mischung der Daten bezieht sich auf das Messniveau. Es können also kategoriale und metrische Daten miteinander kombiniert werden. Darüber hinaus bietet PCAmixdata die Option, inhaltlich zusammengehörige Variablen zu gruppieren.

Weiterlesen

eoda auf der useR! Conference 2015 in Aalborg: Das Wichtigste vom zweiten Präsentationstag – Teil 1

Genau wie der erste Präsentationstag der useR! 2015, hatte auch der zweite Tag mit Präsentationen interessante Sessions mit Neuerungen für die R-Nutzer zu bieten.

Die useR! 2015 im dänischen Aalborg

Die useR! 2015 im dänischen Aalborg

Keynote: A Survey of Two Decades of Efforts to Build Interactive Graphics Capacity in R (Di Cook)

“R has been eighty-seven steps forward for data analysis but twelve steps backwards for interactive graphics“

Früh in ihrer Keynote ließ Di Cook diesen Satz fallen. Hintergrund sind ihre über 20 Jahre Erfahrung und das Wissen, dass mit dem Programm xLispStat welches in den 90er Jahren Verwendung fand, eine explorative Datenanalyse durch dynamische/interaktive Grafiken möglich war, die seit dem Wechsel der statistischen Community hin zu S und später R bilang nicht mehr erreicht wurde.

Im Folgenden gab Cook einen Rückblick auf die vergangenen Jahre und skizierte die Meilensteine die R gemacht hat, um in puncto interaktiver Grafiken das Niveau zu erreichen, welches heute vorhanden ist.

Wichtige Schritte waren hierbei die Pakete rgobi und cranvas. Interessanterweise wurden beide schon unter Beteiligung von Hadley Wickham entwickelt, welcher später mit ggplot eines der bekanntesten R Pakete entwickelt hat und derzeit unter anderem an ggvis arbeitet, mit Sicherheit eines der derzeit spannendsten Projekte hinsichtlich interaktiver Grafiken in R.

Neben ggvis, erwähnte Di Cook noch gridsvg und plotly als interessante aktuelle Pakete.

Zum Abschluss ihres Talks offenbarte Sie noch Ihre Wünsche an die aktuelle Entwicklergemeinde: Mehr Interaktivität in den Plots selber, Verlinkungen zwischen unterschiedlichen Grafiken und einen starken Bezug auf statistisches Model Fitting.

Während des Publikumsgesprächs kam noch die Frage auf, wie es denn um die Reproduzierbarkeit steht (ein auf dieser Konferenz prominentes Thema), wenn man mittels interaktiver Grafiken seine Modelle verfeinert. Laut Cook müssen hierfür die getätigten Schritte in einer interaktiven Umgebung aufgezeichnet und abgelegt werden können.

Session – Interactive Graphics

Hatte Di Cook noch in Ihrer Keynote die historische Entwicklung von interaktiven Grafiken in R erläutert, war es jetzt an der Zeit sich den aktuellen Stand zu vergegenwärtigen.

Das Paket gridSVG, in Cooks Vortag schon erwähnt, wurde in Michael Sachs‘ Vortrag „Interactive Graphics with ggplot2 and gridSVG“ im Hinblick auf die praktische Verwendung hin gezeigt. Mit gridSVG lassen sich ggplot Grafiken in ein SVG Objekt umwandeln. Mit D3 der beliebten Javascript Bibliothek zur Erstellung interaktiver Grafiken lassen sich im Folgenden die einzelnen Elemente der ggplot Grafik ansprechen und manipulieren. Diese Vorgehensweise ist unter anderem dadurch besonders ansprechend, da man sich bei der Erstellung von Grafiken nicht schon im Vorfeld entscheiden muss, ob man eine statische oder eine Interaktive Grafik erstellt. Man erstellt einfach in R eine statische ggplot Grafik und bearbeitet diese anschließend einfach noch mit Javascript um eine Interaktive Grafik zu erhalten.

Weiterlesen

Pressemitteilung: translateSPSS2R – eoda veröffentlicht R-Paket für die Migration von SPSS-Funktionen nach R

Derzeit versammeln sich im dänischen Aalborg die Anwender und Entwickler von R zur useR! Conference 2015, dem weltweit zentralen Event für die R-Community. Die useR! zeigt, warum R auch für SPSS-Nutzer eine vielversprechende Alternative zur Datenanalyse ist. Die Möglichkeiten zur grafischen Darstellung von Ergebnissen, der enorme Funktionsumfang oder die Integration mit vorhandene Business Anwendungen machen R zu dem Werkzeug, mit dem sich die gerade heiß diskutierte neue Rolle des „Data Scientist“ perfekt ausfüllen lässt. R gilt in Wissenschaft und Wirtschaft als Standard für die Datenanalyse. Datengetriebene Firmen wie Google beschäftigen längst große R-Entwicklerteams.

Über ein anwenderfreundliches Frontend können interessierte Nutzer mit translate2R automatisch vorhandene SPSS-Syntax in R Code übersetzen und eine schnelle und effiziente Migration vollziehen – auch ohne tiefergehende Vorkenntnisse in R. Um für SPSS Nutzer den Einstieg in die Erstellung von R-Skripten zu erleichtern, hat eoda die mit „translateSPSS2R“ ein R-Paket entwickelt, mit dem sich in R gewohnte SPSS-Funktionen nutzen lassen.

Angleichung struktureller Unterschiede durch einen neuen Datentyp

„translateSPSS2R“ löst eine der Herausforderungen bei der Migration von SPSS zu R: Die konzeptionellen Unterschiede der beiden Sprachen. Ein Beispiel sind die voneinander abweichenden Metainformationen. Das SPSS Dataset enthält im Vergleich zu R Informationen, die im Datenmanagement und in den Analysefunktionen berücksichtigt werden.

Weiterlesen

eoda auf der useR! Conference 2015 in Aalborg: Die Highlights vom ersten Präsentationstag – Teil 2

Nach dem ersten Teil der Highlights vom Mittwoch, folgt hier der zweite Teil mit einem Überblick über die weiteren Themen und Inhalte der Sessions vom ersten Präsentationstag der useR! 2015.

Computational Performance

Der aus unserer Sicht interessanteste Vortrag der Performance Session kam von Helena Kotthaus von der TU Dortmund. In ihrem Vortrag hat sie das Projekt TraceR vorgestellt, ein Tool zur Performancemessung. Im Unterschied zu anderen Ansätzen ist die Performance Messung hier direkt in den R Interpreter implementiert, was zu präziseren Messergebnissen führt.

In ihrem Vortrag hat sich Kotthaus auf die Messung der Performance von parallelisierten Prozessen konzentriert, einem zunehmend relevanten Problem bei der Erstellung von performantem R Code.

TraceR bietet eine visuelle Ausgabe der Ergebnisse. Die Laufzeit der einzelnen Prozesse, der CPU Verwendung pro Prozess, sowie die Auslastung des RAM werden übersichtlich dargestellt. So lässt sich leicht erkennen, ob eine Veränderung in der Anzahl der Prozesse zu einer verbesserten Performance führt. Die Performanceverbesserung steigt nicht zwingend linear, sondern erreicht an einem bestimmten Punkten – je nach Hardware Setting und Problemstellung – ein Optimum. TraceR kann dabei helfen dieses zu finden.

Business

Anders als der Titel „Statistical Consulting using R: a DRY approach from the Australian outback“ vermuten ließ, hat Peter Baker mit einem erfrischenden Vortrag die Business Session eröffnet. Seine erste These lautete: Egal was der Kunde in einem ersten Gespräch über das zu lösende Problem sagt: Es kommt immer anders.

Sein DRY (Don‘t Repeat Yourself) Ansatz läuft darauf hinaus, wiederkehrende Prozesse zu standardisieren und zu automatisieren. Hierzu hat Baker ein R Paket namens dryworkflow (derzeit nur über GitHub verfügbar) entwickelt, dass einige Standardaufgaben übernimmt: Hierzu gehören unter anderem das Anlegen einer Ordnerstruktur und eines git repositories inklusive erstem Commit. dryworkflow bietet damit eine Alternative zum ProjectTemplate Paket, das einen ähnlichen Funktionsumfang abdeckt.

Weiterlesen

eoda auf der useR! Conference 2015 in Aalborg: Die Highlights vom ersten Präsentationstag – Teil 1

Die useR! Conference 2015 ist offiziell eröffnet: Nach dem „Tutorial-Tuesday“ folgte am Mittwoch der erste Präsentationstag.

Impression von der Opening Session am Dienstag

Impression von der Welcome reception der useR! 2015 am Dienstag

Unsere R-Experten vor Ort haben die wichtigsten Informationen und Neuerungen der Sessions vom Vormittag zusammengefasst:

Networks

Wie kann man möglichst viele Konferenzteilnehmer dazu bewegen, den eigenen Vortrag zu besuchen? Eine Möglichkeit besteht darin, potentielle Interessenten mit personalisierter Onlinewerbung auf sich aufmerksam zu machen. Anhand dieses nicht ganz ernstgemeinten Anwendungsbeispiels hat Daroczi im ersten Vortrag der Networks-Session aufgezeigt, wie mit Hilfe des Pakets fbRads aus R heraus Werbekampagnen auf Facebook aufgesetzt und gesteuert werden können. Der große Vorteil dabei: Im Zusammenspiel mit der Facebook API deckt das Paket den kompletten Prozess einer Werbekampagne ab – von der Definition der Zielgruppe bis zur Auswertung der Werbewirksamkeit.

Peter Meißner hat sich in seinem Vortrag dem Thema Webscraping gewidmet und gab einen Überblick darüber, was zu tun ist, wenn der Download-Button fehlt und die gewünschten Informationen stattdessen direkt aus einer Webseite extrahiert werden müssen. Je nachdem welche Web-Technologien auf der relevanten Webseite eingesetzt werden, kommen für das Webscraping mit R verschiedene Funktionen und Pakete infrage. Im einfachsten Fall reichen bereits base-Funktionen wie download.file() und einfache String-Manipulationen aus. Am einfachsten dürften die meisten Webscraping-Projekte jedoch mit dem Paket rvest zu lösen sein. Sollte dies nicht möglich sein, weil sich die gewünschten Informationen zum Beispiel in JS-Code verbergen, kann mit RSelenium ein virtueller Browser emuliert werden.

Reproducibilty

Reproduzierbarkeit kann in der R-Community aus verschiedenen Blickwinkeln betrachtetet werden, dass wurde auch in der Mischung der heutigen Präsentationen zu diesem Thema deutlich.

Das Programm der Session Reproducibilty

Das Programm der Session Reproducibilty

Während Karthik Ram und Joshua R. Polanin mit ihren Talks den Fokus auf die wissenschaftlichen Aspekte von Reproducibility legten, haben sich Michael Lawrence und David Smith mit dem Problem der Versionierung von R Paketen beschäftigt.

Weiterlesen

eoda auf der useR! Conference 2015 in Aalborg: Die Eindrücke vom „Tutorial Tuesday“

Mit dem „Tutorial-Tuesday“ hat gestern in Aalborg die useR! Conference 2015 begonnen. Unser Team vor Ort hat viele der Tutorials besucht und die wichtigsten Informationen für die R-User zusammengefasst:

Rocker: Using R on Docker (Dirk Eddelbuettel)

Seit einiger Zeit schon gehört Docker zu den am heißesten diskutierten Ansätzen in der IT-Welt. Docker ist eine Abstraktionsschicht, vergleichbar mit einer Virtualisierungsumgebung. Innerhalb von Docker finden sich Container, die einer virtuellen Maschine (VM) entsprechen. Im Unterschied zu VMs sind Docker Container jedoch leichtgewichtig: Sie benötigen kein eigenes Betriebssystem, sie verbrauchen deutlicher weniger Disk space, sie lassen sich schnell und einfach erstellen, verteilen und initialisieren. Docker läuft auf allen gängigen Betriebssystemen und wird von nahezu allen wichtigen Cloudanbietern (Microsoft Azure, Amazon, Digital Ocean etc.) unterstützt.

Dirk Eddelbuettel, Mitentwickler des populären C++ Interfaces Rcpp, stellte in seinem Tutorium Rocker vor. Rocker steht für R on Docker. Es handelt sich dabei nicht um ein R Paket, sondern um ein Set von R-Instanzen, die sich in Docker Containern befinden. Eddelbuettels Kern-Anwendungsszenario ist das Testing. Mit Hilfe von Docker lässt sich Code automatisiert auf unterschiedlichen R Versionen testen. Rocker lässt sich leicht erweitern –  sei es für spezielle Einsatzszenarien oder generelle Anwendungsfälle, die dann über den Docker Hub veröffentlicht werden können.

Ein anderes interessantes Anwendungsfeld von Docker ist die Reproduzierbarkeit von Analysen. Mit Docker lassen sich Skripte für bestimmte R-Versionen inklusive aller verwendeter Pakete in den verwendeten Versionen in einen Container packen und archivieren. Docker bietet damit eine weitere Alternative zu den gängigen Ansätzen Packrat von RStudio und checkpoint von Revolution Analytics.

Statistical analysis of Network data (Gábor Csárdi)

Netzwerke sind heutzutage allgegenwärtig. Beispiele hierfür sind die Kontakte in sozialen Netzwerken wie Facebook oder Twitter, Verlinkungen von einer Internetseite zur anderen oder der Verkehrsflussfluss zwischen Flughäfen. Gábor Csárdi, Maintainer des weitverbreiteten igraph-Pakets, hat mit seinem Tutorial einen spannenden Überblick darüber gegeben, wie sich die vielzähligen Verbindungen und Strukturen innerhalb eines Netzwerks mit den Methoden der Netzwerkanalyse untersuchen lassen.
Zu Beginn des Tutorials wurden verschiedene Datenstrukturen zur Repräsentation von Netzwerkdaten vorgestellt. Im zweiten Teil lag der Fokus auf den Methoden, mit denen sich die Struktur des Netzwerks beschreiben lassen. Welche Knoten sind besonders gut vernetzt? Über wie viele Ecken sind die Knoten in einem Netzwerk miteinander verknüpft? Die Netzwerkanalyse mit R gibt Antworten auf diese Fragestellungen.
Anschließend wurden verschiedene Ansätze präsentiert, mit denen sich Gruppen innerhalb eines Clusters identifizieren lassen. Zum Abschluss gab Csárdi einen kurzen Überblick über die Visualisierung von Netzwerken.

Alles in allem gab das Tutorial einen guten Einblick in die zentralen Begriffe der Netzwerkanalyse und hat Lust auf mehr gemacht.

Weiterlesen

Die useR! Conference 2015 in Aalborg: Ausblick auf die Themen und Highlights

Die useR! Konferenz ist die zentrale Plattform für die internationale Nutzer- und Entwicklergemeinde der statistischen Programmiersprache R. Am 30. Juni beginnt die useR! Conference 2015 in Aalborg. Wir von eoda sind vor Ort und berichten täglich aus der viertgrößten Stadt Dänemarks von den interessantesten Entwicklungen rund um R und den wichtigsten Neuerungen für die User.

Das Logo der useR! 2015 in Aalborg

Das offizielle Logo der useR! 2015 in Aalborg

Was sind die Themen und Highlights auf der useR! 2015?

Das Programm der useR! 2015 ist so vielfältig und breit aufgestellt wie die Programmiersprache selbst. Wir haben es uns näher angeschaut und vorab unsere Highlights identifiziert:

Weiterlesen

translate2R: Easy switch from SPSS to R by using common concepts like temporary and column wise missing values

If you translate scripts from one language to another you usually encounter conceptual differences in both languages. Typically, you start with a new language by adapting the concepts you are used to and then you expand your skills by using the concepts of the other language step by step.

Part of the idea behind our translateSPSS2R approach is to help you as a SPSS user to work with usual programming concepts in SPSS to gain quick wins. Then you are free to explore the new world of R and maybe you will find it useful to combine some ideas from both languages as we realized it in our translateSPSS2R package.

The challenge: SPSS meta information differs from R – How can I temporarily split my data set?

Compared to R, a data set in SPSS holds additional structured meta information. This information can be used directly in data management and analysis functions.

Roughly, two classes of meta information can be distinguished in SPSS.

  1. Applied filters, temporary-select if structures, split file and the do if – end if bracket are referring to the whole data set.
  2. Variable name, variable labels, value labels and missing values belong to single columns. Especially the characteristics of meta information related to the data set highly differ from conventional R logic and behavior.

For a deeper understanding of the structural differences between SPSS and R we will elucidate two of them.

Structural difference No. 1: Subsetting

For subsetting data, SPSS enables us to switch a filter on and off without changing the amount of cases and columns of the data set. After applying a filter, some of the cases become passive and all subsequent functions are just using the filtered cases. Turning the filter off means to transform the passive cases back to active ones. Later on, applied functions will consider all cases of the entire data set as active ones. In R this approach is not designated. Creating a subset means removing the cases physically from the R object or using the indexing operators each time the object is named in a function.

Structural difference No. 2: User defined missing values

As mentioned above, the column related information of user defined missing values is not implemented in R. In SPSS any value can be specified as missing, so that subsequent analysis functions treat it as non-existent, whereas the true value is still visible in the SPSS data viewer. Despite its risk and the lack of transparency, this is a common operating principle in SPSS. By undoing the missing specification the value is reconverted to a valid value and taken into account by subsequent functions. In R we would define an existing value as a missing one by transforming it explicitly to NA. Turning NA´s back into valid values means firstly to back up the value itself and its respective position in the original data set and secondly to replace the NA´s from the current working data set by the externally stored data.

The solution: The xpssFrame as a temp object that holds all meta data

Building R-functions that are able to simulate SPSS means to attach the same information to the data as SPSS does. Therefore, we invented the xpssFrame object that holds the data.

Fig.1: Data set and column related meta-information in SPSS

Fig.1: Data set and column related meta-information in SPSS

In our translateSPSS2R package the xpssFrame object behaves like a SPSS data set and holds all the additional information. This object unites the origin data and the reverse engineered meta information belonging to the data set, as is the case in SPSS.

Weiterlesen