この節の作者: Ravi Selker, Jonathon Love, Damian Dropmann

Confirmatory Factor Analysis

(cfa)

Description

Confirmatory Factor Analysis

Usage

cfa(
  data,
  factors = list(list(label = "Factor 1", vars = list())),
  resCov,
  miss = "fiml",
  constrain = "facVar",
  estTest = TRUE,
  ci = FALSE,
  ciWidth = 95,
  stdEst = FALSE,
  factCovEst = TRUE,
  factInterceptEst = FALSE,
  resCovEst = FALSE,
  resInterceptEst = FALSE,
  fitMeasures = list("cfi", "tli", "rmsea"),
  modelTest = TRUE,
  pathDiagram = FALSE,
  corRes = FALSE,
  hlCorRes = 0.1,
  mi = FALSE,
  hlMI = 3
)

Arguments

data the data as a data frame
factors a list containing named lists that define the label of the factor and the vars that belong to that factor
resCov a list of lists specifying the residual covariances that need to be estimated
miss 'listwise' or 'fiml', how to handle missing values; 'listwise' excludes a row from all analyses if one of its entries is missing, 'fiml' uses a full information maximum likelihood method to estimate the model.
constrain 'facVar' or 'facInd', how to contrain the model; 'facVar' fixes the factor variances to one, 'facInd' fixes each factor to the scale of its first indicator.
estTest TRUE (default) or FALSE, provide 'Z' and 'p' values for the model estimates
ci TRUE or FALSE (default), provide a confidence interval for the model estimates
ciWidth a number between 50 and 99.9 (default: 95) specifying the confidence interval width that is used as 'ci'
stdEst TRUE or FALSE (default), provide a standardized estimate for the model estimates
factCovEst TRUE (default) or FALSE, provide estimates for the factor (co)variances
factInterceptEst TRUE or FALSE (default), provide estimates for the factor intercepts
resCovEst TRUE (default) or FALSE, provide estimates for the residual (co)variances
resInterceptEst TRUE or FALSE (default), provide estimates for the residual intercepts
fitMeasures one or more of 'cfi', 'tli', 'srmr', 'rmsea', 'aic', or 'bic'; use CFI, TLI, SRMR, RMSEA + 90 measures, respectively
modelTest TRUE (default) or FALSE, provide a chi-square test for exact fit that compares the model with the perfect fitting model
pathDiagram TRUE or FALSE (default), provide a path diagram of the model
corRes TRUE or FALSE (default), provide the residuals for the observed correlation matrix (i.e., the difference between the expected correlation matrix and the observed correlation matrix)
hlCorRes a number (default: 0.1), highlight values in the 'corRes' table above this value
mi TRUE or FALSE (default), provide modification indices for the parameters not included in the model
hlMI a number (default: 3), highlight values in the 'modIndices' tables above this value

Output

A results object containing:

results$factorLoadings a table containing the factor loadings
results$factorEst$factorCov a table containing factor covariances estimates
results$factorEst$factorIntercept a table containing factor intercept estimates
results$resEst$resCov a table containing residual covariances estimates
results$resEst$resIntercept a table containing residual intercept estimates
results$modelFit$test a table containing the chi-square test for exact fit
results$modelFit$fitMeasures a table containing fit measures
results$modelPerformance$corRes a table containing residuals for the observed correlation matrix
results$modelPerformance$modIndices a group
results$pathDiagram an image containing the model path diagram
results$modelSyntax the lavaan syntax used to fit the model

Tables can be converted to data frames with asDF or as.data.frame(). For example:

results$factorLoadings$asDF

as.data.frame(results$factorLoadings)

Examples

data <- lavaan::HolzingerSwineford1939

jmv::cfa(
    data = data,
    factors = list(
        list(label="Visual", vars=c("x1", "x2", "x3")),
        list(label="Textual", vars=c("x4", "x5", "x6")),
        list(label="Speed", vars=c("x7", "x8", "x9"))),
    resCov = NULL)

#
#  CONFIRMATORY FACTOR ANALYSIS
#
#  Factor Loadings
#  -----------------------------------------------------------------
#    Factor     Indicator    Estimate    SE        Z        p
#  -----------------------------------------------------------------
#    Visual     x1              0.900    0.0832    10.81    < .001
#               x2              0.498    0.0808     6.16    < .001
#               x3              0.656    0.0776     8.46    < .001
#    Textual    x4              0.990    0.0567    17.46    < .001
#               x5              1.102    0.0626    17.60    < .001
#               x6              0.917    0.0538    17.05    < .001
#    Speed      x7              0.619    0.0743     8.34    < .001
#               x8              0.731    0.0755     9.68    < .001
#               x9              0.670    0.0775     8.64    < .001
#  -----------------------------------------------------------------
#
#
#  FACTOR ESTIMATES
#
#  Factor Covariances
#  --------------------------------------------------------------
#                          Estimate    SE        Z       p
#  --------------------------------------------------------------
#    Visual     Visual      1.000 a
#               Textual     0.459      0.0635    7.22    < .001
#               Speed       0.471      0.0862    5.46    < .001
#    Textual    Textual     1.000 a
#               Speed       0.283      0.0715    3.96    < .001
#    Speed      Speed       1.000 a
#  --------------------------------------------------------------
#    a fixed parameter
#
#
#  MODEL FIT
#
#  Test for Exact Fit
#  ------------------------
#    X²      df    p
#  ------------------------
#    85.3    24    < .001
#  ------------------------
#
#
#  Fit Measures
#  -----------------------------------------------
#    CFI      TLI      RMSEA     Lower     Upper
#  -----------------------------------------------
#    0.931    0.896    0.0921    0.0714    0.114
#  -----------------------------------------------
#