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
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
An object of class
modified to include a character string (
$method) describing the
pre-processing carried out and the type of PCA performed.
pcaDiagplot. The number of
principal components to include.
significance criteria to use as a cutoff.
A character string, indicating whether to plot the score
distances or orthogonal distances, or both. Options are
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
A data frame or list containing the data plotted. Assign the value and run
names() on it to see what it contains. Side effect is a plot.
The plot is displayed, and a
ggplot2 plot object is returned if the
value is assigned. The plot can be modified in the usual
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
OD and once specifying
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
# 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