immer_jml | R Documentation |
\varepsilon
-Adjustment Bias Correction
Estimates the partial credit model with a design matrix for item
parameters with joint maximum likelihood (JML). The \varepsilon
-adjustment
bias correction is implemented with reduces bias of the
JML estimation method (Bertoli-Barsotti, Lando & Punzo, 2014).
immer_jml(dat, A=NULL, maxK=NULL, center_theta=TRUE, b_fixed=NULL, weights=NULL,
irtmodel="PCM", pid=NULL, rater=NULL, eps=0.3, est_method="eps_adj", maxiter=1000,
conv=1e-05, max_incr=3, incr_fac=1.1, maxiter_update=10, maxiter_line_search=6,
conv_update=1e-05, verbose=TRUE, use_Rcpp=TRUE, shortcut=TRUE)
## S3 method for class 'immer_jml'
summary(object, digits=3, file=NULL, ...)
## S3 method for class 'immer_jml'
logLik(object, ...)
## S3 method for class 'immer_jml'
IRT.likelihood(object, theta=seq(-9,9,len=41), ...)
dat |
Data frame with polytomous item responses |
A |
Design matrix (items |
maxK |
Optional vector with maximum category per item |
center_theta |
Logical indicating whether the trait estimates should be centered |
b_fixed |
Matrix with fixed |
irtmodel |
Specified item response model. Can be one of the two
partial credit model parametrizations |
weights |
Optional vector of sampling weights |
pid |
Person identifier |
rater |
Optional rater identifier |
eps |
Adjustment parameter |
est_method |
Estimation method. Can be |
maxiter |
Maximum number of iterations |
conv |
Convergence criterion |
max_incr |
Maximum increment |
incr_fac |
Factor for shrinking increments from |
maxiter_update |
Maximum number of iterations for parameter updates |
maxiter_line_search |
Maximum number of iterations within line search |
conv_update |
Convergence criterion for updates |
verbose |
Logical indicating whether convergence progress should be displayed |
use_Rcpp |
Logical indicating whether Rcpp package should be used for computation. |
shortcut |
Logical indicating whether a computational shortcut should be used for efficiency reasons |
object |
Object of class |
digits |
Number of digits after decimal to print |
file |
Name of a file in which the output should be sunk |
theta |
Grid of |
... |
Further arguments to be passed. |
The function uses the partial credit model as
P(X_i=h | \theta ) \propto \exp( h \theta - b_{ih} )
with
b_{ih}=\sum_l a_{ihl} \xi_l
where the values a_{ihl}
are included in the design matrix A
and \xi_l
denotes
basis item parameters.
The adjustment parameter \varepsilon
is applied to the sum score
as the sufficient statistic for the person parameter. In more detail,
extreme scores S_p=0
(minimum score) or S_p=M_p
(maximum score)
are adjusted to S_p^\ast=\varepsilon
or S_p^\ast=M_p - \varepsilon
,
respectively. Therefore, the adjustment possesses more influence on
parameter estimation for datasets with a small number of items.
List with following entries
b |
Item parameters |
theta |
Person parameters |
theta_se |
Standard errors for person parameters |
xsi |
Basis parameters |
xsi_se |
Standard errors for bias parameters |
probs |
Predicted item response probabilities |
person |
Data frame with person scores |
dat_score |
Scoring matrix |
score_pers |
Sufficient statistics for persons |
score_items |
Sufficient statistics for items |
loglike |
Log-likelihood value |
Bertoli-Barsotti, L., Lando, T., & Punzo, A. (2014). Estimating a Rasch Model via fuzzy empirical probability functions. In D. Vicari, A. Okada, G. Ragozini & C. Weihs (Eds.). Analysis and Modeling of Complex Data in Behavioral and Social Sciences, Springer.
See TAM::tam.jml
for
joint maximum likelihood estimation. The varepsilon
-adjustment
is also implemented in sirt::mle.pcm.group
.
#############################################################################
# EXAMPLE 1: Rasch model
#############################################################################
data(data.read, package="sirt")
dat <- data.read
#--- Model 1: Rasch model with JML and epsilon-adjustment
mod1a <- immer::immer_jml(dat)
summary(mod1a)
## Not run:
#- JML estimation, only handling extreme scores
mod1b <- immer::immer_jml( dat, est_method="jml")
summary(mod1b)
#- JML estimation with (I-1)/I bias correction
mod1c <- immer::immer_jml( dat, est_method="jml_bc" )
summary(mod1c)
# compare different estimators
round( cbind( eps=mod1a$xsi, JML=mod1b$xsi, BC=mod1c$xsi ), 2 )
#--- Model 2: LLTM by defining a design matrix for item difficulties
A <- array(0, dim=c(12,1,3) )
A[1:4,1,1] <- 1
A[5:8,1,2] <- 1
A[9:12,1,3] <- 1
mod2 <- immer::immer_jml(dat, A=A)
summary(mod2)
#############################################################################
# EXAMPLE 2: Partial credit model
#############################################################################
library(TAM)
data(data.gpcm, package="TAM")
dat <- data.gpcm
#-- JML estimation in TAM
mod0 <- TAM::tam.jml(resp=dat, bias=FALSE)
summary(mod0)
# extract design matrix
A <- mod0$A
A <- A[,-1,]
#-- JML estimation
mod1 <- immer::immer_jml(dat, A=A, est_method="jml")
summary(mod1)
#-- JML estimation with epsilon-adjusted bias correction
mod2 <- immer::immer_jml(dat, A=A, est_method="eps_adj")
summary(mod2)
#############################################################################
# EXAMPLE 3: Rating scale model with raters | Use design matrix from TAM
#############################################################################
data(data.ratings1, package="sirt")
dat <- data.ratings1
facets <- dat[,"rater", drop=FALSE]
resp <- dat[,paste0("k",1:5)]
#* Model 1: Rating scale model in TAM
formulaA <- ~ item + rater + step
mod1 <- TAM::tam.mml.mfr(resp=resp, facets=facets, formulaA=formulaA,
pid=dat$idstud)
summary(mod1)
#* Model 2: Same model estimated with JML
resp0 <- mod1$resp
A0 <- mod1$A[,-1,]
mod2 <- immer::immer_jml(dat=resp0, A=A0, est_method="eps_adj")
summary(mod2)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.