Simulate a congeneric data set with or without minor factors
Simulate a congeneric data set with or without minor factors
Classical Test Theory (CTT) considers four or more tests to be congenerically equivalent if all tests may be expressed in terms of one factor and a residual error. Parallel tests are the special case where (usually two) tests have equal factor loadings. Tau equivalent tests have equal factor loadings but may have unequal errors. Congeneric tests may differ in both factor loading and error variances. Minor factors may be added as systematic but trivial disturbances
N: How many subjects to simulate. If NULL, return the population model
loads: A vector of factor loadings for the tests
err: A vector of error variances -- if NULL then error = 1 - loading 2
short: short=TRUE: Just give the test correlations, short=FALSE, report observed test scores as well as the implied pattern matrix
categorical: continuous or categorical (discrete) variables.
low: values less than low are forced to low
high: values greater than high are forced to high
cuts: If specified, and categorical = TRUE, will cut the resulting continuous output at the value of cuts
minor: Should n/2 minor factors be added (see Maccallum and Tucker, 1991)
fsmall: nvar/2 small factors are generated with loadings sampled from fsmall e.g. (-.2,0,.2)
Details
When constructing examples for reliability analysis, it is convenient to simulate congeneric data structures. These are the most simple of item structures, having just one factor. Mainly used for a discussion of reliability theory as well as factor score estimates.
Maccallum and Tucker (1991) suggest that factor models should include minor factors, that at not random error but unspecifed by the basic model. This option has been added in November, 2022.
The implied covariance matrix is just pattern %*% t(pattern).
Returns
model: The implied population correlation matrix if N=NULL or short=FALSE, otherwise the sample correlation matrix
pattern: The pattern matrix implied by the loadings and error variances
r: The sample correlation matrix for long output
observed: a matrix of test scores for n tests
latent: The latent trait and error scores
References
Revelle, W. (in prep) An introduction to psychometric theory with applications in R. To be published by Springer. (working draft available at https://personality-project.org/r/book/
MacCallum, R. C., & Tucker, L. R. (1991). Representing sources of error in the common-factormodel: Implications for theory and practice. Psychological Bulletin, 109(3), 502-511.
Author(s)
William Revelle
See Also
item.sim for other simulations, fa for an example of factor scores, irt.fa and polychoric for the treatment of item data with discrete values.
Examples
test <- sim.congeneric(c(.9,.8,.7,.6))#just the population matrixtest <- sim.congeneric(c(.9,.8,.7,.6),N=100)# a sample correlation matrixtest <- sim.congeneric(short=FALSE, N=100)round(cor(test$observed),2)# show a congeneric correlation matrixf1=fa(test$observed,scores=TRUE)round(cor(f1$scores,test$latent),2)#factor score estimates are correlated with but not equal to the factor scoresset.seed(42)#500 responses to 4 discrete itemsitems <- sim.congeneric(N=500,short=FALSE,low=-2,high=2,categorical=TRUE)d4 <- irt.fa(items$observed)#item response analysis of congeneric measures