R: Plotting method for MclustDA discriminant analysis

plot.MclustDA {mclust} | R Documentation

## Plotting method for MclustDA discriminant analysis

### Description

Plots for model-based mixture discriminant analysis results, such as scatterplot of training and test data, classification of train and test data, and errors.

### Usage

    ## S3 method for class 'MclustDA'
    plot(x, what = c("scatterplot", "classification", "train&test", "error"),
         newdata, newclass, dimens = NULL,
         symbols, colors, main = NULL, ...)

### Arguments

`x` | An object of class `'MclustDA'` resulting from a call to `MclustDA`.
`what` | A string specifying the type of graph requested. Available choices are: `"scatterplot"` = a plot of training data with points marked based on the known classification. Ellipses corresponding to covariances of mixture components are also drawn. `"classification"` = a plot of data with points marked on based the predicted classification; if `newdata` is provided then the test set is shown otherwise the training set. `"train&test"` = a plot of training and test data with points marked according to the type of set. `"error"` = a plot of training set (or test set if `newdata` and `newclass` are provided) with misclassified points marked. If not specified, in interactive sessions a menu of choices is proposed.
`newdata` | A data frame or matrix for test data.
`newclass` | A vector giving the class labels for the observations in the test data (if known).
`dimens` | A vector of integers giving the dimensions of the desired coordinate projections for multivariate data. The default is to take all the the available dimensions for plotting.
`symbols` | Either an integer or character vector assigning a plotting symbol to each unique class. Elements in `colors` correspond to classes in order of appearance in the sequence of observations (the order used by the function `factor`). The default is given by `mclust.options("classPlotSymbols")`.
`colors` | Either an integer or character vector assigning a color to each unique class in `classification`. Elements in `colors` correspond to classes in order of appearance in the sequence of observations (the order used by the function `factor`). The default is given by `mclust.options("classPlotColors")`.
`main` | A logical, a character string, or `NULL` (default) for the main title. If `NULL` or `FALSE` no title is added to a plot. If `TRUE` a default title is added identifying the type of plot drawn. If a character string is provided, this is used for the title.
`...` | further arguments passed to or from other methods.

### Details

For more flexibility in plotting, use `mclust1Dplot`, `mclust2Dplot`, `surfacePlot`, `coordProj`, or `randProj`.

### Author(s)

Luca Scrucca

### See Also

`MclustDA`, `surfacePlot`, `coordProj`, `randProj`

### Examples

    odd <- seq(from = 1, to = nrow(iris), by = 2)
    even <- odd + 1
    X.train <- iris[odd,-5]
    Class.train <- iris[odd,5]
    X.test <- iris[even,-5]
    Class.test <- iris[even,5]

    # common EEE covariance structure (which is essentially equivalent to linear discriminant analysis)
    irisMclustDA <- MclustDA(X.train, Class.train, modelType = "EDDA", modelNames = "EEE")
    summary(irisMclustDA, parameters = TRUE)
    summary(irisMclustDA, newdata = X.test, newclass = Class.test)

    # common covariance structure selected by BIC
    irisMclustDA <- MclustDA(X.train, Class.train, modelType = "EDDA")
    summary(irisMclustDA, parameters = TRUE)
    summary(irisMclustDA, newdata = X.test, newclass = Class.test)

    # general covariance structure selected by BIC
    irisMclustDA <- MclustDA(X.train, Class.train)
    summary(irisMclustDA, parameters = TRUE)
    summary(irisMclustDA, newdata = X.test, newclass = Class.test)

    plot(irisMclustDA)
    plot(irisMclustDA, dimens = 3:4)
    plot(irisMclustDA, dimens = 4)

    plot(irisMclustDA, what = "classification")
    plot(irisMclustDA, what = "classification", newdata = X.test)
    plot(irisMclustDA, what = "classification", dimens = 3:4)
    plot(irisMclustDA, what = "classification", newdata = X.test, dimens = 3:4)
    plot(irisMclustDA, what = "classification", dimens = 4)
    plot(irisMclustDA, what = "classification", dimens = 4, newdata = X.test)

    plot(irisMclustDA, what = "train&test", newdata = X.test)
    plot(irisMclustDA, what = "train&test", newdata = X.test, dimens = 3:4)
    plot(irisMclustDA, what = "train&test", newdata = X.test, dimens = 4)

    plot(irisMclustDA, what = "error")
    plot(irisMclustDA, what = "error", dimens = 3:4)
    plot(irisMclustDA, what = "error", dimens = 4)
    plot(irisMclustDA, what = "error", newdata = X.test, newclass = Class.test)
    plot(irisMclustDA, what = "error", newdata = X.test, newclass = Class.test, dimens = 3:4)
    plot(irisMclustDA, what = "error", newdata = X.test, newclass = Class.test, dimens = 4)

    # simulated 1D data
    n <- 250
    set.seed(1)
    triModal <- c(rnorm(n,-5), rnorm(n,0), rnorm(n,5))
    triClass <- c(rep(1,n), rep(2,n), rep(3,n))
    odd <- seq(from = 1, to = length(triModal), by = 2)
    even <- odd + 1
    triMclustDA <- MclustDA(triModal[odd], triClass[odd])
    summary(triMclustDA, parameters = TRUE)
    summary(triMclustDA, newdata = triModal[even], newclass = triClass[even])
    plot(triMclustDA)
    plot(triMclustDA, what = "classification")
    plot(triMclustDA, what = "classification", newdata = triModal[even])
    plot(triMclustDA, what = "train&test", newdata = triModal[even])
    plot(triMclustDA, what = "error")
    plot(triMclustDA, what = "error", newdata = triModal[even], newclass = triClass[even])

    # simulated 2D cross data
    data(cross)
    odd <- seq(from = 1, to = nrow(cross), by = 2)
    even <- odd + 1
    crossMclustDA <- MclustDA(cross[odd,-1], cross[odd,1])
    summary(crossMclustDA, parameters = TRUE)
    summary(crossMclustDA, newdata = cross[even,-1], newclass = cross[even,1])
    plot(crossMclustDA)
    plot(crossMclustDA, what = "classification")
    plot(crossMclustDA, what = "classification", newdata = cross[even,-1])
    plot(crossMclustDA, what = "train&test", newdata = cross[even,-1])
    plot(crossMclustDA, what = "error")
    plot(crossMclustDA, what = "error", newdata =cross[even,-1], newclass = cross[even,1])

[Package mclust version 5.4.9 Index]