sirt (version 1.9-0)

yen.q3: Estimation of the $Q_3$ Statistic (Yen, 1984)

Description

This function estimates the $Q_3$ statistic according to Yen (1984). The statistic $Q_3$ is calculated for every item pair $(i,j)$ which is the correlation between item residuals after fitting the Rasch model.

Usage

yen.q3(dat, theta, b, progress=TRUE)

Arguments

dat
An $N \times I$ data frame of dichotomous item responses
theta
Vector of length $N$ of person parameter estimates (e.g. obtained from wle.rasch)
b
Vector of length $I$ (e.g. obtained from rasch.mml2)
progress
Should iteration progress be displayed?

Value

  • A list with following entries
  • q3.matrixAn $I \times I$ matrix of $Q_3$ statistics
  • q3.longJust the q3.matrix in long matrix format where every row corresponds to an item pair
  • expectedAn $N \times I$ matrix of expected probabilities by the Rasch model
  • residualAn $N \times I$ matrix of residuals obtained after fitting the Rasch model
  • Q3.statVector with descriptive statistics of $Q_3$

References

Yen, W. M. (1984). Effects of local item dependence on the fit and equating performance of the three-parameter logistic model. Applied Psychological Measurement, 8, 125-145.

See Also

For the estimation of the average $Q_3$ statistic within testlets see testlet.yen.q3. For modelling testlet effects see mcmc.3pno.testlet. For handling local dependencies in IRT models see rasch.copula2, rasch.pml3 or rasch.pairwise.itemcluster.

Examples

Run this code
#############################################################################
# EXAMPLE 1: data.read. The 12 items are arranged in 4 testlets
#############################################################################
data(data.read)

# estimate the Rasch model
mod <- rasch.mml2( data.read)
# estmate WLEs
mod.wle <- wle.rasch( dat = data.read , b = mod$item$b )
# calculate Yen's Q3 statistic
mod.q3 <- yen.q3( dat = data.read , theta = mod.wle$theta , b = mod$item$b )
  ##   Yen's Q3 Statistic based on an estimated theta score 
  ##   *** 12 Items | 66 item pairs
  ##   *** Q3 Descriptives
  ##        M     SD    Min    10%    25%    50%    75%    90%    Max 
  ##   -0.085  0.110 -0.261 -0.194 -0.152 -0.107 -0.051  0.041  0.412 

# plot Q3 statistics
I <- ncol(data.read)
image( 1:I , 1:I , mod.q3$q3.matrix , col=gray( 1 - (0:32)/32) ,
        xlab="Item" , ylab="Item")
abline(v=c(5,9)) # borders for testlets
abline(h=c(5,9)) 

# obtain Q3 statistic from modelfit.sirt function which is based on the 
# posterior distribution of theta and not on observed values
fitmod <- modelfit.sirt( mod )
# extract Q3 statistic
q3stat <- fit$itempairs$Q3
  ##  > summary(q3stat)
  ##      Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
  ##  -0.21760 -0.11590 -0.07280 -0.05545 -0.01220  0.44710 
  ##  > sd(q3stat)
  ##  [1] 0.1101451

Run the code above in your browser using DataLab