Description Usage Arguments Value References Author(s) See Also Examples
Plot robust model-based clustering results: scatter plot with clustering information, optimization profiling, and cluster fit.
1 2 3 |
x |
Output from |
what |
The type of graph. It can be one of the following:
|
data |
The data vector, matrix or data.frame (or some transformation of them), used for obtaining the
|
margins |
A vector of integers denoting the variables (numbers of columns of
|
cluster |
An integer denoting the cluster for which the fit
plot is returned. This is only relevant if |
... |
further arguments passed to or from other methods. |
what="criterion"
A plot with the profiling of the OTRIMLE criterion
optimization. Criterion at log(icd)=-Inf
is always represented.
what="iloglik"
A plot with the profiling of the improper log-
likelihood function
along the search path for the OTRIMLE optimization.
what="fit"
The P-
P plot (probability-
probability plot) of the weighted empirical
distribution function of the Mahalanobis distances of observations
from clusters' centers against the target distribution. The target
distribution is the Chi-square distribution with degrees of
freedom equal to
ncol(data)
. The weights are given by the improper posterior
probabilities. If cluster=NULL
P-
P plots are produced for
all clusters, otherwise cluster
selects a single P-
P
plot at times.
what="clustering"
A pairwise scatterplot with cluster memberships. Points
assigned to the noise/outliers component are denoted by
'+'
.
Coretto, P. and C. Hennig (2016). Robust improper maximum likelihood: tuning, computation, and a comparison with other methods for robust Gaussian clustering. Journal of the American Statistical Association, Vol. 111(516), pp. 1648-1659. doi: 10.1080/01621459.2015.1100996
P. Coretto and C. Hennig (2017). Consistency, breakdown robustness, and algorithms for robust improper maximum likelihood clustering. Journal of Machine Learning Research, Vol. 18(142), pp. 1-39. https://jmlr.org/papers/v18/16-382.html
Pietro Coretto pcoretto@unisa.it https://pietro-coretto.github.io
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | ## Load Swiss banknotes data
data(banknote)
x <- banknote[,-1]
## Perform otrimle clustering on a small grid of logicd values
a <- otrimle(data = x, G = 2, logicd = c(-Inf, -50, -10), ncores = 1)
print(a)
## Plot clustering
plot(a, data = x, what = "clustering")
## Plot clustering on selected margins
plot(a, data = x, what = "clustering", margins = 4:6)
## Plot clustering on the first two principal components
z <- scale(x) %*% eigen(cor(x), symmetric = TRUE)$vectors
colnames(z) <- paste("PC", 1:ncol(z), sep = "")
plot(a, data = z, what = "clustering", margins = 1:2)
## Plot OTRIMLE criterion profiling
plot(a, what = "criterion")
## Plot Improper log-likelihood profiling
plot(a, what = "iloglik")
## Fit plot for all clusters
plot(a, what = "fit")
## Fit plot for cluster 1
plot(a, what = "fit", cluster = 1)
## Not run:
## Perform the same example using the finer default grid of logicd
## values using multiple cores
##
a <- otrimle(data = x, G = 2)
## Inspect the otrimle criterion-vs-logicd
plot(a, what = 'criterion')
## The minimum occurs at a$logicd=-9, and exploring a$optimization it
## cane be seen that the interval [-12.5, -4] brackets the optimal
## solution. We search with a finer grid located around the minimum
##
b <- otrimle(data = x, G = 2, logicd = seq(-12.5, -4, length.out = 25))
## Inspect the otrimle criterion-vs-logicd
plot(b, what = 'criterion')
## Check the difference between the two clusterings
table(A = a$cluster, B = b$cluster)
## Check differences in estimated parameters
##
colSums(abs(a$mean - b$mean)) ## L1 distance for mean vectors
apply({a$cov-b$cov}, 3, norm, type = "F") ## Frobenius distance for covariances
c(Noise=abs(a$npr-b$npr), abs(a$cpr-b$cpr)) ## Absolute difference for proportions
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.