Learn R Programming

MoEClust (version 1.6.0)

MoE_entropy: Entropy of a fitted MoEClust model

Description

Calculates the normalised entropy of a fitted MoEClust model.

Usage

MoE_entropy(x,
            group = FALSE)

Value

When group is FALSE, a single number, given by \(1-H\), in the range [0,1], such that larger values indicate clearer separation of the clusters. Otherwise, a vector of length G containing the per-component averages of the observation-specific entries is returned.

Arguments

x

An object of class "MoEClust" generated by MoE_clust, or an object of class "MoECompare" generated by MoE_compare. Models with gating and/or expert covariates and/or a noise component are facilitated here too.

group

A logical (defaults to FALSE) indicating whether component-specific average entropies should be returned instead.

Author

Keefe Murphy - <keefe.murphy@mu.ie>

Details

When group is FALSE, this function calculates the normalised entropy via $$H=-\frac{1}{n\log(G)}\sum_{i=1}^n\sum_{g=1}^G\hat{z}_{ig}\log(\hat{z}_{ig})$$, where \(n\) and \(G\) are the sample size and number of components, respectively, and \(\hat{z}_{ig}\) is the estimated posterior probability at convergence that observation \(i\) belongs to component \(g\). Note that G=x$G for models without a noise component and G=x$G + 1 for models with a noise component.

When group is TRUE, $$H_i=-\frac{1}{\log(G)}\sum_{g=1}^G\hat{z}_{ig}\log(\hat{z}_{ig})$$ is computed for each observation and averaged according to the MAP classification.

References

Murphy, K. and Murphy, T. B. (2020). Gaussian parsimonious clustering models with covariates and a noise component. Advances in Data Analysis and Classification, 14(2): 293-325. <tools:::Rd_expr_doi("10.1007/s11634-019-00373-8")>.

See Also

MoE_clust, MoE_control, MoE_AvePP

Examples

Run this code
data(ais)
res <- MoE_clust(ais[,3:7], G=3, gating= ~ BMI + sex, 
                 modelNames="EEE", network.data=ais)

# Calculate the normalised entropy
MoE_entropy(res)

# Calculate the normalised entropy per cluster
MoE_entropy(res, group=TRUE)

Run the code above in your browser using DataLab