Ich habe 92 Datensätze des gleichen Typs.
Ich möchte eine Korrelationsmatrix für zwei beliebige Kombinationen ermöglichen.
dh ich möchte eine Matrix von 92 x 92.
so dass das Element (ci, cj) die Korrelation zwischen ci und cj sein sollte.
Wie mache ich das?
r
matrix
visualization
correlation
Swapnil 'Tux' Takle
quelle
quelle
cor
Funktion oder diercorr
Funktion imHmisc
Paket anAntworten:
Ein Beispiel,
quelle
Sie könnten das Corrplot-Paket verwenden.
Weitere Informationen finden Sie hier: http://cran.r-project.org/web/packages/corrplot/vignettes/corrplot-intro.html
quelle
Die cor- Funktion verwendet die Spalten der Matrix bei der Berechnung der Korrelation. Die Anzahl der Zeilen muss also zwischen Ihrer Matrix x und der Matrix y gleich sein . Ex.:
Bearbeiten:
Hier ist ein Beispiel für benutzerdefinierte Zeilen- und Spaltenbeschriftungen in einer Korrelationsmatrix, die mit einer einzelnen Matrix berechnet wurde:
quelle
image(x=seq(dim(x)[2]), y=seq(dim(y)[2]), z=COR, col=rev(heat.colors(20)), xlab="x column", ylab="y column")
image
Funktion übernimmt nicht automatisch die Zeilen- und Spaltennamen, daher muss dies hinzugefügt werden.Schauen Sie sich qtlcharts an . Sie können interaktive Korrelationsmatrizen erstellen :
Es ist beeindruckender, wenn Sie mehr Variablen korrelieren, wie in der Vignette des Pakets:
quelle
Es gibt andere Möglichkeiten, dies hier zu erreichen: ( Zeichnen Sie die Korrelationsmatrix in ein Diagramm ), aber ich mag Ihre Version mit den Korrelationen in den Feldern. Gibt es eine Möglichkeit, die Variablennamen der x- und der y-Spalte anstelle nur dieser Indexnummern hinzuzufügen? Für mich wäre das eine perfekte Lösung. Vielen Dank!
edit: Ich habe versucht, den Beitrag von [Marc in the box] zu kommentieren, aber ich weiß eindeutig nicht, was ich tue. Es ist mir jedoch gelungen, diese Frage für mich selbst zu beantworten.
Wenn d die Matrix (oder der ursprüngliche Datenrahmen) ist und die Spaltennamen Ihren Wünschen entsprechen, funktioniert Folgendes:
las = 0 würde die Namen wieder in ihre normale Position bringen, meine waren lang, also habe ich las = 2 verwendet, um sie senkrecht zur Achse zu machen.
edit2: Um zu unterdrücken, dass die image () - Funktion Zahlen auf dem Raster druckt (andernfalls überlappen sie Ihre variablen Beschriftungen), fügen Sie xaxt = 'n' hinzu, z.
quelle