# 0. Instalar y cargar los paquetes
    # Lista de paquetes de funciones a instalar
    .packages = c("mclust","corrplot","PerformanceAnalytics","Hmisc")
    
    # Instala los paquetes sinó los tienes instalados
    .inst <- .packages %in% installed.packages()
    if(length(.packages[!.inst]) > 0) install.packages(.packages[!.inst])
    
    # CARGAR PAQUETES O CREAR FUNCIONES
    #*******************************************************************************
    # Carga los paquetes sinó los tienes cargados
    lapply(.packages, require, character.only=TRUE)
    #-------------------------------------------------------------------------------


# 1. leer datos y estandarizar
my_data <- iris[, -5]

# 2. Explorar los datos
pairs(my_data) # matrixplot
cor <- rcorr(my_data)
corrplot(cor$r, type="upper", order="hclust", 
          p.mat = cor$P, sig.level = 0.01, insig = "blank") # plot de correlación
chart.Correlation(my_data, histogram=TRUE, pch=19,method = "spearman") # histograma, matrixplot y correlación

# 3. El número óptimo de clusters con el BIC
bic <-  mclustBIC(my_data)
plot(bic)
summary(bic)

# 4. GMM clustering dos grupos
mod1 = Mclust(my_data, x = bic)
summary(mod1, parameters = TRUE)
plot(mod1, what = "classification")

# 5. GMM clustering tres grupos
mod2 = Mclust(my_data, G = 3)
summary(mod2, parameters = TRUE)
plot(mod2, what = "classification")