Learn R Programming

CDM (version 7.4-19)

gdd: Generalized Distance Discriminating Method

Description

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.

Usage

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

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

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.

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

Run this code
# NOT RUN {
#############################################################################
# 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 )
# }

Run the code above in your browser using DataLab