
Get Scores from Principal Component or Factor Analysis (PCA/FA)
Source:R/utils_pca_efa.R
get_scores.Rdget_scores() takes n_items amount of items that load the most
(either by loading cutoff or number) on a component, and then computes their
average. This results in a sum score for each component from the PCA/FA,
which is on the same scale as the original, single items that were used to
compute the PCA/FA.
Arguments
- x
An object returned by
principal_components()orfactor_analysis().- n_items
Number of required (i.e. non-missing) items to build the sum score for an observation. If an observation has more missing values than
n_itemsin all items of a (sub) scale,NAis returned for that observation, else, the sum score of all (sub) items is calculated. IfNULL, the value is chosen to match half of the number of columns in a data frame, i.e. no more than 50% missing values are allowed.
Value
A data frame with subscales, which are average sum scores for all items from each component or factor.
Details
get_scores() takes the results from principal_components() or
factor_analysis() and extracts the variables for each component found by
the PCA/FA. Then, for each of these "subscales", row means are calculated
(which equals adding up the single items and dividing by the number of
items). This results in a sum score for each component from the PCA/FA, which
is on the same scale as the original, single items that were used to compute
the PCA/FA.
See also
Functions to carry out a PCA (principal_components()) or
a FA (factor_analysis()). factor_scores() extracts factor scores
from an FA object.
Examples
if (FALSE) { # insight::check_if_installed("psych", quietly = TRUE)
pca <- principal_components(mtcars[, 1:7], n = 2, rotation = "varimax")
# PCA extracted two components
pca
# assignment of items to each component
closest_component(pca)
# now we want to have sum scores for each component
get_scores(pca)
# compare to manually computed sum score for 2nd component, which
# consists of items "hp" and "qsec"
(mtcars$hp + mtcars$qsec) / 2
}