Learn R Programming

sirt (version 0.31-20)

gom.em: Discrete (Rasch) Grade of Membership Model

Description

This function estimates the grade of membership model (Erosheva, Fienberg & Joutard, 2007) by the EM algorithm assuming a discrete membership score distribution.

Usage

gom.em(dat, K=NULL, problevels=NULL, model="GOM", theta0.k=seq(-5, 5, len=15), 
    xsi0.k=exp(seq(-6, 3, len=15)), max.increment=0.3, numdiff.parm=0.001, 
    maxdevchange=10^(-5), globconv=0.001, maxiter=1000, msteps=4, mstepconv=0.001)

Arguments

dat
Data frame with dichotomous responses
K
Number of classes (only applies for model="GOM")
problevels
Probability levels for membership functions (only applies for model="GOM")
model
The type of grade of membership model. The default "GOM" is the nonparametric grade of membership model. The probabilities and membership functions specifications described in Details are called via "GOMRasch".
theta0.k
Vector of $\tilde{\theta}_k$ grid (applies only for model="GOMRasch")
xsi0.k
Vector of $\xi_p$ grid (applies only for model="GOMRasch")
max.increment
Maximum increment
numdiff.parm
Numerical differentiation parameter
maxdevchange
Convergence criterion for change in relative deviance
globconv
Global convergence criterion for parameter change
maxiter
Maximum number of iterations
msteps
Number of iterations within a M step
mstepconv
Convergence criterion within a M step

Value

  • A list with following entries:
  • devianceDeviance
  • icInformation criteria
  • itemData frame with item parameters
  • personData frame with person parameters
  • EAP.relEAP reliability (only applies for model="GOMRasch")
  • MAPMaximum aposteriori estimate of the membership function
  • classdescDescriptives for class membership
  • lambdaEstimated response probabilities $\lambda_{ik}$
  • se.lambdaStandard error for stimated response probabilities $\lambda_{ik}$
  • muMean of $(\theta_p , \xi_p)$ (only applies for model="GOMRasch")
  • SigmaCovariance matrix of $(\theta_p , \xi_p)$ (only applies for model="GOMRasch")
  • bEstimated item difficulties (only applies for model="GOMRasch")
  • se.bStandard error of estimated difficulties (only applies for model="GOMRasch")
  • f.yi.qkIndividual likelihood
  • f.qk.yiIndividual posterior
  • probsArray with response probabilities
  • n.ikExpected counts
  • iterNumber of iterations
  • INumber of items
  • KNumber of classes
  • TPNumber of discrete integration points for $(g_{p1},...,g_{pK})$
  • theta.kUsed grid of membership functions
  • ...Further values

Details

The item response model of the grade of membership model (Erosheva, Fienberg & Joutard, 2007) with $K$ classes for dichotomous correct responses $X_{pi}$ of person $p$ on item $i$ is as follows (model="GOM") $$P(X_{pi}=1 | g_{p1}, \ldots , g_{pK} ) = \sum_k \lambda_{ik} g_{pk} \quad , \quad \sum_k g_{pk} = 1$$ The membership function is assumed to be discretely represented (specified by problevels). The Rasch grade of membership model poses constraints on probabilities $\lambda_{ik}$ and membership functions $g_{pk}$. The membership function of person $p$ is parametrized by a location parameter $\theta_p$ and a variability parameter $\xi_p$. Each class $k$ is represented by a location $\tilde{\theta}_k$. The membership function is defined as $$g_{pk} \propto exp[ - ( \theta_p - \tilde{\theta}_k )^2 / ( 2 \xi_p^2 )]$$ The extremal class probabilities $\lambda_{ik}$ follow the Rasch model $$\lambda_{ik} = invlogit( \tilde{\theta}_k - b_i )$$

References

Erosheva, E. A., Fienberg, S. E. & Joutard, C. (2007). Describing disability through individual-level mixture models for multivariate binary data. Annals of Applied Statistics, 1, 502-537.

See Also

For joint maximum likelihood estimation of the grade of membership model see gom.jml.

Examples

Run this code
#########################################################
# EXAMPLE 1: PISA data mathematics
#########################################################
data(data.pisaMath)
dat <- data.pisaMath$data
dat <- dat[ , grep("M" , colnames(dat)) ]

#***
# Model 1: Discrete GOM with 3 classes and 5 probability levels
problevels <- seq( 0 , 1 , len=5 )
mod1 <- gom.em( dat , K=3 , problevels ,  model="GOM"  )            
summary(mod1)

#***
# Model 2: Discrete GOM with 4 classes and 5 probability levels
problevels <- seq( 0 , 1 , len=5 )
mod2 <- gom.em( dat , K=4 , problevels ,  model="GOM"  )            
summary(mod2)

#***
# Model 3: Rasch GOM
mod3 <- gom.em( dat , model="GOMRasch" , maxiter=20 )            
summary(mod3)

#***
# Model 4: 'Ordinary' Rasch model
mod4 <- rasch.mml2( dat )
summary(mod4)

Run the code above in your browser using DataLab