Berikut ini skrip untuk menggunakan model campuran menggunakan 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)

Dalam situasi di mana ada kurang dari 5 klaster:
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)

Dalam hal ini kami memasang 3 kluster. Bagaimana jika kita muat 5 klaster?
xyMclust4 <- Mclust(data.frame (X1,Y1), G=5)
plot(xyMclust4)
Itu bisa memaksa untuk membuat 5 cluster.

Mari kita kenalkan beberapa noise acak:
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)
mclustmemungkinkan pengelompokan berbasis model dengan noise, yaitu pengamatan terluar yang bukan milik cluster mana pun. mclustmemungkinkan untuk menentukan distribusi sebelumnya untuk mengatur kecocokan dengan data. Sebuah fungsi priorControldisediakan dalam mclust untuk menentukan prior dan parameternya. Ketika dipanggil dengan default-nya, ia memanggil fungsi lain yang disebut defaultPrioryang dapat berfungsi sebagai templat untuk menentukan prior prior. Untuk memasukkan noise dalam pemodelan, tebakan awal pengamatan noise harus diberikan melalui komponen noise dari argumen inisialisasi dalam Mclustatau mclustBIC.

Alternatif lain adalah dengan menggunakan mixtools paket yang memungkinkan Anda menentukan mean dan sigma untuk setiap komponen.
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)
