popSpectra2D {ChemoSpec2D}R Documentation

Plain Old PCA (POP) of Spectra2D Objects

Description

This function unstacks a Spectra2D object and conducts IRLBA PCA on it. To unstack, each F1 slice (parallel to F2) is concatenated one after the other so that each 2D spectrum becomes a 1D spectrum. The length of this spectrum will be equal to the length of the F2 dimension times the length of the F1 dimension. PCA is performed on the collection of 1D spectra (one spectrum from each 2D spectrum). The IRLBA algorithm is used because the resulting matrix (n samples in rows x F1 * F2 columns) can be very large, and other PCA algorithms can struggle.

Usage

popSpectra2D(spectra, n = 3, choice = "noscale", ...)

Arguments

spectra

An object of S3 class Spectra2D.

n

Integer. The number of components desired.

choice

A character string indicating the choice of scaling. One of c("noscale", "autoscale", "Pareto").

...

Other parameters to be passed to prcomp_irlba.

Details

The scale choice autoscale scales the columns by their standard deviation. Pareto scales by the square root of the standard deviation. "autoscale" is called "standard normal variate" or "correlation matrix PCA" in some literature. This action is performed on the unstacked matrix, as is centering.

Value

An object of classes prcomp, pop and computed_via_irlba modified to include a list element called $method, a character string describing the pre-processing carried out and the type of PCA performed (used to annotate plots).

Author(s)

Bryan A. Hanson, DePauw University.

References

J. Baglama and L. Reichel, "Augmented Implicitly Restarted Lanczos Bidiagonalization Methods" SIAM J. Sci. Comput. (2005).

See Also

For other data reduction methods for Spectra2D objects, see miaSpectra2D and pfacSpectra2D.

Examples

library("ggplot2")
data(MUD1)
res <- popSpectra2D(MUD1)

# plotScores & plotScree use ggplot2 graphics

p1 <- plotScores(MUD1, res, ellipse = "cls")
p1 <- p1 + ggtitle("POP Scores")
p1

p2 <- plotScree(res)
p2

# plotLoadings2D uses base graphics

MUD1a <- plotLoadings2D(MUD1, res,
  load_lvls = c(-0.2, -0.1, 0.1, 0.2),
  load_cols = rep("black", 4), main = "POP Comp. 1 Loadings")


[Package ChemoSpec2D version 0.5.0 Index]