rm.sdt {sirt} | R Documentation |
Hierarchical Rater Model Based on Signal Detection Theory (HRM-SDT)
Description
This function estimates a version of the hierarchical rater model (HRM) based on signal detection theory (HRM-SDT; DeCarlo, 2005; DeCarlo, Kim & Johnson, 2011; Robitzsch & Steinfeld, 2018). The model is estimated by means of an EM algorithm adapted from multilevel latent class analysis (Vermunt, 2008).
Usage
rm.sdt(dat, pid, rater, Qmatrix=NULL, theta.k=seq(-9, 9, len=30),
est.a.item=FALSE, est.c.rater="n", est.d.rater="n", est.mean=FALSE, est.sigma=TRUE,
skillspace="normal", tau.item.fixed=NULL, a.item.fixed=NULL,
d.min=0.5, d.max=100, d.start=3, c.start=NULL, tau.start=NULL, sd.start=1,
d.prior=c(3,100), c.prior=c(3,100), tau.prior=c(0,1000), a.prior=c(1,100),
link_item="GPCM", max.increment=1, numdiff.parm=0.00001, maxdevchange=0.1,
globconv=.001, maxiter=1000, msteps=4, mstepconv=0.001, optimizer="nlminb" )
## S3 method for class 'rm.sdt'
summary(object, file=NULL, ...)
## S3 method for class 'rm.sdt'
plot(x, ask=TRUE, ...)
## S3 method for class 'rm.sdt'
anova(object,...)
## S3 method for class 'rm.sdt'
logLik(object,...)
## S3 method for class 'rm.sdt'
IRT.factor.scores(object, type="EAP", ...)
## S3 method for class 'rm.sdt'
IRT.irfprob(object,...)
## S3 method for class 'rm.sdt'
IRT.likelihood(object,...)
## S3 method for class 'rm.sdt'
IRT.posterior(object,...)
## S3 method for class 'rm.sdt'
IRT.modelfit(object,...)
## S3 method for class 'IRT.modelfit.rm.sdt'
summary(object,...)
Arguments
dat |
Original data frame. Ratings on variables must be in rows, i.e. every row corresponds to a person-rater combination. |
pid |
Person identifier. |
rater |
Rater identifier. |
Qmatrix |
An optional Q-matrix. If this matrix is not provided,
then by default the ordinary scoring of categories
(from 0 to the maximum score of |
theta.k |
A grid of theta values for the ability distribution. |
est.a.item |
Should item parameters |
est.c.rater |
Type of estimation for item-rater parameters |
est.d.rater |
Type of estimation of |
est.mean |
Optional logical indicating whether the mean of the trait distribution should be estimated. |
est.sigma |
Optional logical indicating whether the standard deviation of the trait distribution should be estimated. |
skillspace |
Specified |
tau.item.fixed |
Optional matrix with three columns specifying
fixed |
a.item.fixed |
Optional matrix with two columns specifying fixed
|
d.min |
Minimal |
d.max |
Maximal |
d.start |
Starting value(s) of |
c.start |
Starting values of |
tau.start |
Starting values of |
sd.start |
Starting value for trait standard deviation |
d.prior |
Normal prior |
c.prior |
Normal prior for |
tau.prior |
Normal prior for |
a.prior |
Normal prior for |
link_item |
Type of item response function for latent responses.
Can be |
max.increment |
Maximum increment of item parameters during estimation |
numdiff.parm |
Numerical differentiation step width |
maxdevchange |
Maximum relative deviance change as a convergence criterion |
globconv |
Maximum parameter change |
maxiter |
Maximum number of iterations |
msteps |
Maximum number of iterations during an M step |
mstepconv |
Convergence criterion in an M step |
optimizer |
Choice of optimization function in M-step for
item parameters. Options are |
object |
Object of class |
file |
Optional file name in which summary should be written. |
x |
Object of class |
ask |
Optional logical indicating whether a new plot should be asked for. |
type |
Factor score estimation method. Up to now,
only |
... |
Further arguments to be passed |
Details
The specification of the model follows DeCarlo et al. (2011).
The second level models the ideal rating (latent response) \eta=0, ...,K
of person p
on item i
. The option link_item='GPCM'
follows the
generalized partial credit model
P( \eta_{pi}=\eta | \theta_p ) \propto
exp( a_{i} q_{i \eta } \theta_p - \tau_{i \eta } )
. The option link_item='GRM'
employs the
graded response model
P( \eta_{pi}=\eta | \theta_p )=
\Psi( \tau_{i,\eta + 1} - a_i \theta_p ) - \Psi( \tau_{i,\eta} - a_i \theta_p )
At the first level, the ratings X_{pir}
for
person p
on item i
and rater r
are modeled as a signal detection model
P( X_{pir} \le k | \eta_{pi} )=
G( c_{irk} - d_{ir} \eta_{pi} )
where G
is the logistic distribution function
and the categories are k=1,\ldots, K+1
.
Note that the item response model can be equivalently written
as
P( X_{pir} \ge k | \eta_{pi} )=
G( d_{ir} \eta_{pi} - c_{irk})
The thresholds c_{irk}
can be further restricted to
c_{irk}=c_{k}
(est.c.rater='e'
),
c_{irk}=c_{ik}
(est.c.rater='i'
) or
c_{irk}=c_{ir}
(est.c.rater='r'
). The same
holds for rater precision parameters d_{ir}
.
Value
A list with following entries:
deviance |
Deviance |
ic |
Information criteria and number of parameters |
item |
Data frame with item parameters. The columns
|
rater |
Data frame with rater parameters.
Transformed |
person |
Data frame with person parameters: EAP and corresponding standard errors |
EAP.rel |
EAP reliability |
EAP.rel |
EAP reliability |
mu |
Mean of the trait distribution |
sigma |
Standard deviation of the trait distribution |
tau.item |
Item parameters |
se.tau.item |
Standard error of item parameters |
a.item |
Item slopes |
se.a.item |
Standard error of item slopes |
c.rater |
Rater parameters |
se.c.rater |
Standard error of rater severity parameter |
d.rater |
Rater slope parameter |
se.d.rater |
Standard error of rater slope parameter |
f.yi.qk |
Individual likelihood |
f.qk.yi |
Individual posterior distribution |
probs |
Item probabilities at grid |
prob.item |
Probabilities |
n.ik |
Expected counts |
pi.k |
Estimated trait distribution |
maxK |
Maximum number of categories |
procdata |
Processed data |
iter |
Number of iterations |
... |
Further values |
References
DeCarlo, L. T. (2005). A model of rater behavior in essay grading based on signal detection theory. Journal of Educational Measurement, 42, 53-76.
DeCarlo, L. T. (2010). Studies of a latent-class signal-detection model for constructed response scoring II: Incomplete and hierarchical designs. ETS Research Report ETS RR-10-08. Princeton NJ: ETS.
DeCarlo, T., Kim, Y., & Johnson, M. S. (2011). A hierarchical rater model for constructed responses, with a signal detection rater model. Journal of Educational Measurement, 48, 333-356.
Robitzsch, A., & Steinfeld, J. (2018). Item response models for human ratings: Overview, estimation methods, and implementation in R. Psychological Test and Assessment Modeling, 60(1), 101-139.
Vermunt, J. K. (2008). Latent class and finite mixture models for multilevel data sets. Statistical Methods in Medical Research, 17, 33-51.
See Also
The facets rater model can be estimated with rm.facets
.
Examples
#############################################################################
# EXAMPLE 1: Hierarchical rater model (HRM-SDT) data.ratings1
#############################################################################
data(data.ratings1)
dat <- data.ratings1
## Not run:
# Model 1: Partial Credit Model: no rater effects
mod1 <- sirt::rm.sdt( dat[, paste0( "k",1:5) ], rater=dat$rater,
pid=dat$idstud, est.c.rater="n", d.start=100, est.d.rater="n" )
summary(mod1)
# Model 2: Generalized Partial Credit Model: no rater effects
mod2 <- sirt::rm.sdt( dat[, paste0( "k",1:5) ], rater=dat$rater,
pid=dat$idstud, est.c.rater="n", est.d.rater="n",
est.a.item=TRUE, d.start=100)
summary(mod2)
# Model 3: Equal effects in SDT
mod3 <- sirt::rm.sdt( dat[, paste0( "k",1:5) ], rater=dat$rater,
pid=dat$idstud, est.c.rater="e", est.d.rater="e")
summary(mod3)
# Model 4: Rater effects in SDT
mod4 <- sirt::rm.sdt( dat[, paste0( "k",1:5) ], rater=dat$rater,
pid=dat$idstud, est.c.rater="r", est.d.rater="r")
summary(mod4)
#############################################################################
# EXAMPLE 2: HRM-SDT data.ratings3
#############################################################################
data(data.ratings3)
dat <- data.ratings3
dat <- dat[ dat$rater < 814, ]
psych::describe(dat)
# Model 1: item- and rater-specific effects
mod1 <- sirt::rm.sdt( dat[, paste0( "crit",c(2:4)) ], rater=dat$rater,
pid=dat$idstud, est.c.rater="a", est.d.rater="a" )
summary(mod1)
plot(mod1)
# Model 2: Differing number of categories per variable
mod2 <- sirt::rm.sdt( dat[, paste0( "crit",c(2:4,6)) ], rater=dat$rater,
pid=dat$idstud, est.c.rater="a", est.d.rater="a")
summary(mod2)
plot(mod2)
#############################################################################
# EXAMPLE 3: Hierarchical rater model with discrete skill spaces
#############################################################################
data(data.ratings3)
dat <- data.ratings3
dat <- dat[ dat$rater < 814, ]
psych::describe(dat)
# Model 1: Discrete theta skill space with values of 0,1,2 and 3
mod1 <- sirt::rm.sdt( dat[, paste0( "crit",c(2:4)) ], theta.k=0:3, rater=dat$rater,
pid=dat$idstud, est.c.rater="a", est.d.rater="a", skillspace="discrete" )
summary(mod1)
plot(mod1)
# Model 2: Modelling of one item by using a discrete skill space and
# fixed item parameters
# fixed tau and a parameters
tau.item.fixed <- cbind( 1, 1:3, 100*cumsum( c( 0.5, 1.5, 2.5)) )
a.item.fixed <- cbind( 1, 100 )
# fit HRM-SDT
mod2 <- sirt::rm.sdt( dat[, "crit2", drop=FALSE], theta.k=0:3, rater=dat$rater,
tau.item.fixed=tau.item.fixed,a.item.fixed=a.item.fixed, pid=dat$idstud,
est.c.rater="a", est.d.rater="a", skillspace="discrete" )
summary(mod2)
plot(mod2)
## End(Not run)