A function to carry diagnostics on the PCA results for a
Spectra
object. Basically a wrapper to Filzmoser's
pcaDiagplot
which colors everything according to
the scheme stored in the Spectra
object. Works with PCA
results of either class prcomp
or class princomp
. Works
with either classical or robust PCA results.
pcaDiag(
spectra,
pca,
pcs = 3,
quantile = 0.975,
plot = c("OD", "SD"),
use.sym = FALSE,
...
)
An object of S3 class Spectra()
.
An object of class prcomp
modified to include a character string ($method
) describing the
pre-processing carried out and the type of PCA performed.
As per pcaDiagplot
. The number of
principal components to include.
As per pcaDiagplot
. The
significance criteria to use as a cutoff.
A character string, indicating whether to plot the score
distances or orthogonal distances, or both. Options are c("OD",
"SD")
.
logical; if true, the color scheme is change to black and symbols are used for plotting.
Parameters to be passed to the plotting routines. Applies to base graphics only.
The returned value depends on the graphics option selected (see ChemoSpecUtils::GraphicsOptions()
).
base A data frame or list containing the data plotted. Assign the value and run str()
or names()
on it to see what it contains. Side effect is a plot.
ggplot2 The plot is displayed, and a ggplot2
plot object is returned if the value is assigned. The plot can be modified in the usual ggplot2
manner. If you want the plotted values, you can access them via the base graphics mode.
If both plots are desired, the output should be directed to a file rather
than the screen. Otherwise, the 2nd plot overwrites the 1st in the active
graphics window. Alternatively, just call the function twice, once
specifying OD
and once specifying SD
.
K. Varmuza and P. Filzmoser Introduction to Multivariate Statistical Analysis in Chemometrics, CRC Press, 2009.
pcaDiagplot
in package
chemometrics
for the underlying function. Additional documentation at
https://bryanhanson.github.io/ChemoSpec/
# This example assumes the graphics output is set to ggplot2 (see ?GraphicsOptions).
library("ggplot2")
data(SrE.IR)
pca <- c_pcaSpectra(SrE.IR, choice = "noscale")
p1 <- pcaDiag(SrE.IR, pca, pcs = 2, plot = "OD") + ggtitle("OD Plot")
p1
p2 <- pcaDiag(SrE.IR, pca, pcs = 2, plot = "SD") + ggtitle("SD Plot")
p2