Ich lese den Artikel "Sternkoordinaten: Eine mehrdimensionale Visualisierungstechnik mit einheitlicher Behandlung von Dimensionen" und versuche, meine Daten zu zeichnen.
Angenommen, ich habe , einen fünfdimensionalen Datenpunkt, und Punkte werden nach der in der Arbeit erläuterten Formel berechnet.
Die Grundidee von Sternkoordinaten besteht darin, die Koordinatenachsen auf einem Kreis in einer zweidimensionalen Ebene mit gleichen (anfänglich) Winkeln zwischen den Achsen mit einem Ursprung in der Mitte des Kreises anzuordnen (Abbildung 1). Anfangs haben alle Achsen die gleiche Länge. Datenpunkte werden auf die Länge der Achse skaliert, wobei die minimale Zuordnung zum Ursprung und die maximale Zuordnung zum anderen Ende der Achse erfolgt. Einheitsvektoren werden entsprechend berechnet. ...
Dies ist einfach eine Erweiterung typischer 2D- und 3D-Streudiagramme auf höhere Dimensionen mit Normalisierung.
Es fällt mir schwer, die Idee zu verstehen. Wie zeichne ich es? Das Hauptproblem ist, dass ich die Formel in der Zeitung nicht verstehen konnte.
Antworten:
Die "Sternkoordinaten" sollen interaktiv geändert werden, beginnend mit einer Standardeinstellung. Diese Antwort zeigt, wie Sie die Standardeinstellung erstellen. Die interaktiven Änderungen sind ein Programmierdetail.
Die Daten sind eine Sammlung von Vektoren betrachtet in R d . Diese werden zunächst innerhalb jeder Koordinate separat normalisiert, wobei die Daten { x j i , j = 1 , 2 , … } linear in das Intervall [ 0 , 1 ] transformiert werden.xj=(xj1,xj2,…,xjd) Rd {xji,j=1,2,…} [0,1] . Dies geschieht natürlich, indem zuerst das Minimum von jedem Element subtrahiert und durch den Bereich dividiert wird. Nennen Sie die normalisierten Daten .zj
Um dies zu veranschaulichen, wird hier eine
R
Implementierung auf einen Datensatz von Leistungsmerkmalen von Kraftfahrzeugen angewendet. Lassen Sie uns zuerst die Daten erhalten:Der erste Schritt besteht darin, die Daten zu normalisieren:
prj
Das war's - wir sind alle bereit zu planen. Es wird initialisiert, um Platz für die Datenpunkte, die Koordinatenachsen und ihre Beschriftungen bereitzustellen:
Hier ist das Diagramm selbst mit einer Linie für jedes Element: Achsen, Beschriftungen und Punkte:
Um dieses Diagramm zu verstehen, kann es hilfreich sein, es mit einer herkömmlichen Methode, der Streudiagramm-Matrix, zu vergleichen:
Eine korrelationsbasierte Hauptkomponentenanalyse (PCA) liefert fast das gleiche Ergebnis.
Die Ausgabe für den ersten Befehl ist
Der größte Teil der Varianz entfällt auf die erste Komponente (1,9 gegenüber 0,83 und weniger). Die Ladungen auf diese Komponente sind nahezu gleich groß, wie die Ausgabe des zweiten Befehls zeigt:
Dies deutet - in diesem Fall - darauf hin, dass das Standard-Sternkoordinatendiagramm entlang der ersten Hauptkomponente projiziert und daher im Wesentlichen eine zweidimensionale Kombination des zweiten bis fünften PCs zeigt. Sein Wert im Vergleich zu den PCA-Ergebnissen (oder einer verwandten Faktorenanalyse) ist daher fraglich; Der Hauptvorteil kann in der vorgeschlagenen Interaktivität liegen.
R
quelle
Neben der netten Antwort von @whuber möchte ich einige weitere Optionen für die Anzeige mehrdimensionaler (multivariater) Daten in "Sternkoordinaten" hinzufügen , um eine umfassendere Abdeckung zu gewährleisten. Meine Antwort konzentriert sich auf die Durchführung einer solchen Visualisierung multivariater Daten in
R
.Ich werde beginnen , indem das zu sagen Stern Plots (sowohl Spinne und Radar - Varianten) werden unterstützt von
R
‚sgraphics
Basispaket über Funktionstars()
: http://stat.ethz.ch/R-manual/R-devel/library/graphics/html/ stars.html . Als nächstes in derR
"Nahrungskette"ggplot2
folgt natürlich das Paket, für das AFAIK derzeit keine spezifischen Funktionen für diese Art von Parzellen hat (bitte korrigieren Sie mich, wenn ich nicht auf dem neuesten Stand bin). Eine grundlegende Implementierung von Hadley Wickham unter Verwendungcoord_polar()
finden Sie hier . Darüber hinaus bietet ein auf ggplot2 basierendesggsubplot
Paket die entsprechende Funktiongeom_star()
: http://www.inside-r.org/packages/cran/ggsubplot/docs/geom_star .Andere Pakete , die die Sternplot- Funktionalität enthalten, umfassen:
psych
- Funktionenspider()
undradar()
- http://personality-project.org/r/html/spider.html ,plotrix
- Funktionradial.plot()
- http://onertipaday.blogspot.com/2009/01/radar -chart.html ) und möglicherweise einige andere.Darüber hinaus sollte beachtet werden, dass es möglich ist, Sterndiagramme in webfähiger Software zu erstellen , mit der eine einfache Schnittstelle besteht
R
. Hier ist beispielsweise eine Variation eines Sternplots inplotly
, in dem es als Polargebietsdiagramm bezeichnet wird: https://plot.ly/r/polar-chart/#Polar-Area-Chart . InR
Bezug auf und webfähige Datenvisualisierung ist es unmöglich, die großartige D3.js-Bibliothek zu erwähnen, auf die auch zugegriffen werden kannR
. So erstellen Sie mit D3.js eine großartig aussehende Sternenhandlung: http://www.visualcinnamon.com/2013/09/making-d3-radar-chart-look-bit-better.html .quelle