R: Empirical Kaiser criterion

efa.ekc {semTools} | R Documentation

## Empirical Kaiser criterion

### Description

Identify the number of factors to extract based on the Empirical Kaiser Criterion (EKC). The analysis can be run on a `data.frame` or data `matrix` (`data`), or on a correlation or covariance matrix (`sample.cov`) and the sample size (`sample.nobs`). A `data.frame` is returned with two columns: the eigenvalues from your data or covariance matrix and the reference eigenvalues. The number of factors suggested by the Empirical Kaiser Criterion (i.e. the sample eigenvalues greater than the reference eigenvalues), and the number of factors suggested by the original Kaiser Criterion (i.e. sample eigenvalues > 1) is printed above the output.

### Usage

    efa.ekc(data = NULL, sample.cov = NULL, sample.nobs = NULL,
      missing = "default", ordered = NULL, plot = TRUE)

### Arguments

`data` | A `data.frame` or data `matrix` containing columns of variables to be factor-analyzed.
`sample.cov` | A covariance or correlation matrix can be used, instead of `data`, to estimate the eigenvalues.
`sample.nobs` | Number of observations (i.e. sample size) if `is.null(data)` and `sample.cov` is used.
`missing` | If "listwise", cases with missing values are removed listwise from the data frame. If "direct" or "ml" or "fiml" and the estimator is maximum likelihood, an EM algorithm is used to estimate the unrestricted covariance matrix (and mean vector). If "pairwise", pairwise deletion is used. If "default", the value is set depending on the estimator and the mimic option (see details in lavCor).
`ordered` | Character vector. Only used if object is a `data.frame`. Treat these variables as ordered (ordinal) variables. Importantly, all other variables will be treated as numeric (unless `is.ordered == TRUE` in `data`). (see also lavCor)
`plot` | logical. Whether to print a scree plot comparing the sample eigenvalues with the reference eigenvalues.

### Value

A `data.frame` showing the sample and reference eigenvalues.

The number of factors suggested by the Empirical Kaiser Criterion (i.e. the sample eigenvalues greater than the reference eigenvalues) is returned as an attribute (see Examples).

The number of factors suggested by the original Kaiser Criterion (i.e. sample eigenvalues > 1) is also printed as a header to the `data.frame`

### Author(s)

Ylenio Longo (University of Nottingham; yleniolongo@gmail.com)

Terrence D. Jorgensen (University of Amsterdam; TJorgensen314@gmail.com)

### References

Braeken, J., & van Assen, M. A. L. M. (in press). An empirical Kaiser criterion. Psychological Methods, 22(3), 450–466. doi:10.1037/met0000074

### Examples

    ## Simulate data with 3 factors
    model <- '
      f1 =~ .3*x1 + .5*x2 + .4*x3
      f2 =~ .3*x4 + .5*x5 + .4*x6
      f3 =~ .3*x7 + .5*x8 + .4*x9
    '
    dat <- simulateData(model, seed = 123)
    ## save summary statistics
    myCovMat <- cov(dat)
    myCorMat <- cor(dat)
    N <- nrow(dat)

    ## Run the EKC function
    (out <- efa.ekc(dat))

    ## To extract the recommended number of factors using the EKC:
    attr(out, "nfactors")

    ## If you do not have raw data, you can use summary statistics
    (x1 <- efa.ekc(sample.cov = myCovMat, sample.nobs = N, plot = FALSE))
    (x2 <- efa.ekc(sample.cov = myCorMat, sample.nobs = N, plot = FALSE))

[Package semTools version 0.5-0 Index]