Marc Jekel
14/11/2014
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)
Überblick Rasch Modell
Annahmen und Eigenschaften des Rasch Modells
Parameterschätzung des Rasch Modells
Praktische Übungen in R
Benutzer: student; Passwort: rasch
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)
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)
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 |
(Koller et al., 2012, S. 2)
Ziel ist es, Skalen zu entwickeln, die die Verortung von Personen und Items auf einer zugrundeliegenden (latenten) Variablen ermöglichen.
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.
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.
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.
\[p(x_{ij} = 1|\theta_i,\beta_j) = \frac{e^{\theta_i-\beta_j}}{1 + e^{\theta_i-\beta_j}}\]
\[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}}\]
\[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)
\[p(x_{ij} = 1|\theta_i,\beta_j) = \frac{e^{\theta_i-\beta_j}}{1 + e^{\theta_i-\beta_j}}\]
\[p(x_{ij} = 1|\theta_i,\beta_j) = \frac{e^{\theta_i-\beta_j}}{1 + e^{\theta_i-\beta_j}}\]
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
\[p(x_{ij} = 1|\theta_i,\beta_j) = \frac{e^{\theta_i-\beta_j}}{1 + e^{\theta_i-\beta_j}}\]
\[p(x_{ij} = 1|\theta_i,\beta_j) = \frac{e^{\theta_i-\beta_j}}{1 + e^{\theta_i-\beta_j}}\]
\[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) \]
\[Info_{tot}(\theta)=\sum_{j=1}^J Info_j(\theta)\]
\[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.
\[CI_{95}(\theta) = \theta \pm 1.96 \times SE(\theta)\]
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)\).
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?
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?
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.
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\)
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 = +)\)
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.
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.
\[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))\]
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}\]
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\]
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)
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)\]
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\)
Alle Probanden, Ein Item:
\(p(x_{ij} = 1|\theta_i,\beta_j) = \frac{e^{\theta_i-\beta_j}}{1 + e^{\theta_i-\beta_j}}\)
Beobachtete Antworten: \(0\), \(0\), \(1\), \(1\); Personenparameter \(\theta_i = (-2, 2, 1, 7)\); Wie hoch ist die Likelihood, wenn \(\beta_1 = -1\) ist?
\(L = p(x_{12} = 0|-2,-1) \times p(x_{22} = 0|2,-1) \times p(x_{32} = 1|5,-1) \times p(x_{42} = 0|7,-1)\)
\(L = \prod_{i = 1}^4 p(x_{i2}|\theta_i,\beta_j = -1)\)
\(log(L) = \sum_{i = 1}^4 log(p(x_{i2}|\theta_i,\beta_j = -1))\)
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)\).
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)\)
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)\).
(Lewandowsky & Farrell, 2011, S. 83)
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 :-( )
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?
library(stats4)
mle(minusLogLikFunction)
## 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)
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\).
Itemschwierigkeit: \(\beta_1<\beta_2<\beta_3\); Antwortpattern: \((1,0,0)\), \((0,1,0)\) oder\((0,0,1)\)
Itemschwierigkeit: \(\beta_1<\beta_2<\beta_3\); Antwortpattern: \((1,1,0)\), \((1,0,1)\) oder\((0,1,1)\)
Itemschwierigkeit: \(\beta_1<\beta_2<\beta_3\)
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.
Itemschwierigkeit: \((-5,-1)\), Itemsteigung: \((1,1)\)
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}\]
Itemschwierigkeit: \((-5,-1)\), Itemsteigung: \((1,.3)\)
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})\).
Itemschwierigkeit: \((-5,-1)\), Itemsteigung: \((1,.3)\), Antwortpattern: \((1,0)\)
Itemschwierigkeit: \((-5,-1)\), Itemsteigung: \((1,.3)\), Antwortpattern. schwarz: \((1,0)\), rot: \((0,1)\)
Itemschwierigkeit: \((-5,-1)\), Antwortpattern. schwarz: \((1,0)\), rot: \((0,1)\)
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
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).
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).
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)?
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 |
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 |
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 |
Summe | rel. Summe | |
---|---|---|
theta_1 | 2645 | 0.2645 |
theta_2 | 5001 | 0.5001 |
theta_3 | 7279 | 0.7279 |
\[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.
Angenommen wir haben 2 Items. Proband \(i\) löst das erste Item und löst nicht das zweite Item.
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)}}\]
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)}\]
Maximum Likelihood zur Schätzung Itemparameter
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).
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.
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"
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)
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.
Ability Test: Welches Konstrukt könnten wir messen (Fähigkeit, Intelligenz, Achtung: Raschskalierung)? Wie könnten die Items aussehen?
Artikel lesen: Embretson, S. E. (1996). The new rules of measurement. Psychological Assessment, 8, 341-349.
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
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))