# Alle nötigen Pakete laden
library(CTT)
library(plyr)
library(ggplot2)
Spearman-Brown Korrektur bei parallelen Tests
Eine Erklärung der Spearman-Brown Korrektur
Spearman-Brown Korrektur bei parallelen Tests
Die Spearman-Brown Formel erlaubt die Berechung der Änderung in der Reliabilität einer Messung, bei Verlängerung oder Verkürzung eines Tests. Im Folgenden gehen wir davon aus, dass der Summenscore
Somit ergibt sich für nach Spearman-Brown auf Basis der Reliabilität der Einzeltests
Nehmen wir an wir bilden den Summenscore spearman.brown
aus dem Paket CTT
genutzt.
<- spearman.brown(0.9, 2, "n") # aus Paket CTT
rel.new rel.new
$r.new
[1] 0.9473684
Bei einer Testverlängerung um den Faktor
Fragen wir nun anders herum. Bei einer minimal akzeptablen Reliabilität von
<- spearman.brown(0.947, 0.9, "r") # "r", da Reliabilität als input
m.new m.new
$n.new
[1] 0.5036959
Wir erhalten genau das umgekehrte Ergebnis. Der Test kann in der Länge halbiert werden.
Im Folgenden konstruieren wir eine Tabelle, so wie sie in vielen Lehrbüchern vorkommt, aus der die eben berechneten Veränderung der Realibilität bei Testverlängerung oder -verkürzung optisch abgelesen werden können.
<- seq(1, 4, len=100)
m <- seq(.5, .9, .1)
rel <- expand.grid(m=m, rel=rel)
d $id <- 1:nrow(d)
d<- ddply(d, .(id), transform, rel.new = spearman.brown(rel, m))
d <- ggplot(d, aes(x=m, y=r.new, group=rel)) + geom_line() + ylim(.5, 1) +
g xlab("Veränderung der Testlänge um den Faktor m") +
ylab("Reliabilität nach Veränderung der Testlänge") +
ggtitle("Spearman-Brown Tabelle")
g
Herleitung der Spearman-Brown Formel (bei parallelen Tests)
Die Variable
Zur Herleitung der Spearman-Brown Formel schauen wir uns zunächst den Zähler des Ausdrucks an. hier taucht
Somit ist
Wir erhalten für die
Da
Die Varianz von
Betrachten wir nun die Varianz der Summenvariable
Die Varianzen der Variablen parallerer Tests
Wir erhalten somit für die Reliabilität
Erweitern mit
Da
Anhang: Rechnen mit Varianzen
Durch Aufaddieren aller Einträge erhalten wir
Die Formeln in R überprüfen:
set.seed(0)
<- replicate(3, rnorm(10)) # Drei Variablen mit zufälligen Werten erzeugen
d <- as.data.frame(d) # in Dataframe umwandeln
d <- cov(d) # Varianz-Kovarianzmatrix
vc vc
V1 V2 V3
V1 1.4528358 -0.20093966 -0.10432388
V2 -0.2009397 0.46086672 -0.05828058
V3 -0.1043239 -0.05828058 0.48606879
sum(vc) # Alle Einträge der Matrix addieren
[1] 1.672683
<- transform(d, S = V1+V2+V3) # Summenvariable S bilden
d var(d$S) # Varianz ist identisch mit obiger Berechnung
[1] 1.672683