The scree plot was originally introduced by Cattell (1966) to perform the scree test. In a scree plot, the eigenvalues of the factors / components are plotted against the index of the factors / components, ordered from 1 to N factors components, hence from largest to smallest eigenvalue. According to the scree test, the number of factors / components to retain is the number of factors / components to the left of the "elbow" (where the curve starts to level off) in the scree plot.
efa_scree(
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,
...
)An object of class efa_retention (see print.efa_retention() and
plot.efa_retention() for the print and plot methods). The scree plot is a
visual criterion, so it returns no numeric suggestion. Its main fields are:
A list with one record per requested eigenvalue type, each holding the eigenvalues used for the scree plot.
A list of the settings used.
data.frame or matrix. Dataframe or matrix of raw data or matrix with correlations.
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 c("PCA", "SMC", "EFA"), i.e. all three; "EFA" is the
only one that fits a model.
character. Passed to stats::cor() if raw
data is given as input. Default is "pairwise.complete.obs".
character. Correlation computed from raw data: "pearson",
"spearman", or "kendall" (passed to stats::cor()), or "poly" /
"tetra" for polychoric / tetrachoric correlations of ordinal / binary data
(a two-step estimator).
Default is "pearson".
numeric. Number of factors to extract if "EFA" is included in
eigen_type. Default is 1.
an estimate_control() object with the estimation settings for the
efa_fit() fit that provides the communalities when "EFA" is included in eigen_type.
NULL (default) uses the efa_fit() defaults. The fit is unrotated, so no rotation settings
apply.
Additional arguments passed to efa_fit(). For example,
estimator, to change the estimator (PAF is default). The estimation tuning knobs are not
passed here; they live in estimate_control, and the standard-error arguments (se,
b_boot, ci, seed) are not accepted because the fit is an internal step that keeps
only its communalities.
As the scree test requires visual examination, the test has been especially criticized for its subjectivity and with this low inter-rater reliability. Moreover, a scree plot can be ambiguous if there are either no clear "elbow" or multiple "elbows", making it difficult to judge just where the eigenvalues do level off. Finally, the scree test has also been found to be less accurate than other factor retention criteria. For all these reasons, the scree test has been recommended against, at least for exclusive use as a factor retention criterion (Zwick & Velicer, 1986)
The efa_scree function can also be called together with other factor
retention criteria in the efa_retain() function.
efa_retain() as a wrapper function for this and the other factor
retention criteria.
Other factor retention criteria:
efa_cd(),
efa_ekc(),
efa_hull(),
efa_kgc(),
efa_map(),
efa_nest(),
efa_parallel(),
efa_retain(),
efa_smt()
efa_scree(test_models$baseline$cormat, eigen_type = c("PCA", "SMC"))
Run the code above in your browser using DataLab