Performs the generalized distance discriminating method (GDD; Sun, Xin, Zhang, & de la Torre, 2013) for dichotomous data which is a method for classifying students into skill profiles based on a preliminary unidimensional calibration.

gdd(data, q.matrix, theta, b, a, skillclasses=NULL)

Arguments

data

Data frame with \(N \times J\) item responses

q.matrix

The Q-matrix

theta

Estimated person ability

b

Estimated item intercept from a 2PL model (see Details)

a

Estimated item slope from a 2PL model (see Details)

skillclasses

Optional matrix of skill classes used for estimation

Details

Note that the parameters in the arguments follow the item response model $$ logit P( X_{nj}=1 | \theta_n )=b_j + a_j \theta_n $$ which is employed in the gdm function.

Value

A list with following entries

skillclass.est

Estimated skill class

distmatrix

Distances for every person and every skill class

skillspace

Used skill space for estimation

theta

Used person parameter estimate

References

Sun, J., Xin, T., Zhang, S., & de la Torre, J. (2013). A polytomous extension of the generalized distance discriminating method. Applied Psychological Measurement, 37, 503-521.

Examples

#############################################################################
# EXAMPLE 1: GDD for sim.dina
#############################################################################

data(sim.dina, package="CDM")
data(sim.qmatrix, package="CDM")

data <- sim.dina
q.matrix <- sim.qmatrix

# estimate 1PL (use irtmodel="2PL" for 2PL estimation)
mod <- CDM::gdm( data, irtmodel="1PL", theta.k=seq(-6,6,len=21),
                    decrease.increments=TRUE, conv=.001, globconv=.001)
# extract item parameters in parametrization b + a*theta
b <- mod$b[,1]
a <- mod$a[,,1]
# extract person parameter estimate
theta <- mod$person$EAP.F1

# generalized distance discriminating method
res <- CDM::gdd( data, q.matrix, theta=theta, b=b, a=a )