generateStructure function

Generate a Factor Structure Matrix

Generate a Factor Structure Matrix

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)

Arguments

  • 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

Returns

values numeric matrix: factor structure

Examples

# ....................................................... # 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) # ......................................................

References

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.

See Also

principalComponents, iterativePrincipalAxis, rRecovery

Author(s)

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

  • Maintainer: Gilles Raiche
  • License: GPL (>= 3.5.0)
  • Last published: 2022-10-10

Useful links