sirt (version 3.9-4)

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

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.matrix

An \(I \times I\) matrix of \(Q_3\) statistics

q3.long

Just the q3.matrix in long matrix format where every row corresponds to an item pair

expected

An \(N \times I\) matrix of expected probabilities by the Rasch model

residual

An \(N \times I\) matrix of residuals obtained after fitting the Rasch model

Q3.stat

Vector 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 Q3.testlet.

For modeling 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
# NOT RUN {
#############################################################################
# EXAMPLE 1: data.read. The 12 items are arranged in 4 testlets
#############################################################################
data(data.read)

# estimate the Rasch model
mod <- sirt::rasch.mml2( data.read)
# estmate WLEs
mod.wle <- sirt::wle.rasch( dat=data.read, b=mod$item$b )
# calculate Yen's Q3 statistic
mod.q3 <- sirt::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))

# }
# NOT RUN {
# obtain Q3 statistic from modelfit.sirt function which is based on the
# posterior distribution of theta and not on observed values
fitmod <- sirt::modelfit.sirt( mod )
# extract Q3 statistic
q3stat <- fitmod$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 DataCamp Workspace