R: FlexMix Clustering Demo Driver

FLXMCmvnorm {flexmix} | R Documentation

## FlexMix Clustering Demo Driver

### Description

These are demo drivers for `flexmix` implementing model-based clustering of Gaussian data.

### Usage

    FLXMCmvnorm(formula = . ~ ., diagonal = TRUE)
    FLXMCnorm1(formula = . ~ .)

### Arguments

`formula` | A formula which is interpreted relative to the formula specified in the call to `flexmix` using `update.formula`. Only the left-hand side (response) of the formula is used. Default is to use the original `flexmix` model formula.
`diagonal` | If `TRUE`, then the covariance matrix of the components is restricted to diagonal matrices.

### Details

This is mostly meant as a demo for FlexMix driver programming, you should also look at package mclust for real applications. `FLXMCmvnorm` clusters multivariate data, `FLXMCnorm1` univariate data. In the latter case smart initialization is important, see the example below.

### Value

`FLXMCmvnorm` returns an object of class `FLXMC`.

### Author(s)

Friedrich Leisch and Bettina Gruen

### References

Friedrich Leisch. FlexMix: A general framework for finite mixture models and latent class regression in R. Journal of Statistical Software, 11(8), 2004. doi:10.18637/jss.v011.i08

### See Also

`flexmix`

### Examples

    data("Nclus", package = "flexmix")

    require("MASS")
    eqscplot(Nclus)

    ## This model is wrong (one component has a non-diagonal cov matrix)
    ex1 <- flexmix(Nclus ~ 1, k = 4, model = FLXMCmvnorm())
    print(ex1)
    plotEll(ex1, Nclus)

    ## True model, wrong number of components
    ex2 <- flexmix(Nclus ~ 1, k = 6, model = FLXMCmvnorm(diagonal = FALSE))
    print(ex2)

    plotEll(ex2, Nclus)

    ## Get parameters of first component
    parameters(ex2, component = 1)

    ## Have a look at the posterior probabilies of 10 random observations
    ok <- sample(1:nrow(Nclus), 10)
    p  <- posterior(ex2)[ok, ]
    p

    ## The following two should be the same
    max.col(p)
    clusters(ex2)[ok]

    ## Now try the univariate case
    plot(density(Nclus[, 1]))

    ex3 <- flexmix(Nclus[, 1] ~ 1, cluster = cut(Nclus[, 1], 3),
                   model = FLXMCnorm1())
    ex3
    parameters(ex3)

[Package flexmix version 2.3-14 Index]