Hier ist ein Skript für die Verwendung eines Mischungsmodells mit mcluster.
X <- c(rnorm(200, 10, 3), rnorm(200, 25,3), rnorm(200,35,3), rnorm(200,65, 3), rnorm(200,80,5))
Y <- c(rnorm(1000, 30, 2))
plot(X,Y, ylim = c(10, 60), pch = 19, col = "gray40")
require(mclust)
xyMclust <- Mclust(data.frame (X,Y))
plot(xyMclust)

In einer Situation, in der weniger als 5 Cluster vorhanden sind:
X1 <- c(rnorm(200, 10, 3), rnorm(200, 25,3), rnorm(200,35,3), rnorm(200,80,5))
Y1 <- c(rnorm(800, 30, 2))
xyMclust <- Mclust(data.frame (X1,Y1))
plot(xyMclust)

xyMclust4 <- Mclust(data.frame (X1,Y1), G=3)
plot(xyMclust4)

In diesem Fall passen wir 3 Cluster an. Was ist, wenn wir 5 Cluster passen?
xyMclust4 <- Mclust(data.frame (X1,Y1), G=5)
plot(xyMclust4)
Es kann erzwingen, 5 Cluster zu bilden.

Lassen Sie uns auch ein zufälliges Rauschen einführen:
X2 <- c(rnorm(200, 10, 3), rnorm(200, 25,3), rnorm(200,35,3), rnorm(200,80,5), runif(50,1,100 ))
Y2 <- c(rnorm(850, 30, 2))
xyMclust1 <- Mclust(data.frame (X2,Y2))
plot(xyMclust1)
mclustErmöglicht modellbasiertes Clustering mit Rauschen, dh Nebenbeobachtungen, die zu keinem Cluster gehören. mclustErmöglicht die Angabe einer vorherigen Verteilung, um die Anpassung an die Daten zu regulieren. In priorControlmclust wird eine Funktion zur Angabe des Prior und seiner Parameter bereitgestellt. Wenn es mit seinen Standardeinstellungen aufgerufen wird, ruft es eine andere aufgerufene Funktion auf, defaultPriordie als Vorlage für die Angabe alternativer Prioritäten dienen kann. Um Rauschen in die Modellierung einzubeziehen, muss eine erste Schätzung der Rauschbeobachtungen über die Rauschkomponente des Initialisierungsarguments in Mclustoder erfolgen mclustBIC.

Die andere Alternative wäre die Verwendung eines mixtools Pakets , mit dem Sie Mittelwert und Sigma für jede Komponente angeben können.
X2 <- c(rnorm(200, 10, 3), rnorm(200, 25,3), rnorm(200,35,3),
rnorm(200,80,5), rpois(50,30))
Y2 <- c(rnorm(800, 30, 2), rpois(50,30))
df <- cbind (X2, Y2)
require(mixtools)
out <- mvnormalmixEM(df, lambda = NULL, mu = NULL, sigma = NULL,
k = 5,arbmean = TRUE, arbvar = TRUE, epsilon = 1e-08, maxit = 10000, verb = FALSE)
plot(out, density = TRUE, alpha = c(0.01, 0.05, 0.10, 0.12, 0.15), marginal = TRUE)
