Joint Maximum Likelihood (JML) Estimation of the Rasch Model
This function estimates the Rasch model using joint maximum likelihood estimation (Lincare, 1994). The PROX algorithm (Lincare, 1994) is used for the generation of starting values of item parameters.
rasch.jml(dat, method="MLE", b.init=NULL, constraints=NULL, weights=NULL, center="persons", glob.conv=10^(-6), conv1=1e-05, conv2=0.001, progress=TRUE, bsteps=4, thetasteps=2, wle.adj=0, jmliter=100, prox=TRUE, proxiter=30, proxconv=0.01, dp=NULL, theta.init=NULL, calc.fit=TRUE, prior_sd=NULL) ## S3 method for class 'rasch.jml' summary(object, digits=3, ...)
dat |
An N \times I data frame of dichotomous item responses where N indicates the number of persons and I the number of items |
method |
Method for estimating person parameters during JML iterations.
|
b.init |
Initial values of item difficulties |
constraints |
Optional matrix or data.frame with two columns. First column is an integer of
item indexes or item names ( |
weights |
Person sample weights. Default is |
center |
Character indicator whether persons ( |
glob.conv |
Global convergence criterion with respect to the log-likelihood function |
conv1 |
Convergence criterion for estimation of item parameters |
conv2 |
Convergence criterion for estimation of person parameters |
progress |
Display progress? Default is |
bsteps |
Number of steps for b parameter estimation |
thetasteps |
Number of steps for theta parameter estimation |
wle.adj |
Score adjustment for WLE estimation |
jmliter |
Number of maximal iterations during JML estimation |
prox |
Should the PROX algorithm (see |
proxiter |
Number of maximal PROX iterations |
proxconv |
Convergence criterion for PROX iterations |
dp |
Object created from data preparation function ( |
theta.init |
Initial person parameter estimate |
calc.fit |
Should itemfit being calculated? |
prior_sd |
Optional value for standard deviation of prior distribution for ability values if penalized JML should be utilized |
object |
Object of class |
digits |
Number of digits used for rounding |
... |
Further arguments to be passed |
The estimation is known to have a bias in item parameters for
a fixed (finite) number of items. In literature (Lincare, 1994), a simple
bias correction formula is proposed and included in the value
item$itemdiff.correction
in this function. If I denotes the number
of items, then the correction factor is \frac{I-1}{I}.
A list with following entries
item |
Estimated item parameters |
person |
Estimated person parameters |
method |
Person parameter estimation method |
dat |
Original data frame |
deviance |
Deviance |
data.proc |
Processed data frames excluding persons with extreme scores |
dp |
Value of data preparation (it is used in the function
|
Linacre, J. M. (1994). Many-Facet Rasch Measurement. Chicago: MESA Press.
Warm, T. A. (1989). Weighted likelihood estimation of ability in the item response theory. Psychometrika, 54, 427-450.
Get a summary with summary.rasch.jml
.
See rasch.prox
for the PROX algorithm as initial iterations.
For a bias correction of the JML method try rasch.jml.jackknife1
.
JML estimation can also be conducted with the TAM
(TAM::tam.jml
)
and immer (immer::immer_jml
)
packages.
See also marginal maximum likelihood estimation with rasch.mml2
or the R package ltm.
############################################################################# # EXAMPLE 1: Simulated data from the Rasch model ############################################################################# set.seed(789) N <- 500 # number of persons I <- 11 # number of items b <- seq( -2, 2, length=I ) dat <- sirt::sim.raschtype( stats::rnorm( N, mean=.5 ), b ) colnames(dat) <- paste( "I", 1:I, sep="") # JML estimation of the Rasch model (centering persons) mod1 <- sirt::rasch.jml( dat ) summary(mod1) # JML estimation of the Rasch model (centering items) mod1b <- sirt::rasch.jml( dat, center="items" ) summary(mod1b) # MML estimation with rasch.mml2 function mod2 <- sirt::rasch.mml2( dat ) summary(mod2) # Pairwise method of Fischer mod3 <- sirt::rasch.pairwise( dat ) summary(mod3) # JML estimation in TAM ## Not run: library(TAM) mod4 <- TAM::tam.jml( resp=dat ) #****** # item parameter constraints in JML estimation # fix item difficulties: b[4]=-.76 and b[6]=.10 constraints <- matrix( cbind( 4, -.76, 6, .10 ), ncol=2, byrow=TRUE ) mod6 <- sirt::rasch.jml( dat, constraints=constraints ) summary(mod6) # For constrained item parameters, it this not obvious # how to calculate a 'right correction' of item parameter bias ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.