pfacSpectra2D {ChemoSpec2D} | R Documentation |
PARAFAC Analysis of a Spectra2D Object
Description
Carry out PARAFAC analysis of a Spectra2D
object.
Function parafac
from multiway is used.
For large data sets, computational time may be long enough that
it might desirable to run in batch mode and possibly use parallel processing.
Usage
pfacSpectra2D(spectra, parallel = FALSE, setup = FALSE, nfac = 2, ...)
Arguments
spectra |
An object of S3 class |
parallel |
Logical. Should parallel processing be used?
Unless you love waiting, you should use parallel processing for larger data sets.
If you are working on a shared machine and/or another process (created by you or
another user) might also try to access all or some of the cores in your CPU,
you should be careful to avoid hogging the cores.
|
setup |
Logical. If |
nfac |
Integer. The number of factors/components to compute. |
... |
Additional parameters to be passed to function |
Value
An object of class pfac
and parafac
, modified to include a list
element called $method
which is parafac
.
Warning
To get reproducible results you will need to set.seed()
. See the example.
Author(s)
Bryan A. Hanson, DePauw University.
References
R. Bro "PARAFAC. Tutorial and applications" Chemometrics and Intelligent Laboratory Systems vol. 38 pgs. 149-171 (1997).
A. Smilde, R. Bro and P. Geladi "Multi-way Analysis: Applications in the Chemical Sciences" Wiley (2004).
See Also
For other data reduction methods for Spectra2D
objects, see
miaSpectra2D
and popSpectra2D
.
Examples
library("ggplot2")
data(MUD1)
set.seed(123)
res <- pfacSpectra2D(MUD1, parallel = FALSE, nfac = 2)
# plotScores uses ggplot2 graphics
p1 <- plotScores(MUD1, res, leg.loc = "topright", ellipse = "cls")
p1 <- p1 + ggtitle("PARAFAC Score Plot")
p1
# plotLoadings2D uses base graphics
res1 <- plotLoadings2D(MUD1, res,
load_lvls = c(1, 5, 10, 15, 25),
main = "PARAFAC Comp. 1 Loadings")
res2 <- plotLoadings2D(MUD1, res,
load_lvls = c(1, 5, 10, 15, 25),
ref = 2, ref_lvls = seq(5, 35, 5),
ref_cols = rep("black", 7),
main = "PARAFAC Comp. 1 Loadings + Ref. Spectrum")
# Selection of loading matrix levels can be aided by the following
# Use res1$names to find the index of the loadings
inspectLvls(res1,
which = 11, ylim = c(0, 50),
main = "Histogram of Loadings Matrix")