sirt (version 1.9-0)

rasch.jml: Joint Maximum Likelihood (JML) Estimation of the Rasch Model

Description

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.

Usage

rasch.jml(dat, method = "MLE", b.init = NULL, constraints = NULL, weights = NULL, 
    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)

## S3 method for class 'rasch.jml':
summary(object,...)

Arguments

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. MLE is maximum likelihood estimation (where person with perfect scores are deleted from analysis). WLE uses weighted likelihood estimation (Warm, 1989) for person
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 (colnames(dat)) which shall be fixed during estimation. The second column is the corresponding item difficulty.
weights
Person sample weights. Default is NULL, i.e. all persons in the sample are equally weighted.
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 TRUE
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 rasch.prox) be used as initial estimations? Default is TRUE.
proxiter
Number of maximal PROX iterations
proxconv
Convergence criterion for PROX iterations
dp
Object created from data preparation function (.data.prep) which could be created in earlier JML runs. Default is NULL.
theta.init
Initial person parameter estimate
calc.fit
Should itemfit being calculated?
object
Object of class rasch.jml
...
Further arguments to be passed

Value

  • A list with following entries
  • itemEstimated item parameters
  • personEstimated person parameters
  • methodPerson parameter estimation method
  • datOriginal data frame
  • devianceDeviance
  • data.procProcessed data frames excluding persons with extreme scores
  • dpValue of data preparation (it is used in the function rasch.jml.jackknife1)

Details

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}$.

References

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.

See Also

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. See also marginal maximum likelihood estimation with rasch.mml2 or the Rpackage ltm.

Examples

Run this code
#############################################################################
# SIMULATED 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 <- sim.raschtype( rnorm( N ) , b )
colnames(dat) <- paste( "I" , 1:I , sep="")

# JML estimation of the Rasch model
mod1 <- rasch.jml( dat )
summary(mod1)

# MML estimation with rasch.mml2 function
mod2 <- rasch.mml2( dat )
summary(mod2)

# Pairwise method of Fischer
mod3 <- rasch.pairwise( dat )
summary(mod3)

# JML estimation in TAM
library(TAM)
mod4 <- TAM::tam.jml2( 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 )
mod4 <- rasch.jml( dat , constraints = constraints )
summary(mod4)
# For constrained item parameters, it this not obvious
# how to calculate a 'right correction' of item parameter bias

Run the code above in your browser using DataLab