Untersuchen einer Streudiagramm-Matrix für viele Variablen

10

Ich analysiere einen Datensatz mit vielen Parametern (z. B. 50-200) und bin daran interessiert, die Beziehungen zwischen Variablen zu untersuchen (z. B. in Form von Streudiagrammen mit zwei Variablen oder 2D-Histogrammen). Für diese Anzahl von Parametern scheint es jedoch nicht möglich zu sein, ein 200x200-Array von Plots zu zeichnen (es sei denn, ich drucke es aus und hänge es an eine Wand).

Wenn Sie jedoch nur eine Korrelationsmatrix erstellen, erhalten Sie nicht alle Informationen über Beziehungen mit zwei Variablen.

Gibt es eine Möglichkeit (Bibliothek oder Workflow), 2-Variablen-Beziehungen für viele Variablen zu untersuchen?

Ich bin besonders daran interessiert, Ergebnisse anderen zu zeigen (möglicherweise nach einer gewissen Datenvorverarbeitung). ZB etwas Interaktives in JavaScript, wo ich eine Streudiagramm-Matrix für ausgewählte Felder aus einer Korrelationsmatrix sehen kann.

Mit Streudiagramm-Matrix meine ich so etwas:

Geben Sie hier die Bildbeschreibung ein

(entnommen aus dem Pandasplotting-Blog ; verfügbar in Python / Pandas , R , D3.js usw.).

Piotr Migdal
quelle
4
Sie haben nicht klargestellt, wonach Sie suchen. Möchten Sie die Cloud sehen, jeden Datenpunkt? Möchten Sie alle bivariaten Facetten gleichzeitig sehen ?
ttnphns
@ttnphns Ich möchte alle Datenpunkte ODER sie in aggregierter Form sehen (z. B. 2D-Histogramme). Ich muss nicht sehen, dass alle Dinge einmal sind (da dies für <15 Variablen sinnvoll ist, aber nicht für 200). Und ja, mir ist bewusst, dass die Frage etwas offen ist. Eine geschlossene Version lautet: "Gibt es eine JS-Bibliothek, in der Streudiagramme und Histogramme angezeigt werden, wenn die Maus auf einer Korrelationsmatrix über dem jeweiligen Pixel schwebt? Oder sollte ich eine schreiben? :)" Ich habe eine allgemeinere Version geschrieben, wie es vielleicht eine gibt Einige bessere Workflows zur Lösung des Problems.
Piotr Migdal
Es ist möglich, die Matrix der Streudiagramme in Form eines Olap-Würfels so zu organisieren, dass Sie jeweils nur ein oder mehrere Diagramme sehen und zwischen diesen wechseln können. Leider kenne ich kein bestimmtes Programm oder keinen bestimmten Code für grafische Olap-Cubes.
ttnphns

Antworten:

7

Die Untersuchung der Beziehungen zwischen Variablen ist ziemlich vage, aber zwei der allgemeineren Ziele bei der Untersuchung solcher Streudiagramme sind vermutlich;

  • Identifizieren Sie zugrunde liegende latente Gruppen (von Variablen oder Fällen).
  • Identifizieren Sie Ausreißer (im univariaten, bivariaten oder multivariaten Bereich).

Beide reduzieren die Daten in verwaltbarere Zusammenfassungen, haben jedoch unterschiedliche Ziele. Identifizieren Sie latente Gruppen, die normalerweise die Dimensionen in den Daten reduzieren (z. B. über PCA), und untersuchen Sie dann, ob sich Variablen oder Fälle in diesem reduzierten Raum zusammenballen. Siehe zum Beispiel Friendly (2002) oder Cook et al. (1995).

Das Identifizieren von Ausreißern kann entweder das Anpassen eines Modells und das Zeichnen der Abweichungen vom Modell bedeuten (z. B. das Zeichnen von Residuen eines Regressionsmodells) oder das Reduzieren der Daten in ihre Hauptkomponenten und nur das Hervorheben von Punkten, die entweder vom Modell oder vom Hauptdatenbestand abweichen. Beispielsweise zeigen Boxplots in einer oder zwei Dimensionen normalerweise nur einzelne Punkte, die außerhalb der Scharniere liegen (Wickham & Stryjewski, 2013). Das Zeichnen von Residuen hat die nette Eigenschaft, dass es Diagramme abflachen sollte (Tukey, 1977), daher ist jeder Hinweis auf Beziehungen in der verbleibenden Punktwolke "interessant". Diese Frage zum Lebenslauf enthält einige hervorragende Vorschläge zur Identifizierung multivariater Ausreißer.

Ein üblicher Weg, um solch große SPLOMS zu untersuchen, besteht darin, nicht alle einzelnen Punkte zu zeichnen , sondern eine Art vereinfachte Zusammenfassung und dann möglicherweise Punkte, die stark von dieser Zusammenfassung abweichen, z. B. Vertrauensellipsen, skagnostische Zusammenfassungen (Wilkinson & Wills, 2008), bivariate Box-Plots, Konturdiagramme. Im Folgenden finden Sie ein Beispiel für das Zeichnen von Ellipsen, die die Kovarianz definieren, und das Überlagern eines Lössglätters, um die lineare Assoziation zu beschreiben.

Corrgram Ellipsen
(Quelle: statmethods.net )

In jedem Fall würde ein wirklich erfolgreicher, interaktiver Plot mit so vielen Variablen wahrscheinlich eine intelligente Sortierung (Wilkinson, 2005) und eine einfache Möglichkeit zum Herausfiltern von Variablen (zusätzlich zu den Funktionen zum Bürsten / Verknüpfen) erfordern. Außerdem müsste jeder realistische Datensatz die Fähigkeit haben, die Achse zu transformieren (z. B. die Daten auf logarithmischer Skala darstellen, die Daten durch Wurzeln transformieren usw.). Viel Glück und bleib nicht bei nur einer Verschwörung!


Zitate

Andy W.
quelle
1
Vielen Dank! Mein Ziel ist es, Daten zu untersuchen, bevor ich PCA ausführe, da Variablen nicht linear verknüpft werden können und eine Neuskalierung (oder eine andere Verarbeitung) erfordern.
Piotr Migdal
Das Beispiel für eine Corrgramellipse + Lössglättung sollte dann immer noch relevant sein (oder die Kovarellipse durch ein anderes Maßpolygon wie das bivariate Boxplot ändern) und möglicherweise dazu beitragen, nichtlineare Assoziationen zu identifizieren. Eine gute Folgefrage könnte sein, ob es möglich ist, nichtlineare Assoziationen nach Datenreduktion über PCA (oder so ähnlich) zu identifizieren.
Andy W
1

Sie können die glänzende Oberfläche aus dem PairsD3 R-Paket verwenden, die eine Möglichkeit zur Interaktion mit Streudiagramm-Matrizen bietet.

Ein Beispiel mit dem Iris-Datensatz:

install.packages("pairsD3")
require("pairsD3")
shinypairs(iris)

Quelle: https://github.com/garthtarr/pairsD3

Garth
quelle