unidimTest {ltm} | R Documentation |
An empirical check for the unidimensionality assumption for ltm
, rasch
and tpm
models.
unidimTest(object, data, thetas, IRT = TRUE, z.vals = NULL, B = 100, ...)
object |
a model object inheriting either from class ltm , class rasch or class tpm . For
ltm() it is assumed that the two-parameter logistic model has been fitted (i.e., one latent variable and
no nonlinear terms); see Note for an extra option. |
data |
a matrix or a data.frame of response patterns with columns denoting the items; used
if object is missing. |
thetas |
a numeric matrix with IRT model parameter values to be used in rmvlogis ; used if
object is missing. |
IRT |
logical, if TRUE , then argument thetas contains the measurement model parameters under the
usual IRT parameterization (see rmvlogis ); used if object is missing. |
z.vals |
a numeric vector of length equal to the number of rows of data , providing ability estimates.
If object is supplied then the abilities are estimated using factor.scores . If NULL ,
the abilities are simulated from a standard normal distribution. |
B |
the number of samples for the Monte Carlo procedure to approximate the distribution of the statistic under the null hypothesis. |
... |
extra arguments to polycor() . |
This function implements the procedure proposed by Drasgow and Lissak (1983) for examining the latent dimensionality
of dichotomously scored item responses. The statistic used for testing unidimensionality is the second eigenvalue of
the tetrachoric correlations matrix of the dichotomous items. The tetrachoric correlations between are computed
using function polycor()
from package `polycor', and the largest one is taken as communality estimate.
A Monte Carlo procedure is used to approximate the distribution of this statistic under the null hypothesis.
In particular, the following steps are replicated B
times:
object
is supplied, then simulate new ability estimates, say z^*, from a normal
distribution with mean the ability estimates hat{z} in the original data-set, and standard deviation
the standard error of hat{z} (in this case the z.vals
argument is ignored). If object
is not supplied and the z.vals
argument has been specified, then set z^* = z.vals
. Finally,
if object
is not supplied and the z.vals
argument has not been specified, then simulate z^*
from a standard normal distribution.object
(if it is supplied) or the parameters given in the thetas
argument.Denote by T_{obs} the value of the statistic (i.e., the second eigenvalue) for the original data-set. Then the p-value is approximated according to the formula (1 + sum_{b = 1}^B I(T_b >= T_{obs})) / (1 + B), where I(.) denotes the indicator function, and T_b denotes the value of the statistic in the bth data-set.
An object of class unidimTest
is a list with components,
Tobs |
a numeric vector of the eigenvalues for the observed data-set. |
Tboot |
a numeric matrix of the eigenvalues for each simulated data-set. |
p.value |
the p-value. |
call |
a copy of the matched call of object if that was supplied. |
For ltm
objects you can also use a likelihood ratio test to check unidimensionality. In particular,
fit0 <- ltm(data ~ z1); fit1 <- ltm(data ~ z1 + z2); anova(fit0, fit1)
.
Dimitris Rizopoulos d.rizopoulos@erasmusmc.nl
Drasgow, F. and Lissak, R. (1983) Modified parallel analysis: a procedure for examining the latent dimensionality of dichotomously scored item responses. Journal of Applied Psychology, 68, 363–373.
## Not run: # Unidimensionality Check for the LSAT data-set # under a Rasch model: out <- unidimTest(rasch(LSAT)) out plot(out, type = "b", pch = 1:2) legend("topright", c("Real Data", "Average Simulated Data"), lty = 1, pch = 1:2, col = 1:2, bty = "n") ## End(Not run)