Testkonstruktion auf Basis der Probabilistischen Testtheorie (Sitzung 1)

Marc Jekel

14/11/2014

Planung

Sitzung 1 (8 Zeitstunden, Freitag 14.11.2014 von 9:00 Uhr bis 17:00) wird vollständig mit Theorie gefüllt. Übungen in R sollen Inhalte vertiefen und das Verständnis erleichtern. Nach dieser Sitzung sollten Sie das Rasch Modell kennen und Modell- und Personenparameter schätzen können. (Theorieblock 1 bis 3, Praxisblock A)

Sitzung 2 (4 Zeitstunden, Donnerstag 27.11.2014 von 9:00 bis 13:00 Uhr) beginnt mit den Methoden zur Testung der Voraussetzungen des Rasch Modells. Es folgt eine ausführliche praktische Übung: Wir führen eine komplette Rasch-Analyse an einem Beispieldatensatz durch. Es folgen dann Überlegungen zur Projektarbeit, in der ein raschkonformer Leistungs/Intelligenztest erstellt werden soll. Am Ende der Sitzung sollten Sie das Wissen der vorherigen Sitzung um die Modelltestung erweitert und mit der Trockenübung noch einmal vertieft und ganzheitlich angewendet haben. Sie sollten jetzt prinzipiell fähig sein, einen raschkonformen Test zu konstruieren. Sie sind nun bereit, Items für unseren Leistungstest zu generieren. (Theorieblock 4; Praxisblock B bis C)

Sitzung 3 (4 Zeitstunden, Freitag 12.12.2014 von 9:00 bis 13:00 Uhr ) beginnt mit Erweiterungen zum Rasch Modell. Wir besprechen die erstellten Items für unseren Leistungstest. Nach der Sitzung sollten Sie über das Rasch Modell hinaus prominente Modelle der probabilistischen Testtheorie kennengelernt haben. Sie sollten weiterhin jetzt bereit sein, unseren Leistungstest zu erstellen und zu erheben. Die Sitzung ist eher locker geplant und kann als Puffer dienen. (Theorieblock 5, Praxisblock C)

Sitzung 4 (8 Zeitstunden, Freitag 16.01.2015 von 9:00 bis 17:00 Uhr) verwenden wir zur Analyse der Ergebnisse unseres Leistungstests. Es folgt eine Einführung in das adaptive Testen mit Überlegungen zu einer adaptiven Nutzung unseres Leistungstests. (Optional) Abgerundet wird die Sitzung mit einer (kurzen) Einführung in die Erstellung von dynamischen Reports zur Dokumentation von (wissenschaftlichen) Projekten mit Hilfe von R(-Studio). (Theorieblock 6, Praxis-Block C bis D)

Theorie Block 1

Überblick Rasch Modell

Theorie Block 2

Annahmen und Eigenschaften des Rasch Modells

Theorie Block 3

Parameterschätzung des Rasch Modells

Praxis-Block A

Praktische Übungen in R

Material

Benutzer: student; Passwort: rasch

Literatur

Webseiten

Rasch Funktion

Definition Psychologischer Test

Ein psychologischer Test besteht aus einer Menge von Reizen mit den zugehörigen zugelassenen Reaktionen, d.h. aus einer Menge von manifesten Variablen, und einer Vorschrift (Skala), die den Reaktionsmustern der manifesten Variablen Ausprägungen einer oder mehrer latenter Variablen zuordnet.

(Krauth, 1995, S. 18, zitiert nach Eid, 2014, S. 29)

Definition Psychologischer Test

Ein psychologischer Test besteht aus einer Menge von Reizen mit den zugehörigen zugelassenen Reaktionen, d.h. aus einer Menge von manifesten Variablen, und einer Vorschrift (Skala), die den Reaktionsmustern der manifesten Variablen Ausprägungen einer oder mehrer latenter Variablen zuordnet.

(Krauth, 1995, S. 18, zitiert nach Eid, 2014, S. 29)

Skala

Latente Variable

Datenmatrix (Manifeste Variable)

Grünes Item Schwarzes Item Rotes Item
Proband 1 0.00 0.0 0.00
Proband 2 1.00 0.0 0.00
Proband 3 1.00 1.0 0.00
Proband 4 1.00 1.0 1.00
Itemschwierigkeit [KTT] 0.75 0.5 0.25

Latente Variable

Manifeste Variable

Skalierung

Skalierung Naturwissenschaften

700

(Koller et al., 2012, S. 2)

Invariantes Messen|Engelhard (Kapitel 1, 2013)

Ziel ist es, Skalen zu entwickeln, die die Verortung von Personen und Items auf einer zugrundeliegenden (latenten) Variablen ermöglichen.

  1. Item-invariantes Messen von Personenparametern: Eine fähigere Person sollte immer eine höhere Wahrscheinlichkeit haben, ein Item zu lösen, als eine weniger fähige Person.
  2. Personen-invariantes Messen von Itemparametern: Jede Person sollte bei einem einfacheren Item eine höhere Wahrscheinlichkeit haben das Item zu lösen als bei einem schwierigeren Item.
  3. Items und Personen sollten auf einer gemeinsamen zugrundeliegenden latenten Variablen lokalisiert werden.

Guttman Skala|Beispiel für ein deterministisches Modell

Formel und Funktionsform

  1. \[p\]
  1. \[Odds = \frac{p}{1-p}\]

Formel und Funktionsform

Formel und Funktionsform

Formel und Funktionsform

Formel und Funktionsform

  1. \[log(Odds) = log\left(\frac{p}{1-p}\right) = \theta - \beta\]

Formel und Funktionsform|Beispiel

Bei \(\theta = 5 \text{ und } \beta = 3\) ergibt sich \(log(Odds) = \theta - \beta = 5 - 3 = 2\) und damit \(Odds = e^2 = 7.38\), was identisch zu \(p = \frac{Odds}{1 + Odds} = .88\) ist.

Formel und Funktionsform|Beispiel

Bei \(\theta = 5 \text{ und } \beta = 3\) ergibt sich \(log(Odds) = \theta - \beta = 5 - 3 = 2\) und damit \(Odds = e^2 = 7.38\), was identisch zu \(p = \frac{Odds}{1 + Odds} = .88\) ist.

Formel und Funktionsform|Beispiel

Bei \(\theta = 5 \text{ und } \beta = 3\) ergibt sich \(log(Odds) = \theta - \beta = 5 - 3 = 2\) und damit \(Odds = e^2 = 7.38\), was identisch zu \(p = \frac{Odds}{1 + Odds} = .88\) ist.

Formel und Funktionsform

  1. \[log(Odds) = log\left(\frac{p}{1-p}\right) = \theta - \beta\]
  1. \[Odds = \frac{p}{1-p} = e^{\theta - \beta}\]
  1. \[\frac{1-p}{p} = \frac{1}{e^{\theta - \beta}}\]
  1. \[\frac{1}{p} - 1 = \frac{1}{e^{\theta - \beta}}\]
  1. \[\frac{1}{p} = 1 + \frac{1}{e^{\theta - \beta}} = \frac{e^{\theta - \beta}}{e^{\theta - \beta}} + \frac{1}{e^{\theta - \beta}} = \frac{e^{\theta - \beta}}{e^{\theta - \beta}} + \frac{1}{e^{\theta - \beta}} =\frac{1+e^{\theta - \beta}}{e^{\theta - \beta}}\]
  1. \[p =\frac{e^{\theta - \beta}}{1+e^{\theta - \beta}}\]

Formel und Funktionsform

\[p(x_{ij} = 1|\theta_i,\beta_j) = \frac{e^{\theta_i-\beta_j}}{1 + e^{\theta_i-\beta_j}}\]

Formel und Funktionsform

\[p(x_{ij} = 0|\theta_i,\beta_j) = 1 - p(x_{ij} = 1|\theta_i,\beta_j) = 1 - \frac{e^{\theta_i-\beta_j}}{1 + e^{\theta_i-\beta_j}} = \frac{1 + e^{\theta_i-\beta_j}}{1 + e^{\theta_i-\beta_j}} - \frac{e^{\theta_i-\beta_j}}{1 + e^{\theta_i-\beta_j}} = \frac{1}{1 + e^{\theta_i-\beta_j}}\]

Logit-Skala

Warum Logit-Skala?|(Engelhard, 2013)

  1. Logits sind aprroximativ normalverteilt.

(Density) Logit-Verteilung & Standardnormalverteilung

\[p(x_{ij} = 1|\theta_i,\beta_j) = \frac{e^{1.7 \times (\theta_i-\beta_j)}}{1 + e^{1.7 \times (\theta_i-\beta_j)}}\]

val = rlogis(10000) # logistic distribution
plot(density(val/1.7),lwd=2, main = "")

val2= rnorm(10000) # standard normal distribution
points(density(val2),type = "l",col="red",lwd=2)

Warum Logit-Skala?|(Engelhard, 2013)

  1. Logits sind aprroximativ normalverteilt.
  1. Logits gehören zur Familie der exponentiellen Verteilungen, die viele gute statistische Eigenschaften besitzen (Barndord-Nielson, 1978).
  1. Die Log-Transformation ist eine von vielen Arten, um Proportionen in eine lineare Skala zu übersetzen.

Itemschwierigkeit \(\beta\)

\[p(x_{ij} = 1|\theta_i,\beta_j) = \frac{e^{\theta_i-\beta_j}}{1 + e^{\theta_i-\beta_j}}\]

Lösungswahrscheinlichkeiten

\[p(x_{ij} = 1|\theta_i,\beta_j) = \frac{e^{\theta_i-\beta_j}}{1 + e^{\theta_i-\beta_j}}\]

Übung

  1. Programmiere das Rasch Modell als Funktion in R nach.
  2. Wie hoch ist die Lösungswahrscheinlichkeit eines Items mit einer Itemschwierigkeit \(\beta = 2\) für Probanden mit Fähigkeiten \(\theta = (-4, 0, 2, 2.1, 4, 4.1)\)?

Funktionen in R

funktionsname = function(argument1, argument2, ...){funktionsinhalt}
## Definition Funktion

funcMean = function(input){ 
  
  output = mean(input)
  return(output)
                }

## Vektor x

x = c(1,2,3,4,5)

## Ausführung Funktion für Vektor x

funcMean(input = x)
## [1] 3

Wendepunkte und Itemschwierigkeit

\[p(x_{ij} = 1|\theta_i,\beta_j) = \frac{e^{\theta_i-\beta_j}}{1 + e^{\theta_i-\beta_j}}\]

Wendepunkte und Itemschwierigkeit

\[p(x_{ij} = 1|\theta_i,\beta_j) = \frac{e^{\theta_i-\beta_j}}{1 + e^{\theta_i-\beta_j}}\]

Iteminformation

\[Info_j(\theta) = \left(\frac{e^{\theta-\beta_j}}{1 + e^{\theta-\beta_j}}\right)' = \frac{e^{\theta - \beta_j}}{(1+e^{\theta - \beta_j})^2}= \frac{1}{(1+e^{\theta - \beta_j})} \times \frac{e^{\theta - \beta_j}}{(1+e^{\theta - \beta_j})}= (1-p(x = 1|\theta,\beta_j)) \times p(x = 1|\theta,\beta_j) \]

Testinformation

\[Info_{tot}(\theta)=\sum_{j=1}^J Info_j(\theta)\]

Standardabweichung des Schätzfehlers für Personenparameter

\[SE(\theta_i) = \frac{1}{\sqrt{\sum_{j=1}^J Info_j(\theta_i)}}\]

Die Standardabweichung des Schätzfehlers eines Personenparameters \(\theta_i\) lässt sich also durch Erhöhung der Itemzahl und durch Auswahl informativer Items verringern.

Standardabweichung des Schätzfehlers für Personenparameter

Konfidenzinterval für \(\theta\)

\[CI_{95}(\theta) = \theta \pm 1.96 \times SE(\theta)\]

Übung

  1. Welche Werte umfasst das 95% Konfidenzinterval für einen Proband \(i\) mit einem \(\theta_i = 2\) und einem Test mit 3 Items \(\beta_j = (-2,1,4)\).

  2. Ein neues Item wird hinzugefügt. Welche Eigenschaften sollte es haben, damit das Konfidenzinterval von Proband \(i\) optimal (d.h., maximal) minimiert wird? Wie stark wird es minimiert?

Eigenschaften Rasch Modell

Annahmen und Eigenschaften des Rasch Modells

  1. Lokale stochastische Unabhängigkeit
  2. Suffiziente Statistik
  3. Spezifische Objektivität
  4. Eindimensionalität
  5. Monoton steigende IRT Kurven

Stochastische Unabhängigkeit

Es gilt \(p(A \cap B) = p(A) \times p(B)\), wenn \(p(A|B) = p(A)\) und \(p(B|A) = p(B)\). (Unabhängigkeit der Eintretenswahrscheinlichkeit von Ereignissen)

Beispiel: Wahrscheinlichkeit zweimal eine 6 zu würfeln ist \(p(A \cap B) = p(A) \times p(B) = 1/6 \times 1/6 = 1/36\).

Die Wahrscheinlichkeit für einen Probanden \(i\) eine Aufgabe \(j=z\) zu lösen ist nicht abhängig davon, ob eine andere Aufgabe \(j \neq z\) gelöst wurde.

Frage: Stochastische Unabhängigkeit im Rasch Modell? Fähigere Personen sollten Items doch eher lösen als weniger fähige Personen?

(Lokale) Stochastische Unabhängigkeit im Raschmodell

Es handelt sich um Unabhängigkeit von konditionalen (!) Wahrscheinlichkeit: \(p(x_{j=z}|\theta_i) = p(x_{j=z}|x_{j \neq z},\theta_i)\).

Implikation: Eine hohe Korrelationen zwischen Items (bei gleichen \(\theta\)) kann also auf eine Verletzung der lokalen stochastischen Unabhängigkeit hindeuten.

Lokale Stochastische Unabhängigkeit im Raschmodell

Gesamt

B - B +
A - 110 195
A + 15 100

\(p(B = +| A = -) = \frac{195}{195 + 110} = .639\)

\(p(B = +| A = +) = \frac{100}{15 + 100} = .86\)

Lokale Stochastische Unabhängigkeit im Raschmodell

Gesamt

B - B +
A - 110 195
A + 15 100

Niedrige Fähigkeit \(\theta_1\)

B - B +
A - 100 100
A + 5 5

\(p(B = +| A = -) = \frac{100}{200} = .5 = p(B = +| A = +)\)

Hohe Fähigkeit \(\theta_2\)

B - B +
A - 10 95
A + 10 95

\(p(B = +| A = -) = \frac{95}{105} = .904 = p(B = +| A = +)\)

(Lokale) Stochastische Unabhängigkeit im Raschmodell|Gesamtwahrscheinlichkeit pro Proband

Warum ist das wichtig?

Berechnung der Gesamtwahrscheinlichkeit für einen Probanden \(i\) und alle Aufgaben \(j = 1 \ldots m\).

\[p(x_{i1},\ldots,x_{im}|\theta_i,\beta_1,\ldots,\beta_m) = \prod_{j=1}^m p(x_{ij}|\theta_i, \beta_j)\]

Implikation: Aufgaben dürfen nicht aufeinander aufbauen.

(Lokale) Stochastische Unabhängigkeit im Raschmodell|Gesamtwahrscheinlichkeit für alle Probanden

Berechnung der Gesamtwahrscheinlichkeit für alle Probanden \(i = 1 \ldots n\) und alle Aufgaben \(j = 1 \ldots m\).

\[p(x|\theta,\beta) = \prod_{i=1}^n \prod_{j=1}^m p(x_{ij}|\theta_i, \beta_j)\]

Implikation: Es muss gewährleistet sein, dass Probanden nicht voneinander abschreiben können.

Logarithmus

\[log(p(A) \times p(B)) = log(p(A)) + log(p(B))\]

Aus

\[p(U|\theta,\beta) = \prod_{i=1}^n \prod_{j=1}^m p(x_{ij}|\theta_i, \beta_j)\]

wird

\[log(p(U|\theta,\beta)) = \sum_{i=1}^n \sum_{j=1}^m log(p(x_{ij}|\theta_i, \beta_j))\]

Exkursion: Wahrscheinlichkeit, Likelihood und Maximum Likelihood

Wahrscheinlichkeit

Was ist die Wahrscheinlichkeit eine Münze 10mal zu werfen und die folgende Sequenz zu beobachten: Kopf, K, Zahl, K, K, K, K, Z, Z, Z.

\[p(K,K,Z,K,K,K,K,Z,Z,Z|.5) = .5^6 \times (1-.5)^4 = .5^{10}\]

Wahrscheinlichkeit

Was ist die Wahrscheinlichkeit eine Münze 10mal zu werfen und 6mal Kopf und 4mal Zahl zu erhalten.

Binomial Verteilung

\[p(freq(K)|\theta,N) = \binom{N}{freq(K)} \times \theta^{freq(K)}\times (1-\theta^{freq(Z)})\]

\[p(6|.5) = \binom{10}{6} \times .5^{6}\times (1-.5^{4}) = .20\]

Likelihood

Wie hoch ist die Wahrscheinlichkeit bei 6mal Kopf und 4mal Zahl für ein bestimmtes \(\theta\).

\[L(\theta|6K,4Z) = p(6K,4Z|\theta) = \binom{10}{6} \times \theta^6 \times (1-\theta^4)\]

Kopf  = 6

Lik = dbinom(Kopf,10,seq(0,1,.01))

plot(seq(0,1,.01),
Lik, type="l",xlab="theta",ylab="Likelihood",
main = paste("Likelihood Funktion für ",Kopf," von 10"),
lwd = 3)

Maximum-Likelihood

Welches \(\theta\) liefert die maximale Likelihood bei 6mal Kopf und 4mal Zahl.

\[L(\theta|6K,4Z) = p(6K,4Z|\theta) = \binom{10}{6} \times \theta^6 \times (1-\theta^4)\]

R-Demo: Likelihood und Maximum Likelihood generalisiert

Likelihood und Maximum Likelihood generalisiert über andere Pattern

Likelihood und Maximum Likelihood generalisiert über andere Verteilungen

Dichtefunktion Normalverteilung:

\[p(d|\mu,\sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} \times e^{-(d-\mu)^2/(2\sigma^2)}\]

Freie Parameter: \(\mu\), \(\sigma\)

R-Demo: Likelihood und Maximum Likelihood generalisiert

Likelihood Rasch Modell mit bekannten Personenparametern

Alle Probanden, Ein Item:

Likelihood

Likelihood

Likelihood

Likelihood

Likelihood

Likelihood

Übung

Plotte die (a) Likelihood Kurve und (b) die Log-Likelihood Kurve für ein Item, bei dem Probanden mit Fähigkeiten \(\theta_i = (-2, 2, 1, 7)\) das folgende Antwortmuster zeigen \(x = (0, 0, 1, 1)\).

Maximum (Log-)Likelihood

(Log-)Likelihood|Alle Probanden, Alle Items

Übung

Wie hoch ist die log-Likelihood für vier Probanden mit \(\theta_i = (-2, 2, 5, 7)\) und drei Items \(\beta_j = (-3,-1,3)\) und Antwortpattern \(x_1 = (0,1,1,1)\), \(x_2 = (0,0,1,1)\) und \(x_3 = (0,0,0,1)\)

Likelihood

Vier Probanden mit Fähigkeiten \(\theta_i = (-2,2,5,7)\) und Antwortpattern \(x_1 = (0,1,1,1)\), \(x_2 = (0,0,1,1)\) und \(x_3 = (0,0,0,1)\).

Likelihood

Likelihood

Likelihood: Unabhängigkeit der Items

R-Demo: Maximum Likelihood Fläche in IRT

Simplex (Nelder-Mead)

(Lewandowsky & Farrell, 2011, S. 83)

Quasi-Newton Methode

Method “BFGS” is a quasi-Newton method (also known as a variable metric algorithm), specifically that published simultaneously in 1970 by Broyden, Fletcher, Goldfarb and Shanno. This uses function values and gradients to build up a picture of the surface to be optimized.

(Source: help(optim) in R)

Quasi-Newton methods are methods used to either find zeroes or local maxima and minima of functions. They are an alternative to Newton’s method when the Jacobian (when searching for zeroes) or the Hessian (when searching for extrema) is unavailable or too expensive to compute at every iteration.

(Source: Wikipedia :-( )

Übung

Wie hoch ist die max(log-Likelihood) für vier Probanden mit \(\theta_i = (-2, 2, 5, 7)\) und den Antwortvektoren \(x_1 = (0, 0, 0)\), \(x_2 = (1,0,0)\), \(x_3 = (1, 1, 0)\) und \(x_4 = (1, 1, 1)\)? Welche drei Itemparameter ergeben sich?

Maximum Likelihood Schätzung in R

library(stats4)

mle(minusLogLikFunction)

Maximum Likelihood Schätzung in R Beispiel Lineare Regression

## Daten generieren: Ein Kriterium, zwei Prädiktoren

y = 1:100 + rnorm(100,0,20)
x1 = 1:100 + rnorm(100,0,20)
x2 = rnorm(100,0,20)

## Minus Loglik Function 

minusLogLikFunc = function(b0 = 1, b1 = 1, b2 = 1, sdEst=500){
  
  yHat = b0 + b1 * x1 + b2 * x2
  error = y - yHat
  output = -sum(log(dnorm(error, mean = 0, sd = sdEst)))
  
  return(output)
  }

minusLogLikFunc()
## [1] 713.6349
## Maximum Likelihood Schätzung

library(stats4)

mleEst = mle(minusLogLikFunc, control = list(maxit =  10^9, factr = 10^-15))

summary(mleEst)
## Maximum likelihood estimation
## 
## Call:
## mle(minuslogl = minusLogLikFunc, control = list(maxit = 10^9, 
##     factr = 10^-15))
## 
## Coefficients:
##          Estimate Std. Error
## b0    14.43996772 4.64441626
## b1     0.67148173 0.07309974
## b2     0.01952107 0.11534444
## sdEst 25.97556679 1.83707361
## 
## -2 log L: 935.1955
logLik(mleEst)
## 'log Lik.' -467.5977 (df=4)

Maximum Likelihood

Eigenschaften Rasch Modell

Suffiziente Statistik

Die Anzahl der gelösten Aufgaben ist eine erschöpfende (= suffiziente) Statistik (= Kenngröße) für die Fähigkeit \(\theta\) eines Probanden.

\(\rightarrow\) Es ist also nicht notwendig zu wissen, welche Aufgaben gelöst wurden. Es reicht aus zu wissen, wie viele Aufgaben gelöst wurden.

\(\rightarrow \rightarrow\) Für einen Probanden \(i = 1\), der nur die leichteste Aufgabe löst, und für einen Probanden \(i = 2\), der nur die schwierigste Aufgabe löst, gilt: \(\theta_1 = \theta_2\).

Suffiziente Statistik|2 Items

Suffiziente Statistik|2 Items

Suffiziente Statistik|2 Items

Suffiziente Statistik|2 Items

Suffiziente Statistik|2 Items

Suffiziente Statistik|2 Items gelöst + 1 Item ungelöst

Suffiziente Statistik|2 Items gelöst + 1 Item ungelöst

Suffiziente Statistik|2 Items gelöst + 1 Item ungelöst

Suffiziente Statistik|1 Item gelöst + 2 Items ungelöst

Itemschwierigkeit: \(\beta_1<\beta_2<\beta_3\); Antwortpattern: \((1,0,0)\), \((0,1,0)\) oder\((0,0,1)\)

Suffiziente Statistik|2 Items gelöst + 1 Item ungelöst

Itemschwierigkeit: \(\beta_1<\beta_2<\beta_3\); Antwortpattern: \((1,1,0)\), \((1,0,1)\) oder\((0,1,1)\)

Suffiziente Statistik

Itemschwierigkeit: \(\beta_1<\beta_2<\beta_3\)

Spezifische Objektivität

Aussagen über die Fähigkeiten von Probanden sind nicht abhängig von den Aufgaben.

Ein Proband \(i = 1\) mit der Fähigkeit \(\theta_1\) muss mit einer höheren Wahrscheinlichkeit eine Aufgabe \(j\) lösen als ein Proband \(i = 2\) mit der Fähigkeit \(\theta_2\), wenn gilt: \[\theta_1 > \theta_2.\]

Aussagen über die Schwierigkeiten von Aufgaben sind nicht abhängig von den Probanden.

Spezifische Objektivität

Itemschwierigkeit: \((-5,-1)\), Itemsteigung: \((1,1)\)

Spezifische Objektivität

Das Verhältnis der Odds zweier Probanden eine Aufgabe zu lösen ist nur von den Personenparametern abhängig (Strobl, 2012, S. 2012):

\[\frac{Odds_{\beta_1,\theta_1}}{Odds_{\beta_1,\theta_2}} = e^{\theta_1-\theta_2}\]

\[log\left(\frac{Odds_{\beta_1,\theta_1}}{Odds_{\beta_1,\theta_2}}\right) = log(Odds_{\beta_1,\theta_1}) - log(Odds_{\beta_1,\theta_2}) = \theta_1 - \beta_1 - (\theta_2 - \beta_1) = \theta_1 - \theta_2\]

Weiterhin gilt, dass das Verhältnis der Odds eines Probanden zwei Aufgaben zu lösen nur von den Aufgabenparametern abhängt:

\[\frac{Odds_{\beta_1,\theta_1}}{Odds_{\beta_2,\theta_1}} = e^{\beta_1-\beta_2}\]

Verletzung Spezifische Objektivität

Itemschwierigkeit: \((-5,-1)\), Itemsteigung: \((1,.3)\)

Verletzung Spezifische Objektivität

Itemschwierigkeit: \((-5,-1)\), Itemsteigung: \((1,.3)\)

Es gilt \(p(\text{grün}) > p(\text{schwarz})\) für alle \(\theta\) oberhalb des Schnittpunkts der beiden Kurven, sonst gilt \(p(\text{grün}) < p(\text{schwarz})\).

Verletzung Spezifische Objektivität

Itemschwierigkeit: \((-5,-1)\), Itemsteigung: \((1,.3)\), Antwortpattern: \((1,0)\)

Verletzung Spezifische Objektivität

Itemschwierigkeit: \((-5,-1)\), Itemsteigung: \((1,.3)\), Antwortpattern. schwarz: \((1,0)\), rot: \((0,1)\)

Verletzung Spezifische Objektivität

Itemschwierigkeit: \((-5,-1)\), Antwortpattern. schwarz: \((1,0)\), rot: \((0,1)\)

Subgruppeninvarianz: Differential Item Functioning

Testpersonen mit gleicher Fähigkeit in unterschiedlichen Subgruppen (z.B. Geschlecht) sollten den gleichen Fähigkeitsparameter erhalten.

Beispiele für mögliche Verletzung Subgruppeninvarianz

Fähigkeit: Geographiewissen; Item: Liegt Göttingen im Norden oder Süden von Deutschland?; Subgruppen: Deutsche versus Amerikaner

Fähigkeit: Mathematik-Kompetenz; Textaufgabe; Subgruppen: Muttersprachler versus Zweitsprachler

Eindimensionalität

Personenparameter und Aufgabenparameter liegen auf einer gemeinsamen latenten Dimension.

Implikation: Eine Mathematikaufgabe sollte auch nur mathematische Fähigkeiten messen und nicht noch zusätzlich z. B. Lese-/Sprachkompetenz (z. B. mathematische Textaufgabe).

Monoton steigende IRT Kurven

IRT Kurven müssen monoton ansteigen

\[p(x=1|\theta_1,\beta_1) > p(x=1|\theta_2,\beta_1)\]

wenn

\[\theta_1 > \theta_2\]

Beispiel: Nicht gegegeben, wenn z. B. für kleiner werdendes \(\theta\) die Lösungswahrscheinlichkeit höher wird (z.B. durch häufigeres Raten).

Parameterschätzung bei unbekannter Itemschwierigkeiten und Fähigkeiten

Parameterschätzung

Item mit \(\beta_1 = 2\)

\(p(x = 1|\beta_1 = 2, \theta_1 = 1) = .26\)

\(p(x = 1|\beta_1 = 2, \theta_2 = 2) = .5\)

\(p(x = 1|\beta_1 = 2, \theta_3 = 3) = .73\)

Erwartete relative Häufigkeit bei wiederholter Präsentation des Items (und perfektem Gedächntisverlust)?

Parameterschätzung

Rep 1 Rep 2 Rep 3 Summe rel. Summe
theta_1 0 1 1 2 0.6666667
theta_2 1 1 0 2 0.6666667
theta_3 1 1 0 2 0.6666667

Parameterschätzung

Rep 1 Rep 2 Rep 3 Rep 4 Rep 5 Summe rel. Summe
theta_1 0 0 1 0 0 1 0.2
theta_2 0 0 0 0 1 1 0.2
theta_3 1 1 1 1 1 5 1.0

Parameterschätzung

Rep 1 Rep 2 Rep 3 Rep 4 Rep 5 Rep 6 Rep 7 Rep 8 Rep 9 Summe rel. Summe
theta_1 1 0 0 0 0 1 0 0 0 2 0.2222222
theta_2 0 0 1 1 1 1 1 1 1 7 0.7777778
theta_3 0 1 1 0 1 0 1 1 1 6 0.6666667

Parameterschätzung

Summe rel. Summe
theta_1 2645 0.2645
theta_2 5001 0.5001
theta_3 7279 0.7279

Joint Maximum Likelihood

\[L = p(x|\theta,\beta) = \prod_{i=1}^n \prod_{j=1}^m p(x_{ij}|\theta_i, \beta_j)\]

Iteratives Vorgehen: (Random) Personenparameter werden gewählt. Dann werden die max-lik Itemparameter für diese Personenparameter berechnet. Dann werden diese geschätzten Itemparameter verwendet, um wiederum die Personenparameter zu schätzen usw.

Problem: Mit jedem neuen Probanden \(i\) müssen wir einen neuen freien Parameter \(\theta_i\) schätzen. Mit jedem neuen Item \(j\) müssen wir einen neuen freien Parameter \(\beta_j\) schätzen. Schätzer für die Parameter sind nicht konsistent.

Conditional Maximum Likelihood

  1. \[p(x=1|\theta_i,\beta_j) = \frac{e^{(\theta_i-\beta_j)}}{1+e^{(\theta_i-\beta_j)}}\]
  1. \[\xi_i = e^{(\theta_i)}\]
  1. \[\lambda_j = - \beta_j\]
  1. \[\epsilon_j = e^{(\lambda_j)}\]
  1. \[p(x = 1|\xi_i,\epsilon_j) = \frac{\xi_i \times \epsilon_j}{1 + \xi_i \times \epsilon_j}\]
  1. \[p(x = 0|\xi_i,\epsilon_j) = \frac{1}{1 + \xi_i \times \epsilon_j}\]

Conditional Maximum Likelihood

Angenommen wir haben 2 Items. Proband \(i\) löst das erste Item und löst nicht das zweite Item.

  1. \[p(\{1,0\}|\{1,0\} \lor \{0,1\},\xi_i,\epsilon_1,\epsilon_2) = \frac{p(\{1,0\}|\xi_i,\epsilon_1,\epsilon_2)}{p(\{1,0\}|\xi_i,\epsilon_1,\epsilon_2)+p(\{0,1\}|\xi_i,\epsilon_1,\epsilon_2)}\]
  1. \[= \frac{p(1|\xi_i,\epsilon_1) \times p(0|\xi_i,\epsilon_2)}{p(1|\xi_i,\epsilon_1) \times p(0|\xi_i,\epsilon_2) + p(0|\xi_i,\epsilon_1) \times p(1|\xi_i,\epsilon_2)}\]
  1. \[= \frac{\frac{\xi_i \times \epsilon_1}{1 + \xi_i \times \epsilon_j} \times \frac{1}{1 + \xi_i \times \epsilon_2}}{\frac{\xi_i \times \epsilon_1}{1 + \xi_i \times \epsilon_1} \times \frac{1}{1 + \xi_i \times \epsilon_2} + \frac{1}{1 + \xi_i \times \epsilon_1} \times \frac{\xi_i \times \epsilon_2}{1 + \xi_i \times \epsilon_2}}\]
  1. \[= \frac{\xi_i \times \epsilon_1}{\xi_i \times \epsilon_1 + \xi_i \times \epsilon_2}\]
  1. \[= \frac{\epsilon_1}{\epsilon_1 + \epsilon_2}\]
  1. \[= \frac{e^{-\beta_1}}{e^{-\beta_1} + e^{-\beta_2}}\]

Conditional Maximum Likelihood

Angenommen wir haben 3 Items. Proband \(i\) löst das erste und zweite Item und löst nicht das dritte Item.

\[p(\{1,1,0\}|\{1,1,0\} \lor \{1,0,1\} \lor \{0,1,1\},\xi_i,\epsilon_1,\epsilon_2,\epsilon_3)= \frac{\epsilon_1 \times \epsilon_2}{\epsilon_1 \times \epsilon_2 + \epsilon_1 \times \epsilon_3 + \epsilon_2 \times \epsilon_3}=\]

\[= \frac{e^{-\beta_1} \times e^{-\beta_2}}{e^{-\beta_1} \times e^{-\beta_2} + e^{-\beta_1} \times e^{-\beta_3}+ e^{-\beta_2} \times e^{-\beta_3}}\]

\[= \frac{e^{-(\beta_1 +\beta_2)}}{e^{-(\beta_1 + \beta_2)} + e^{-(\beta_1 + \beta_3)} + e^{-(\beta_2 + \beta_3)}}\]

Conditional Maximum Likelihood

Angenommen wir haben nicht nur einen sondern I Probanden.

\[L = \prod_{i=1}^I \frac{\prod_{j=1}^k \epsilon_j^{x_i}}{\gamma(r,\epsilon_1,\ldots,\epsilon_k)}\]

  1. Maximum Likelihood zur Schätzung Itemparameter

  2. Maximum Likelihood zur Schätzung Personenparameter mit eingesetzten geschätzten Itemparametern

Problem: Ist nur anwendbar, wenn die Randsummen suffiziente Schätzer der Personenparameter sind (also nur bei raschkonformen Items).

Marginal Maximum Likelihood

Likelihood für eine Antwort auf ein Item gegeben Itemparameter \(\beta\) und Personenparameter \(\theta\):

\[L = p(x|\theta,\beta)\]

Der Personenparameter \(\theta\) wird “rausintegriert”:

\[L(x|\beta) = \int p(x|\theta,\beta) \times f(\theta) \mathrm{d}\theta\]

Im zweiten Schritt erfolgt die Schätzung der Itemparameter über die Maximum Likelihood Schätzung.

Marginal Likelihood|Beispiel

Angenommen wir haben zwei Items, Proband 1 hat das ertse Item gelöst und das zweite Item nicht gelöst.

theta_i beta_1 beta_2 P_1(x=1) P_2(x=0) L(x|beta_1, beta_2, theta) = P_1 * P_2 p(theta) L(x|beta_1, beta_2, theta) * p(theta) * 4
-4 -1 1 0.0474259 0.9933071 0.0471085 0.0001338 0.0000252
0 -1 1 0.7310586 0.7310586 0.5344466 0.3989423 0.8528535
4 -1 1 0.9933071 0.0474259 0.0471085 0.0001338 0.0000252
## [1] "Sum over L(x|beta_1, beta_2, theta) * p(theta) * 4 = L(beta_1, beta_2) = 0.85"

Likelihood für Daten

Density für \(\theta\) (in R: dnorm(theta))

\(L(x|\beta_1,\beta_2,\theta) \times p(\theta)\)

Versuch Nachprogrammierung Marginal MLE

library("stats4")
library("eRm")
library("ltm")

realB = c(-3,-2.5,-1,1, 3) 

dats = sim.rasch(300, realB)

head(dats)
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    1    1    1    0
## [2,]    1    1    0    0    0
## [3,]    1    1    0    1    0
## [4,]    1    1    1    0    0
## [5,]    1    1    1    0    0
## [6,]    1    1    1    1    0
MargLik = function(betaV=c(1,1,1,1,1),thetaPart=1){
  
  resulAll = numeric()
  
  for(thetaLoop in 1 : length(thetaPart)){
    
    # matrix beta
    
    bVMatrix = t(matrix(betaV, nrow = ncol(dats),
                        ncol = nrow(dats)))
    
    # Rasch Modell; probabilities
    
    probs = exp(((thetaPart[thetaLoop]-bVMatrix)*dats))/
      (1+exp((thetaPart[thetaLoop]-bVMatrix))) 
    
    
    margLik = sum(log(apply(probs,1,prod) * 
                      dnorm(thetaPart[thetaLoop],0,1)))
    
    resulAll = c(resulAll,margLik)
  }
  resulAll
}

### marginal max lik function

MaxMargLik = function(b1=1,b2=1,b3=1,b4=1,b5=1){
  
  MargLikFunc = function(thetaPart){
    
    res = MargLik(betaV=c(b1,b2,b3,b4,b5),thetaPart)
    res
  }
  
  MargLikAktuell = integrate(MargLikFunc,-30,30,subdivisions =10000)
  MargLikAktuell = - unlist(unlist(MargLikAktuell)[1])
  return(MargLikAktuell)
}

myMarginalMaxLik = mle(MaxMargLik,method = "L-BFGS-B",
                       lower = c(rep(-30,5)),upper=c(rep(30,5)),
                       control = list(maxit = 10^9,
                                      factr = 10^-15))
myMarginalMaxLik
## 
## Call:
## mle(minuslogl = MaxMargLik, method = "L-BFGS-B", lower = c(rep(-30, 
##     5)), upper = c(rep(30, 5)), control = list(maxit = 10^9, 
##     factr = 10^-15))
## 
## Coefficients:
##        b1        b2        b3        b4        b5 
## -27.69510 -24.60453 -11.00000  10.40030  25.20838
coefmyMarginalMaxLik = coef(myMarginalMaxLik)
coefmyMarginalMaxLik = coefmyMarginalMaxLik-mean(coefmyMarginalMaxLik)
coefmyMarginalMaxLik = coefmyMarginalMaxLik/sd(coefmyMarginalMaxLik)

library(ltm)
MarginalMaxLik_ltm = rasch(dats,constraint =cbind(ncol(dats)+1,1))

library(eRm)
ConditionalMaxLik_eRm = RM(dats)

coef(MarginalMaxLik_ltm)[,1]
## [1] -3.6333700 -2.7031391 -0.9276147  0.8754727  2.8399121
-coef(ConditionalMaxLik_eRm)
##    beta I1    beta I2    beta I3    beta I4    beta I5 
## -3.1150909 -2.0802109 -0.1702496  1.7061744  3.6593770
coefmyMarginalMaxLik
##         b1         b2         b3         b4         b5 
## -0.9707882 -0.8353771 -0.2393051  0.6983327  1.3471377
##### compare results

plot(coef(MarginalMaxLik_ltm)[,1],-coef(ConditionalMaxLik_eRm),xlim=c(-5,5),ylim=c(-5,5),
     cex = 1.2,pch=16)
lines(c(min(coef(MarginalMaxLik_ltm)[,1]),max(coef(MarginalMaxLik_ltm)[,1])),
      c(min(-coef(ConditionalMaxLik_eRm)),max(-coef(ConditionalMaxLik_eRm))),lwd=2)
lines(c(-100,100),c(-100,100))

plot(coef(MarginalMaxLik_ltm)[,1],coefmyMarginalMaxLik,xlim=c(-5,5),ylim=c(-5,5),
     cex = 1.2,pch=16)
lines(c(min(coef(MarginalMaxLik_ltm)[,1]),max(coef(MarginalMaxLik_ltm)[,1])),
      c(min(coefmyMarginalMaxLik),max(coefmyMarginalMaxLik)),lwd=2)
lines(c(-100,100),c(-100,100))

##

plot(coef(MarginalMaxLik_ltm)[,1],realB,xlim=c(-5,5),ylim=c(-5,5),
     cex = 1.2,pch=16, xlab = "estimated ability",
     ylab = "true ability")
lines(c(min(coef(MarginalMaxLik_ltm)[,1]),max(coef(MarginalMaxLik_ltm)[,1])),
      c(min(realB),max(realB)),lwd=2)

points(-coef(ConditionalMaxLik_eRm),realB,ylim=c(-5,5),pch=16,col="green",
       cex = 1.2)
lines(c(min(-coef(ConditionalMaxLik_eRm)),max(-coef(ConditionalMaxLik_eRm))),
      c(min(realB),max(realB)),col="green",lwd=2)  

points(coefmyMarginalMaxLik,realB,ylim=c(-5,5),pch=16,col="red",
       cex = 1.2)
lines(c(min(coefmyMarginalMaxLik), max(coefmyMarginalMaxLik)),
      c(min(realB),max(realB)),col="red",lwd=2)

lines(c(-100,100),c(-100,100))

lm = (lm(coef(MarginalMaxLik_ltm)[,1] ~ coefmyMarginalMaxLik))

points(fitted(lm),realB,ylim=c(-5,5),pch=16,col="grey",
       cex = 1.2)

legend(-4,4,c("ltm","eRm","myCoef","myCoefRescaled"),
       col=c("black","green","red","grey"),pch=16)

Bayesian Item-Response Theory

Setzt bei der Marginal Maximum Likelihhood an: Zusätzlich zur Likelihood erhalten Parameterwerte noch einen Prior Wahrscheinlichkeit-en/sverteilungen, aus der die Posterior Wahrscheinlichkeit(sverteilung) berechnet wird.

Fox, J.-P. (2010). Bayesian item response modeling. New York: Springer.

Hausaufgabe

  1. Ability Test: Welches Konstrukt könnten wir messen (Fähigkeit, Intelligenz, Achtung: Raschskalierung)? Wie könnten die Items aussehen?

  2. Artikel lesen: Embretson, S. E. (1996). The new rules of measurement. Psychological Assessment, 8, 341-349.

Vergleich Klassiche Testtheorie und Probabilistische Testtheorie

Vergleich Klassiche Testtheorie und Probabilistische Testtheorie

Anhang

Comparison

simDatsRasch = sim.rasch(1000,c(-8,-6,-4,0,2,3,4))

simDatsRasch = sim.rasch(1000,50)

rm1 = RM(simDatsRasch)
diff= 1- colMeans(simDatsRasch)

plot(-coef(rm1), log(diff/(1-diff)))

cor(-coef(rm1), log(diff/(1-diff)))
## [1] 0.9999403
persPar = person.parameter(rm1)
plot(persPar)

cor(sort(unique(coef(persPar))),0:(length(sort(unique(coef(persPar))))-1))
## [1] 0.9813243

Sim theta unrepresentative

theta = rnorm(1000,-3,1)
hist(theta)

simDatsRasch = sim.rasch(theta,c(-3,-2,-1,1,2,3))

rm1 = RM(simDatsRasch)
-coef(rm1)
##    beta I1    beta I2    beta I3    beta I4    beta I5    beta I6 
## -2.9314604 -1.9706093 -1.0745615  0.9757922  2.2629197  2.7379194
rm2 = rasch(simDatsRasch,cbind(ncol(simDatsRasch)+1,1))
coef(rm2)[,1]
## [1] 0.0102135 1.0104151 1.9311606 3.9955257 5.2974994 5.7753217
plot(-coef(rm1),coef(rm2)[,1])

plot(person.parameter(rm1))