Nachdem wir im letzten Skript die Grundlagen von R
und RStudio
kennengelernt haben, wollen wir uns nun mit der Nutzung von Paketen und der Bestimmung von Deskriptivstatistiken beschäftigen. Hierfür wollen wir mit einem leicht angepassten Datensatz aus einer Studie von Pennington et al. aus dem Jahre 2021 (Link zum Artikel) arbeiten.
Im Verlauf dieses Seminars soll neben der Einführung in die Theorie und die Hintergründe multivariater Verfahren auch eine Einführung in deren Umsetzung gegeben werden, sodass Sie in der Lage sind, diese Verfahren in Ihrem zukünftigen akademischen und beruflichen Werdegang zu nutzen. Diese Umsetzung möchten wir Ihnen mit lavaan
zeigen - dem meistverbreiteten Paket für multivariate Verfahren wie z.B. konfirmatorische Faktorenanalyse (CFA), Pfadanalyse oder Strukturgleichungsmodellierung (SEM) in R
. Das Paket wird derzeit pro Woche ca. 12500 mal herunter geladen; es wird in allen Bereichen der psychologischen Forschung genutzt und wurde in über 23 000 wissenschaftlichen Veröffentlichungen zitiert.
In der Einführungssitzung hatten wir etwas über das Einlesen von Datensätzen, einfache Deskriptivstatistiken und den $t$-Test gelernt und in diesem Rahmen einige Grundlagen der Statistik wiederholt. Nun wollen wir mit etwas komplexeren, aber bereits bekannten, Methoden weitermachen und eine multiple Regression in R
durchführen. Hierbei werden wir auch die zu diesem Verfahren notwendigen Voraussetzungen prüfen sowie das Vorliegen von Ausreißern untersuchen.
Die ANalysis of COVAriance hatten wir bereits im 2. Semester der Bachelorstudiengangs behandelt und dabei schon vorausahnen lassen, dass wir uns das Ganze im Rahmen des KliPPs-Masters noch einmal detaillierter angucken werden. Dieser Spannungsbogen soll nun hier abgeschlossen werden.
load(url('https://pandar.netlify.app/post/kultur.rda'))
head(kultur)[, 1:8] # alle Zeilen und Spalten 1-8 für die ersten 6 Personen
## nation female auf_e kla_e lezu pa na bal
## 1 Turkey male 3.0 3.0 4.0 4.333333 4.250 0.08333333
## 2 Turkey female 2.5 2.5 5.6 5.333333 7.375 -2.04166667
## 3 Turkey female 3.0 3.0 4.0 5.666667 2.000 3.66666667
## 4 Turkey female 3.5 3.0 2.4 3.833333 5.000 -1.16666667
## 5 Turkey female 3.5 2.5 2.0 5.666667 6.125 -0.45833333
## 6 Turkey male 3.0 3.0 4.4 6.666667 4.500 2.16666667
levels(kultur$nation) # Übersicht über alle vorkommenden Nationen
## [1] "Turkey" "Korea" "Slovenia" "Nigeria"
## [5] "Japan" "Chile" "China" "Thailand"
## [9] "Australia" "Hong Kong" "Iran" "Greece"
## [13] "Philippines" "Nepal" "Cyprus" "Indonesia"
## [17] "Mexico" "Belgium" "Portugal" "Uganda"
## [21] "Singapore" "Netherlands" "Malaysia" "Georgia"
## [25] "Croatia" "Ghana" "Bulgaria" "Bangladesh"
## [29] "Russia" "Slovakia" "Zimbabwe" "Germany"
## [33] "Kuwait" "Columbia" "Brazil" "Cameroon"
## [37] "Canada" "India" "S. Africa" "Austria"
dim(kultur) # Anzahl Zeilen und Spalten des ganzen Datensatzes
## [1] 7194 16
mod <- lm(lezu ~ 1 + pa, kultur) # Interzept wird hier explizit angefordert
summary(mod)
##
## Call:
## lm(formula = lezu ~ 1 + pa, data = kultur)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.4262 -0.7588 0.1076 0.7743 3.0413
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.225025 0.049592 44.87 <2e-16 ***
## pa 0.400132 0.008679 46.10 <2e-16 ***
## ---
## Signif. codes:
## 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.086 on 7139 degrees of freedom
## (53 Beobachtungen als fehlend gelöscht)
## Multiple R-squared: 0.2294, Adjusted R-squared: 0.2293
## F-statistic: 2126 on 1 and 7139 DF, p-value: < 2.2e-16
library(ggplot2)
ggplot(kultur, aes(x = pa, y = lezu)) +
geom_point() +
geom_abline(intercept = coef(mod)[1], slope = coef(mod)[2], color = 'blue') +
theme_minimal()
## Warning: Removed 53 rows containing missing values
## (`geom_point()`).