R/factorLoadingHeatmap.R
factorLoadingHeatmap.Rd
This function uses the diamondPlot()
to visualise the results of
a factor analyses. Because the factor loadings computed in factor analysis
are point estimates, they may vary from sample to sample. The factor
loadings for any given sample are usually not relevant; samples are but
means to study populations, and so, researchers are usually interested in
population values for the factor loadings. However, tables with lots of
loadings can quickly become confusing and intimidating. This function aims
to facilitate working with and interpreting factor analysis based on
confidence intervals by visualising the factor loadings and their confidence
intervals.
factorLoadingHeatmap(
fa,
xlab = "Factor Loading",
colors = viridisPalette(max(2, fa$factors)),
labels = NULL,
showLoadings = FALSE,
heatmap = FALSE,
theme = ggplot2::theme_minimal(),
sortAlphabetically = FALSE,
digits = 2,
labs = list(title = NULL, x = NULL, y = NULL),
themeArgs = list(panel.grid = ggplot2::element_blank(), legend.position = "none",
axis.text.x = ggplot2::element_blank()),
...
)
The object produced by the psych::fa()
function from the
psych::psych package. It is important that the n.iter
argument
of psych::fa()
was set to a realistic number, because otherwise, no
confidence intervals will be available.
The label for the x axis.
The colors used for the factors. The default uses the discrete
viridis
palette, which is optimized for perceptual uniformity,
maintaining its properties when printed in grayscale, and designed for
colourblind readers.
The labels to use for the items (on the Y axis).
Whether to show the factor loadings or not.
Whether to produce a heatmap or use diamond plots.
The ggplot2 theme to use.
Whether to sort the items alphabetically.
Number of digits to round to.
The labels to pass to ggplot2.
Additional theme arguments to pass to ggplot2.
Additional arguments will be passed to
ggDiamondLayer()
. This can be used to set, for example, the
transparency (alpha value) of the diamonds to a lower value using e.g.
alpha=.5
.
A ggplot2::ggplot()
plot with several
ggDiamondLayer()
s is returned.
if (FALSE) {
### (Not run during testing because it takes too long and
### may generate warnings because of the bootstrapping of
### the confidence intervals)
factorLoadingHeatmap(psych::fa(psych::Bechtoldt,
nfactors=2,
n.iter=50,
n.obs=200));
### And using a lower alpha value for the diamonds to
### make them more transparent
factorLoadingHeatmap(psych::fa(psych::Bechtoldt,
nfactors=2,
n.iter=50,
n.obs=200),
alpha=.5,
size=1);
}