Das R-Package psych wurde von William Revelle und anderen entwickelt, um psychologische sowie generell sozialwissenschaftliche Datenauswertungen zu erleichtern. Es bietet Dir umfangreiche Tools für:
- Deskriptive Statistiken (z.B. describe, pairs.panels)
- Reliabilitäts- und Itemanalysen (z.B. Cronbachs Alpha mit alpha)
- Faktorenanalyse (z.B. via fa)
- Hauptkomponentenanalyse (z.B. via principal)
- Datentransformation und Scoring (z.B. für psychologische Skalen)
Ob Du in Psychologie, Pädagogik, Sozialforschung oder einem anderen Feld arbeitest – sobald es um Skalen, Items, Faktorenstrukturen oder Reliabilitäten geht, kann Dir das psych-Package einiges an Arbeit abnehmen.
Installation und erste Schritte
Installation
install.packages("psych", dependencies = TRUE)
library(psych)
- Das Argument dependencies=TRUE stellt sicher, dass eventuell benötigte Zusatzpakete gleich mitinstalliert werden.
Erste Orientierung
- Website: https://personality-project.org/r/psych/
- Dokumentation: ?psych im R-Console oder help(package=“psych“)
- Vignetten/Tutorials: Manche Funktionen enthalten ausführliche Beispiele, z.B. ?alpha.
(Tipp: Schau Dir unbedingt die PDF-Dokumentation auf der Projektseite an, wenn Du tiefer einsteigen willst.)
Zentrale Funktionen
Nachfolgend lernst Du einige der bekanntesten Funktionen in psych kennen. Es gibt natürlich noch mehr, aber diese sind ein guter Startpunkt.
describe()
Wenn Du schnell Deskriptivstatistiken (Mittelwert, Standardabweichung, Median, Min, Max usw.) für Deine Variablen brauchst, ist describe() sehr praktisch:
library(psych)
# Beispiel-Datensatz
set.seed(123)
df <- data.frame(
score1 = rnorm(30, mean=50, sd=10),
score2 = rnorm(30, mean=60, sd=15)
)
describe(df)
Die Ausgabe liefert u.a. Anzahl (n), Mean, SD, Median, MAD (Median Absolute Deviation), Min, Max und Skew (Schiefe). Perfekt für den ersten Überblick Deiner Variablen.
pairs.panels()
Ein kleines Highlight: Kombinierte Darstellungen von Korrelationen, Scatterplots, Dichtekurven und p-Werten in einer übersichtlichen Matrix.
pairs.panels(df)
- Du bekommst pro Spaltenpaar einen Scatterplot mit Regressionslinie, Korrelationskoeffizient (Pearson r) und Signifikanzangabe.
- Zusätzlich wird die Verteilung jeder Variable auf der Diagonale visualisiert.
Das Ganze ist ideal, um schnell Zusammenhänge zwischen mehreren Variablen zu checken.
alpha() – Reliabilitätsanalyse
Gerade in der Psychologie (oder anderen Skalen-basierten Disziplinen) möchtest Du oft Cronbachs Alpha bestimmen, um die interne Konsistenz einer Skala zu prüfen. Hier kommt alpha() ins Spiel.
# Simulierter Beispiel-Datensatz für eine Skala mit 5 Items
scale_data <- data.frame(
item1 = rnorm(50, 3.5, 1),
item2 = rnorm(50, 3.3, 1),
item3 = rnorm(50, 3.7, 1),
item4 = rnorm(50, 3.4, 1),
item5 = rnorm(50, 3.6, 1)
)
alpha_result <- alpha(scale_data)
alpha_result
Wichtige Werte:
- total$raw_alpha: Cronbachs Alpha in „Rohform“
- total$std.alpha: Standardisiertes Alpha (falls Items sehr unterschiedliche Varianzen haben)
- alpha.drop: Was passiert mit Alpha, wenn man ein Item rauswirft?
So siehst Du, ob einzelne Items die Zuverlässigkeit der Skala senken.
fa() – Faktorenanalyse
Um latente Dimensionen zu entdecken, nutzt man in der Psychologie oft eine Faktorenanalyse (FA). fa() in psych bietet Dir verschiedene Rotationstechniken und Extraktionsmethoden.
# Beispiel: Wir haben 6 Items, die 2 Faktoren bilden sollen
items <- data.frame(
F1_item1 = rnorm(50, 5, 2),
F1_item2 = rnorm(50, 6, 2),
F2_item1 = rnorm(50, 10, 3),
F2_item2 = rnorm(50, 11, 3),
cross_item1 = rnorm(50, 8, 2),
cross_item2 = rnorm(50, 9, 2)
)
fa_result <- fa(items, nfactors=2, rotate="oblimin")
fa_result
Parameter:
- nfactors=2: Anzahl zu extrahierender Faktoren
- rotate=“oblimin“: Oblique Rotation (Faktoren dürfen korreliert sein)
Ergebnis: Du bekommst Ladegewichte (welches Item lädt stark auf welchem Faktor?), Communalities, Eigenwerte usw. Ein Muss für dimensionale Analysen.
principal() – Hauptkomponentenanalyse (PCA)
Falls Du lieber eine Hauptkomponentenanalyse (PCA) statt einer FA möchtest (z.B. zur Datenreduktion), kannst Du principal() verwenden:
pca_result <- principal(items, nfactors=2, rotate="varimax")
pca_result
- nfactors=2: Zwei Hauptkomponenten extrahieren
- rotate=“varimax“: Orthogonale Rotation
Du bekommst Ladegewichte, Anteile erklärter Varianz, etc.
Kurzes Praxisbeispiel
Angenommen, Du möchtest in einer Studie zur Persönlichkeitsforschung (Big Five) die interne Konsistenz einer 8-Item-Skala checken und anschließend Faktoren analysieren.
#Daten einlesen:
mydata <- read.csv(„bigfive_sample.csv“)
#Deskriptive Übersicht:
describe(mydata[, 1:8]) # Angenommen, Items 1-8 betreffen eine Skala
#Cronbachs Alpha:
alpha(mydata[, 1:8])
#Faktorenanalyse:
fa_result <- fa(mydata[, 1:8], nfactors=2, rotate=“oblimin“)
print(fa_result)
Interpretation:
- Schaue Dir die Faktorladungen an: Laden die Items wie erwartet auf Faktor 1 bzw. Faktor 2?
- Sind bestimmte Items Fehlanpassungen?
Fazit
Das psych-Package bietet Dir ein Rundum-sorglos-Paket für viele psychologische und sozialwissenschaftliche Anwendungen. Ob Reliabilitätsanalyse, Faktorenanalyse oder einfach nur schnelles Descriptive Reporting – mit alpha(), fa(), describe() und Co. kommst Du im Handumdrehen zu soliden Ergebnissen.
Gerade wenn Du in Bereichen arbeitest, die mit Skalen, Items und Faktoren umgehen, sparst Du Dir mit psych eine Menge Zeit, weil vieles bereits vorkonfiguriert ist, was Du sonst aufwändig selbst bauen müsstest.
Weiterführende Infos:
- Offizielle Seite: https://personality-project.org/r/psych/
- PDF-Handbuch & Beispiele auf derselben Website.
- Funktionshilfe: ?alpha, ?fa, ?pairs.panels, ?describe.
Viel Erfolg beim Entdecken der psych-Funktionen in R!