unidim.test.csn.Rd
This function tests whether item covariances given the sum score are non-positive (CSN; see Junker 1993), i.e. for items \(i\) and \(j\) it holds that $$ Cov( X_i, X_j | X^+ ) \le 0 $$ Note that this function only works for dichotomous data.
unidim.test.csn(dat, RR=400, prop.perm=0.75, progress=TRUE)
dat | Data frame with dichotomous item responses. All persons with (some) missing responses are removed. |
---|---|
RR | Number of permutations used for statistical testing |
prop.perm | A positive value indicating the amount of permutation in an existing permuted data set |
progress | An optional logical indicating whether computation progress should be displayed |
For each item pair \((i,j)\) and a each sum score group \(k\) a conditional covariance \(r(i,j|k)\) is calculated. Then, the test statistic for CSN is $$ h=\sum_{k=1}^{I-1} \frac{n_k}{n} \max_{i,j} r(i,j|k) $$ where \(n_k\) is the number of persons in score group \(k\). "'Large values"' of \(h\) are not in agreement with the null hypothesis of non-positivity of conditional covariances.
The distribution of the test statistic \(h\) under the null hypothesis is empirically obtained by column wise permutation of items within all score groups. In the population, this procedure corresponds to conditional covariances of zero. See de Gooijer and Yuan (2011) for more details.
A list with following entries
Value of the statistic
Distribution of statistic under \(H_0\) of permuted dataset
The corresponding p value of the statistic
Quantiles of the statistic under permutation (the null hypothesis \(H_0\))
De Gooijer, J. G., & Yuan, A. (2011). Some exact tests for manifest properties of latent trait models. Computational Statistics and Data Analysis, 55, 34-44.
Junker, B.W. (1993). Conditional association, essential independence, and monotone unidimensional item response models. Annals of Statistics, 21, 1359-1378.
############################################################################# # EXAMPLE 1: Dataset data.read ############################################################################# data(data.read) dat <- data.read set.seed(778) res <- sirt::unidim.test.csn( dat ) ## CSN Statistic=0.04737, p=0.02 if (FALSE) { ############################################################################# # EXAMPLE 2: CSN statistic for two-dimensional simulated data ############################################################################# set.seed(775) N <- 2000 I <- 30 # number of items rho <- .60 # correlation between 2 dimensions t0 <- stats::rnorm(N) t1 <- sqrt(rho)*t0 + sqrt(1-rho)*stats::rnorm(N) t2 <- sqrt(rho)*t0 + sqrt(1-rho)*stats::rnorm(N) dat1 <- sirt::sim.raschtype(t1, b=seq(-1.5,1.5,length=I/2) ) dat2 <- sirt::sim.raschtype(t2, b=seq(-1.5,1.5,length=I/2) ) dat <- as.matrix(cbind( dat1, dat2) ) res <- sirt::unidim.test.csn( dat ) ## CSN Statistic=0.06056, p=0.02 }