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.