% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/efa_kgc.R
\name{efa_kgc}
\alias{efa_kgc}
\title{Kaiser-Guttman criterion}
\source{
Auerswald, M., & Moshagen, M. (2019). How to determine the number of
factors to retain in exploratory factor analysis: A comparison of extraction
methods under realistic conditions. Psychological Methods, 24(4), 468–491.
https://doi.org/10.1037/met0000200

Guttman, L. (1954). Some necessary conditions for common-factor analysis.
Psychometrika, 19, 149 –161. https://doi.org/10.1007/BF02289162

Kaiser, H. F. (1960). The application of electronic computers to factor
analysis. Educational and Psychological Measurement, 20, 141–151.
https://doi.org/10.1177/001316446002000116

Zwick, W. R., & Velicer, W. F. (1986). Comparison of five rules for
determining the number of components to retain. Psychological Bulletin, 99,
432–442. https://doi.org/10.1037/0033-2909.99.3.432
}
\usage{
efa_kgc(
  x,
  eigen_type = c("PCA", "SMC", "EFA"),
  use = c("pairwise.complete.obs", "all.obs", "complete.obs", "everything",
    "na.or.complete"),
  cor_method = c("pearson", "spearman", "kendall", "poly", "tetra"),
  n_factors = 1,
  estimate_control = NULL,
  ...
)
}
\arguments{
\item{x}{data.frame or matrix. Dataframe or matrix of raw data or matrix with
correlations.}

\item{eigen_type}{character. On what the eigenvalues should be found. Can be
either "PCA", "SMC", or "EFA", or some combination of them. If using "PCA",
the diagonal values of the correlation matrices are left to be 1. If using
"SMC", the diagonal of the
correlation matrices is replaced by the squared multiple correlations (SMCs)
of the indicators. If using "EFA", eigenvalues are found on the correlation
matrices with the final communalities of an exploratory factor analysis
solution (default is principal axis factoring extracting 1 factor) as
diagonal. Default is \code{c("PCA", "SMC", "EFA")}, i.e. all three; \code{"EFA"} is the
only one that fits a model.}

\item{use}{character. Passed to \code{\link[stats:cor]{stats::cor()}} if raw
data is given as input. Default is "pairwise.complete.obs".}

\item{cor_method}{character. Correlation computed from raw data: \code{"pearson"},
\code{"spearman"}, or \code{"kendall"} (passed to \code{\link[stats:cor]{stats::cor()}}), or \code{"poly"} /
\code{"tetra"} for polychoric / tetrachoric correlations of ordinal / binary data
(a two-step estimator).
Default is "pearson".}

\item{n_factors}{numeric. Number of factors to extract if "EFA" is included in
\code{eigen_type}. Default is 1.}

\item{estimate_control}{an \code{\link[=estimate_control]{estimate_control()}} object with the estimation settings for the
\code{\link[=efa_fit]{efa_fit()}} fit that provides the communalities when \code{"EFA"} is included in \code{eigen_type}.
\code{NULL} (default) uses the \code{\link[=efa_fit]{efa_fit()}} defaults. The fit is unrotated, so no rotation settings
apply.}

\item{...}{Additional arguments passed to \code{\link[=efa_fit]{efa_fit()}}. For example,
\code{estimator}, to change the estimator (PAF is default). The estimation tuning knobs are not
passed here; they live in \code{estimate_control}, and the standard-error arguments (\code{se},
\code{b_boot}, \code{ci}, \code{seed}) are not accepted because the fit is an internal step that keeps
only its communalities.}
}
\value{
An object of class \code{efa_retention} (see \code{\link[=print.efa_retention]{print.efa_retention()}} and
\code{\link[=plot.efa_retention]{plot.efa_retention()}} for the print and plot methods). Its main fields are:
\item{n_factors}{A named numeric vector with the suggested number of factors
for each requested eigenvalue type (\code{"PCA"}, \code{"SMC"}, and/or \code{"EFA"}).}
\item{results}{A list with one record per eigenvalue type, each holding the
eigenvalues and the retained solution used for printing and plotting.}
\item{settings}{A list of the settings used.}
}
\description{
Probably the most popular factor retention criterion. Kaiser and Guttman suggested
to retain as many factors as there are sample eigenvalues greater than 1.
This is why the criterion is also known as eigenvalues-greater-than-one rule.
}
\details{
Originally, the Kaiser-Guttman criterion was intended for the use
with principal components, hence with eigenvalues derived from the original
correlation matrix. This can be done here by setting \code{eigen_type} to
"PCA". However, it is well-known that this criterion is often inaccurate and
that it tends to overestimate the number of factors, especially for unidimensional
or orthogonal factor structures (e.g., Zwick & Velicer, 1986).

The criterion's inaccuracy in these cases is somewhat addressed if it is
applied on the correlation matrix with communalities in the diagonal, either
initial communalities estimated from SMCs (done setting \code{eigen_type} to
"SMC") or final communality estimates from an EFA (done setting \code{eigen_type}
to "EFA"; see Auerswald & Moshagen, 2019). However, although this variant
of the KGC is more accurate in some cases compared to the traditional KGC, it
is at the same time less accurate than the PCA-variant in other cases, and it
is still often less accurate than several of the other criteria available here,
such as parallel analysis (\code{\link[=efa_parallel]{efa_parallel()}}), the Hull method (\code{\link[=efa_hull]{efa_hull()}}),
the empirical Kaiser criterion (\code{\link[=efa_ekc]{efa_ekc()}}), or sequential \eqn{chi^2} model
tests (\code{\link[=efa_smt]{efa_smt()}}; see Auerswald & Moshagen, 2019). Which criteria are
informative depends on the data at hand, so rather than substituting one for
another, run several of them together and compare their suggestions.

The \code{efa_kgc} function can also be called together with other factor
retention criteria in the \code{\link[=efa_retain]{efa_retain()}} function.
}
\examples{
efa_kgc(test_models$baseline$cormat, eigen_type = c("PCA", "SMC"))
}
\seealso{
\code{\link[=efa_retain]{efa_retain()}} as a wrapper function for this and the other factor
retention criteria.

Other factor retention criteria:
\code{\link[=efa_cd]{efa_cd()}},
\code{\link[=efa_ekc]{efa_ekc()}},
\code{\link[=efa_hull]{efa_hull()}},
\code{\link[=efa_map]{efa_map()}},
\code{\link[=efa_nest]{efa_nest()}},
\code{\link[=efa_parallel]{efa_parallel()}},
\code{\link[=efa_retain]{efa_retain()}},
\code{\link[=efa_scree]{efa_scree()}},
\code{\link[=efa_smt]{efa_smt()}}
}
\concept{factor retention criteria}
