Aqui está o script para usar o modelo de mistura usando o 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)

Em uma situação em que há menos de 5 clusters:
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)

Neste caso, estamos montando 3 clusters. E se encaixarmos 5 clusters?
xyMclust4 <- Mclust(data.frame (X1,Y1), G=5)
plot(xyMclust4)
Pode forçar a fazer 5 clusters.

Também vamos apresentar algum ruído aleatório:
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)
mclustpermite agrupamento baseado em modelo com ruído, ou seja, observações externas que não pertencem a nenhum cluster. mclustpermite especificar uma distribuição anterior para regularizar o ajuste aos dados. Uma função priorControlé fornecida no mclust para especificar o prior e seus parâmetros. Quando chamado com seus padrões, ele invoca outra função chamada defaultPriorque pode servir como um modelo para especificar priors alternativos. Para incluir ruído na modelagem, uma estimativa inicial das observações de ruído deve ser fornecida por meio do componente de ruído do argumento de inicialização em Mclustou mclustBIC.

A outra alternativa seria usar o mixtools pacote que permite especificar média e sigma para cada componente.
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)
