View source: R/generateStructure.r
| generateStructure | R Documentation |
The generateStructure function returns a mjc factor structure matrix.
The number of variables per major factor pmjc is equal for each factor.
The argument pmjc must be divisible by nVar.
The arguments are strongly inspired from Zick and Velicer (1986, p. 435-436) methodology.
generateStructure(var, mjc, pmjc, loadings, unique)
var |
numeric: number of variables |
mjc |
numeric: number of major factors (factors with practical significance) |
pmjc |
numeric: number of variables that load significantly on each major factor |
loadings |
numeric: loadings on the significant variables on each major factor |
unique |
numeric: loadings on the non significant variables on each major factor |
values numeric matrix: factor structure
Gilles Raiche
Centre sur les Applications des Modeles de
Reponses aux Items (CAMRI)
Universite du Quebec a Montreal
raiche.gilles@uqam.ca
David Magis
Departement de mathematiques
Universite de Liege
David.Magis@ulg.ac.be
Raiche, G., Walls, T. A., Magis, D., Riopel, M. and Blais, J.-G. (2013). Non-graphical solutions for Cattell's scree test. Methodology, 9(1), 23-29.
Zwick, W. R. and Velicer, W. F. (1986). Comparison of five rules for determining the number of components to retain. Psychological Bulletin, 99, 432-442.
principalComponents, iterativePrincipalAxis, rRecovery
# .......................................................
# Example inspired from Zwick and Velicer (1986, table 2, p. 437)
## ...................................................................
unique=0.2; loadings=0.5
zwick1 <- generateStructure(var=36, mjc=6, pmjc= 6, loadings=loadings,
unique=unique)
zwick2 <- generateStructure(var=36, mjc=3, pmjc=12, loadings=loadings,
unique=unique)
zwick3 <- generateStructure(var=72, mjc=9, pmjc= 8, loadings=loadings,
unique=unique)
zwick4 <- generateStructure(var=72, mjc=6, pmjc=12, loadings=loadings,
unique=unique)
sat=0.8
## ...................................................................
zwick5 <- generateStructure(var=36, mjc=6, pmjc= 6, loadings=loadings,
unique=unique)
zwick6 <- generateStructure(var=36, mjc=3, pmjc=12, loadings=loadings,
unique=unique)
zwick7 <- generateStructure(var=72, mjc=9, pmjc= 8, loadings=loadings,
unique=unique)
zwick8 <- generateStructure(var=72, mjc=6, pmjc=12, loadings=loadings,
unique=unique)
## ...................................................................
# nsubjects <- c(72, 144, 180, 360)
# require(psych)
# Produce an usual correlation matrix from a congeneric model
nsubjects <- 72
mzwick5 <- psych::sim.structure(fx=as.matrix(zwick5), n=nsubjects)
mzwick5$r
# Factor analysis: recovery of the factor structure
iterativePrincipalAxis(mzwick5$model, nFactors=6,
communalities="ginv")$loadings
iterativePrincipalAxis(mzwick5$r , nFactors=6,
communalities="ginv")$loadings
factanal(covmat=mzwick5$model, factors=6)
factanal(covmat=mzwick5$r , factors=6)
# Number of components to retain
eigenvalues <- eigen(mzwick5$r)$values
aparallel <- parallel(var = length(eigenvalues),
subject = nsubjects,
rep = 30,
quantile = 0.95,
model="components")$eigen$qevpea
results <- nScree(x = eigenvalues,
aparallel = aparallel)
results$Components
plotnScree(results)
# Number of factors to retain
eigenvalues.fa <- eigen(corFA(mzwick5$r))$values
aparallel.fa <- parallel(var = length(eigenvalues.fa),
subject = nsubjects,
rep = 30,
quantile = 0.95,
model="factors")$eigen$qevpea
results.fa <- nScree(x = eigenvalues.fa,
aparallel = aparallel.fa,
model ="factors")
results.fa$Components
plotnScree(results.fa)
# ......................................................
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.