Du hast jetzt im Output von R Tabellen erstellt. Oftmals werden Korrelationen aber in Grafiken dargestellt, da diese für das Auge leichter zu verarbeiten sind als eine Tabelle.
An dieser Stelle wirst du zwei Möglichkeiten kennenlernen, solche zu erstellen: Einmal mit der library psych
und einmal mit der library corrplot
.
psych
Die library psych
bietet mit der Funktion pairs.panels()
eine gute Funktion, um Korrelationen sowie den Zusammenhang zwischen Variablen grafisch darzustellen. In der Funktion gibst du wie zuvor den Datensatz an bzw. welche Variablen du nutzen möchtest. Danach gibst du die Methode der Korrelation an (pearson
oder spearman
). Da hier pseudometrische Daten vorliegen, ist es sinnvoll das Argument jiggle = TRUE
einzusetzen, da so die Datenpunkte nicht überlappen. Mit dem zusätzlichen Argument stars = TRUE
werden die konventionellen Signifikanz-Sternchen angezeigt.
Dazu gehört die Funktion pairs.panels()
aus der library psych
.
pairs.panels(
pss[c(
"stfdem",
"trstprl",
"trstlgl",
"stfeco"
)
],
method = "pearson",
jiggle = TRUE, # für pseudometrische Daten
stars = TRUE # Konvention für Signifikanzen
)
Das ganze sieht dann grafisch so aus: Im oberen Drittel befinden sich die Korrelationskoeffzienten, in der diagonalen die univariate Verteilung der jeweiligen Variable und im unteren Drittel die bivariate Verteilung des Variablenpaars.
Leider ist die Funktion nicht so leicht anzupassen und zu erweitern wie ggplots
, die wir später im Lernblock 5 kennenlernen werden. Dort lernst du auch eine ggplot
-Variante kennen, um Pairs-Panels zu erstellen.
corrplot
Eine weitere Darstellungsmöglichkeit mehrerer Korrelationen ist eine sogenannte Heat Map. Um diesen Plot zu erstellen, benötigst du die library corrplot
und daraus Funktion corrplot()
.
Eine Heat Map zeigt die Stärke des Zusammenhangs über die Farbwahl an
Als erstes lade das package corrplot
:
install.packages("corrplot")
library("corrplot")
Dann erstellst du eine Korrelationsmatrix, dazu nutzt du die Funktion corr.test()
:
cor2 <- corr.test(
pss[c(
"trstprl",
"trstplt",
"trstprt",
"trstlgl"
)
],
method = "pearson",
use = "complete.obs"
)
Als Ergebnis erhalten wir wieder ein list-Objekt, das drei Matrizen beinhaltet: Den Korrelationswert, die Stichprobengröße und den p-Wert. Wir benötigen für die Heatmap aber nur den Korrelationswert und den p-Wert.
cor2
## Call:corr.test(x = pss[c("trstprl", "trstplt", "trstprt", "trstlgl")],
## use = "complete.obs", method = "pearson")
## Correlation matrix
## trstprl trstplt trstprt trstlgl
## trstprl 1.00 0.23 0.38 0.23
## trstplt 0.23 1.00 0.40 0.05
## trstprt 0.38 0.40 1.00 0.25
## trstlgl 0.23 0.05 0.25 1.00
## Sample Size
## trstprl trstplt trstprt trstlgl
## trstprl 4965 4954 4948 4953
## trstplt 4954 4989 4972 4977
## trstprt 4948 4972 4983 4971
## trstlgl 4953 4977 4971 4988
## Probability values (Entries above the diagonal are adjusted for multiple tests.)
## trstprl trstplt trstprt trstlgl
## trstprl 0 0 0 0
## trstplt 0 0 0 0
## trstprt 0 0 0 0
## trstlgl 0 0 0 0
##
## To see confidence intervals of the correlations, print with the short=FALSE option
ls(cor2)
## [1] "adjust" "Call" "ci" "ci.adj" "ci2" "n" "p" "p.adj"
## [9] "r" "se" "sef" "stars" "sym" "t"
Nun kannst du den Plot erstellen:
corrplot(
cor2$r,
p.mat = cor2$p, # Matrix mit p-Werten
insig = "blank", # nicht signifikante = leer
type = "upper", # auch lower möglich
method = "circle" # verschiedene Optionen möglich
)
Die library corrplot
ermöglicht dir eine Reihe an weiteren Einstellungen, diese kannst du dir hier ansehen. Wir werden uns im fünften Lernblock intensiver mit Grafiken beschäftigen.