This function conducts an mclust analysis of the PCA results of a Spectra object and displays the results in 3D. Classical or robust confidence ellipses can be added if desired. Improperly classified data points can be marked. The interactive plot is made via plotly and appears in a browser window. Note that the confidence ellipses computed here are generated independently of the Mclust results - they do not correspond to the ellipses seen in 2D plots from Mclust.

mclust3dSpectra(
  spectra,
  pca,
  pcs = 1:3,
  ellipse = TRUE,
  rob = FALSE,
  cl = 0.95,
  frac.pts.used = 0.8,
  truth = NULL,
  ...
)

Arguments

spectra

An object of S3 class Spectra().

pca

An object of class prcomp.

pcs

An integer vector describing which PCs to use.

ellipse

Logical indicating if confidence ellipses should be drawn.

rob

Logical; if ellipse = TRUE, indicates that robust confidence ellipses should be drawn. If FALSE, classical confidence ellipses are drawn.

cl

A number indicating the confidence interval for the ellipse.

frac.pts.used

If ellipse = TRUE and rob = TRUE, a number indicating the fraction of the data points to be considered "good" and thus used to compute the robust confidence ellipse.

truth

A character vector indicating the known group membership for reach row of the PC scores. Generally this would be spectra$groups.

...

Arguments to be passed to mclust.

Value

The mclust model is returned invisibly, and a plot is produced.

See also

Mclust for background on the method. Additional documentation at https://bryanhanson.github.io/ChemoSpec/

Author

Bryan A. Hanson (DePauw University).

Examples

if (FALSE) {
require(mclust)
data(metMUD1)
pca <- c_pcaSpectra(metMUD1)
mclust3dSpectra(metMUD1, pca)

# show mis-classified points
mclust3dSpectra(metMUD1, pca, truth = metMUD1$groups)
}