Montag, 27. Juni 2011

Item- und Skalenanalyse mit R

Für die Entwicklung und Überprüfung von psychologischen Tests ist die Item- und Skalenanalyse von besonderer Bedeutung. In diesem Beispiel soll der Subtest (Skala) eines IQ-Tests überprüft werden. Es handelt sich dabei um den Subtest "Logisches Denken". Der Subtest umfasst 15 Logik-Aufgaben.

Im ersten Schritt sollen wieder die Missing ersetzt werden. Dabei sollte man sich vorher genau überlgen, wie man mit Missings umgeht. In diesem Fall werden Missings einfach durch den Wert 0 ersetzt, d.h. eine fehlende Antwort führt dazu, dass eine Aufgabe als ungelöst gewertet wird (siehe auch Artikel Umgang mit Missings).

for (x in c(10:25)) IQDaten[is.na(IQDaten[x]),x]<-0

Dieser Befehl geht die Variablen (Items) in den Spalten 10 bis 25 durch und ersetzt alle Missings durch den Wert 0.

Als nächstes soll eine neue Variable "Logik" gebildet werden. Dazu werden alle gelösten Aufgaben pro Teilnehmer zusammengezählt.

attach(IQDaten)
IQDaten$Logik <- logik1 + logik2 + logik3 + logik4 + logik5 + logik6 + logik7 + logik8 + logik9 + logik10 + logik11 + logik12 + logik13 + logik14 + logik15
detach(IQDaten)

Um nicht vor jedem Items den namen des Datensatz schreiben zu müssen, wird R mit dem Befehl attach mitgeteilt, dass mit diesem Datensatz gerechnet werden soll, sofern kein anderer angegeben wird.

Wir wollen nun Mittelwert, Standardabweichung, Median und Schiefe berechnen. Weil das am einfachsten mit dem Befehl describe() des Zusatzpakets "Psych" funktioniert, laden wir zunächst dieses Paket.

library(psych)
describe(IQDaten$Logik)


Zusätzlich wollen wir die Verteilung mit einem Histogramm überprüfen. Der Befehlt dafür lautet einfach hist():

hist(IQDaten$Logik)

Um die Balken farblich zu gestalten, wird der Befehl um die entsprechende Option erweitert:

hist(IQDaten$Logik, col="red")

Zum Schluss sollen Trennschärfe und Reliabilität (Cronbachs-Alpha) berechnet werden. Auch dafür verwenden wir das Paket "psych". Der Befehl lautet alpha():

alpha(IQDaten[c("logik1", "logik2","logik3","logik4", "logik5","logik6","logik7","logik8", "logik9","logik10","logik11","logik12", "logik13","logik14","logik15")])

Alternativ lassen sich die Variablen auch über die Spaltennummer auswählen, z.B.

alpha(IQDaten[c(12,14,16,18,19,20,21,24,27)])

Die Ausgabe am Bildschirm entspricht weitgehend dem gewohnten SPSS-Output. Weitere Infos finden sich in der Dokumentation des Pakets "Psych" sowie in dem Online-Buch "An introduction to psychometric theory with applications in R" von William Revelle.

Nicht immer ist Alpha das beste Maß für die Genauigkeit einer psychometrichen Skala, z.B. dann nicht, wenn das Merkmal in heterogenen Bereichen gemessen wird oder wenn die Items kein Intervallskalenniveau erreichen. In diesem Fall liefern alterntive Reliabilitätsschätzungen realistischere Werte. Mit dem Befehl guttman können diese berechnet und ausgegeben werden, insbesondere ist dies die Guttman-Split-Half-Reliabilität (nach dem Statistiker und Psychologen Louis Guttman): die Reliabilität wird aus der Korrelation zweier Testhälften berechnet, wobei nicht angenommen werden muss, dass diese parallel sind (also die gleichen Eigenschaften aufweisen). Der Befehl guttman liefert die maximale Split-Half-Reliabilität, für die besten Testhälften (L4))

guttman(IQDaten[c(12,14,16,18,19,20,21,24,27)])


Keine Kommentare:

Kommentar veröffentlichen