Está en la página 1de 4

Análisis conglomerados mixturas.

Ver introducción en el HTML.

La selección del modelo adecuado se puede realizar según algún criterio que conjugue
verosimilitud y complejidad, como AIC o BIC. Cuanto mayor sea el BIC, mejor es la calidad del
conglomerado. BIC es el coeficiente que determina el mejor modelo. Usamos la librería
library(mclust)

La matriz “Sigma”, en modelos con varianzas iguales (EII,EEI, EEE) es la estimación de la matriz
de dispersión común.

Las matrices “sigma” son las matrices de covarianzas en cada grupo.

Ej.9. Ajustar un modelo de mixturas de normales bivariantes sobre los datos faithful de la
librería mclust, correspondiente a datos de tiempo de espera entre las erupciones y la
duración de la erupción del géiser Old Faithful en el Parque Nacional Yellowstone, Wyoming,
EE.UU.

library(mclust)

data(faithful)

 Primero dibujamos el plot de los datos para saber si tiene sentido plantearse la
mixtura.

plot(faithful)# tiene sdo porque parece que tendremos dos


conglomerados

 Búsqueda del mejor modelo de mixtura. Con la orden Mclust()

Mclusfaith=Mclust(faithful) #BUSCAR EL MEJOR MODELO


Mclusfaith

# Obtenemos model object: (EEE,3)

El segundo (3) nos dice que la muestra se puede ajustar por 3


normales bivariantes

Además, (EEE) nos dice que tenemos 3 matrices de dispersión y que


son iguales. La matriz es la misma para las tres componentes.

 Describamos el objeto creado. (ayuda a entender lo anterior)


names(Mclusfaith)

Mclusfaith$modelName # mejor modelo seleccionado

Mclusfaith$n # Tamaño muestral

Mclusfaith$d # Dimensión del vector aleatorio


Sale que es 2, es decir, tenemos normales BIVARIANTES

Mclusfaith$G # Número óptimo de grupos

Mclusfaith$BIC #BIC para los modelos analizados, resaltando los tres


mejores modelos (notar que queremos MAXIMIZAR EL BIC)

Mclusfaith$bic # Valor BIC óptimo

Mclusfaith$loglik # Valor de la log-verosimilitud óptimo

Mclusfaith$df # Número de parámetros estimados

 Parámetros estimados

Mclusfaith$parameters$pro # Vector con las probabilidades de la


mixtura estimadas
##[1] 0.1656784 0.3563696 0.4779520. Para la primera normal
bivariante, para la segunda, para la tercera.

Mclusfaith$parameters$mean # Estimación de la media de cada componente

Mclusfaith$parameters$variance #Estimación de la matriz de dispersión


de cada componente

 Para cada caso, prob. de pertenencia a cada grupo. (AQUÍ


OBTENEMOS LOS Z)

matz<-Mclusfaith$z # Matriz que contiene para cada caso, la


probabilidad de pertenencia

round(matz[1:10,],4) #SON LOS Z. Son las probabilidades de


pertenencia a cada una de las k componentes de mixtura.
## [,1] [,2] [,3]
## 1 0.9718 0.0000 0.0282
## 2 0.0000 1.0000 0.0000
## 3 0.9967 0.0000 0.0032
## 4 0.0000 1.0000 0.0000
## 5 0.0117 0.0000 0.9883
## 6 0.0031 0.9969 0.0000
## 7 0.0030 0.0000 0.9970
## 8 0.9761 0.0000 0.0239
## 9 0.0000 1.0000 0.0000
## 10 0.0552 0.0000 0.9448

Por ejemplo, tenemos 10 casos. La prob de que el primer caso sea


del conglomerado 1 es 0.97, de que sea del 2 es 0, y de que sea
del 3 es 0.0282.
 El plot del objeto nos dice qué cantidad de componentes hace que el bic sea mayor.

plot(Mclusfaith)
-en el primer plot vemos el número de conglomerados, distribuciones

-en el segundo, eruptions, vemos además elipses, que son RC para los
vectores de media de cada una de las normales.

-En el tercer dibujo observamos la incertidumbre. La incertidumbre es


1-Za, con la matriz de Z que vimos anteriormente. Si Z es alto, poca
incertidumbre.

-en el ultimo, tenemos regiones de densidad cte. Puede indicar si


existe un grupo separado o no.

Ej. 10. Ajustar un modelo de mixturas sobre los datos wreath de la librería mclust. Los
datos contienen 1000 observaciones realizadas de una mixtura normal bidimensional
de 14 componentes en las que las covarianzas de las componentes tienen el mismo
volumen o tamaño y forma, pero diferente orientación.

data(wreath)

plot(wreath) #14 componentes. Con el plot vemos si tiene sdo.


grid()

En este ejercicio usamos, la instrucción mclustBIC que guarda sólo los valores del
criterio BIC, y no las medias.

wreathBIC<- mclustBIC(wreath)

plot(wreathBIC,legendArgs=list(x="topleft"))

No somos capaces de obtener el numero de componentes que haga máximo el BIC.


Dado que el BIC se va optimizando conforme aumentamos el número de
componentes, ampliamos este número, es decir, conviene extender la búsqueda del
mejor K (en la orden, “G=1:20” )
Tenemos que aumentar. Lo hacemos:

wreathBIC<- mclustBIC(wreath,G=1:20,x=wreathBIC)
plot(wreathBIC,G=10:20,legendArgs=list(x="bottomright"))

vemos que a partir de 14 se estabiliza. No obstante, lo vemos con el summary para


saber que modelo es el mejor.
summary(wreathBIC,data=wreath)

EEV,14. Es decir, tenemos un total de 14 normales bivariantes y lass


matrices de dispersión ya no son totalmente iguales.

wreathBIC

El mejor modelo es EEV con 14 componentes, es decir, matriz de covarianzas:


λDkADTk

Igual volumen (λ), igual forma (A), distinta orientación (Dk)

Para que quede mas bonito:

plot(wreath, col=summary(wreathBIC,data=wreath)$classification )

También podría gustarte