Seit meinem Psychologiestudium war ich ein intensiver SPSS-Nutzer. Was mich über alle Versionen in dieser Zeit begleitet hat, waren die einfachen, knappen Befehle, um mir deskriptive Statistiken anzeigen zu lassen. Diese kurzen Kommandos gehen schnell in Fleisch und Blut über und ermöglichen ein schnelles Sichten der Daten. Aktuell liegt mein Tool-Schwerpunkt bei R. Es ist eine hervorragende Alternative, aber trotz umfangreicher Erfahrung mit diesem Open-Source-Tool fehlt mir immer noch ein bisschen die gefühlte Usability von SPSS. Mir fehlen schlicht und einfach meine kurzen Kommandos. Nun ist es relativ leicht, SPSS-ähnliche Befehle selbst als Funktionen in R zu ergänzen.
Table of Contents
Kurzbefehle in SPSS
SPSS-FREQUENCIES
Als Beispiel nehme ich den Frequencies-Befehl. In SPSS reicht es, für Befehle nur die ersten 3 bis 4 Buchstaben zu verwenden, solange es eindeutig ist. "FREQ kategorie." z. B. stellt mir für die Spalte "kategorie" für jeden distinkten Wert die absolute Häufigkeit, die prozentuale Häufigkeit, die prozentuale Häufigkeit an gültigen Fällen ohne Fehlende sowie die kumulierte prozentuale Häufigkeit dar. Für eine explorative Datenanalyse ist das sehr hilfreich, da ich sofort sehe:
Was sind die häufigsten oder seltensten Werte?
Welchen Anteil haben diese Werte an allen Daten bzw. an der gültigen Basis?
Welchen Anteil nehmen die Top-3-Kategorien zusammen ein?
Wenn man den Befehl noch anpasst, z. B. "FREQ kategorie /FORMAT AFREQ.", dann werden die Häufigkeiten aufsteigend statt absteigend dargestellt.
FREQUENCIES-Nachbau in R
So, genau das hätte ich jetzt auch gerne in R. Der Befehl lässt sich wie folgt über eine benutzerdefinierte Funktion umsetzen:
Über den table-Befehl wird zunächst die einfache Häufigkeit abgefragt und in ein Dataframe gepresst.
Abhängig vom Parameter "order" werden die Inhalte sortiert.
Es folgen Berechnungen über den gesamten Häufigkeitsvektor, um die Prozente zu ermitteln.
Zuletzt wird der Vektor "perc_cum_v" mit den kumulierten Prozenten aufgebaut. Hierfür wird in einer Schleife das Ergebnis abgelaufen.
Das Endergebnis gefällt mir schon sehr gut! Zu einem späteren Zeitpunkt werde ich wohl noch weitere Funktionalitäten integrieren, z.B. einen "limit"-Befehl, um nur die Top-X-Kategorien anzuzeigen usw. Aber in der Zwischenzeit hat die neue Funktion "freq" mir die Arbeit schon sehr erleichtert :-).
Das Beispiel unten zeigt ein Ergebnis der Funktion. Ich habe bewusst die Funktion so von SPSS abweichen lassen, dass fehlende Werte in den kummulierten Prozenten (perc_cum) berücksichtigt werden, da ich es so öfter benötige.
Beispielausgabe in R
Wer ist b.telligent?
Du willst den IoT Core durch eine Multi-Cloud-Lösung ersetzen und die Vorteile weiterer IoT-Services von Azure oder Amazon Web Services nutzen? Dann melde Dich bei uns und wir unterstützen Dich bei der Umsetzung mit unserer Expertise und dem b.telligent Partnernetzwerk.
Neuronale Netze werden erfolgreich auf so ziemlich jeden Datentyp angewandt: Bilder, Audio, Texte, Videos, Graphen usw. Nur wenn es um Tabellendaten geht, sind baumbasierte Ensembles wie Random Forests und Gradient Boosted Trees immer noch sehr viel verbreiteter. Wenn man diese erfolgreichen Klassiker durch neuronale Netze ersetzen will, dürfte Ensemble Learning immer noch eine Schlüsselidee sein. Dieser Blogbeitrag erklärt, warum das so ist. Dazu gibt’s ein Notebook mit den praktischen Details.
Azure AI Search, Microsofts serverloses Angebot für das R in RAG, hat seine eigene Skalierungslogik. Sie verbirgt viel von der Komplexität serverbasierter Lösungen, erfordert aber spezifische Kenntnisse.
Polars, der in Rust geschriebene Pandas-Herausforderer, sorgt für erhebliche Beschleunigung nicht nur in der Ausführung des Codes, sondern auch in der Entwicklung. Pandas krankt seit jeher an einer API, die an vielen Stellen „historisch gewachsen“ ist. Ganz anders Polars: Eine API, die von Anfang an auf logische Konsistenz ausgelegt ist und deren Stringenz mit jedem Release sorgfältig gepflegt wird (im Zweifelsfall auch unter Verlusten an Rückwärtskompatibilität), sorgt für eine erheblich schnellere Entwicklung. An vielen Stellen, wo man bisher Pandas eingesetzt hat, kann man es problem los durch Polars ersetzen: In Ibis-Analytics-Projekten, und natürlich einfach für die tägliche Datenaufbereitung aller Art. Gut macht sich die überlegene Performance auch in interaktiven Umfeldern wie PowerBI .