Me pregunto si hay una buena manera de calcular el criterio de agrupamiento basado en la fórmula BIC, para una salida de k-medias en R? Estoy un poco confundido sobre cómo calcular ese BIC para poder compararlo con otros modelos de agrupación. Actualmente estoy usando la implementación del paquete de estadísticas de k-means.
r
clustering
k-means
bic
Estudiante
fuente
fuente
Respuestas:
Para calcular el BIC para los resultados de kmeans, probé los siguientes métodos:
El código r para la fórmula anterior es:
El problema es que cuando uso el código r anterior, el BIC calculado aumentaba monótonamente. ¿Cual es la razón?
[ref2] Ramsey, SA, y col. (2008) "Descubrir un programa transcripcional de macrófagos integrando evidencia de escaneo de motivos y dinámica de expresión". PLoS Comput Biol 4 (3): e1000021.
He usado la nueva fórmula de /programming/15839774/how-to-calculate-bic-for-k-means-clustering-in-r
Este método tiene el valor BIC más bajo en el número de clúster 155.
usando el método proporcionado @ttnphns, el código R correspondiente como se detalla a continuación. Sin embargo, el problema es ¿cuál es la diferencia entre Vc y V? ¿Y cómo calcular la multiplicación por elementos para dos vectores con diferente longitud?
fuente
Vc
es la matriz P x K yV
era una columna que luego se propagaba K veces en la matriz del mismo tamaño. Entonces (punto 4 en mi respuesta) puede agregarVc+V
. Luego tome el logaritmo, divídalo entre 2 y calcule las sumas de la columna. El vector de fila resultante se multiplica (valor por valor, es decir, por elementos) con la filaNc
.No uso R, pero aquí hay un cronograma que espero lo ayude a calcular el valor de los criterios de agrupación BIC o AIC para cualquier solución de agrupación dada.
Este enfoque sigue los algoritmos de SPSS Análisis de conglomerados de dos pasos (consulte las fórmulas allí, comenzando desde el capítulo "Número de conglomerados", luego pase a "Distancia de probabilidad de registro" donde se define ksi, la probabilidad de registro). BIC (o AIC) se calcula en función de la distancia de probabilidad logarítmica. A continuación se muestran los cálculos solo para datos cuantitativos (la fórmula que figura en el documento SPSS es más general e incorpora también datos categóricos; solo se trata su "parte" de datos cuantitativos):
Los criterios de agrupación AIC y BIC se utilizan no solo con la agrupación K-means. Pueden ser útiles para cualquier método de agrupación que trate la densidad dentro del grupo como la varianza dentro del grupo. Debido a que AIC y BIC deben penalizar por "parámetros excesivos", tienden inequívocamente a preferir soluciones con menos grupos. "Menos grupos más disociados unos de otros" podría ser su lema.
Puede haber varias versiones de los criterios de agrupación BIC / AIC. El que mostré aquí usa
Vc
, dentro de las variaciones de conglomerados , como el término principal de la probabilidad logarítmica. Alguna otra versión, quizás más adecuada para la agrupación de k-medias, podría basar la probabilidad logarítmica en las sumas de cuadrados dentro del grupo .La versión en pdf del mismo documento de SPSS al que me referí.
Y aquí están finalmente las fórmulas mismas, correspondientes al pseudocódigo anterior y al documento; está tomado de la descripción de la función (macro) que he escrito para usuarios de SPSS. Si tiene alguna sugerencia para mejorar las fórmulas, publique un comentario o una respuesta.
fuente
Vc
en mi notación (la varianza agrupada dentro del clúster).Vc+V
se usa en lugar deVc
simplemente contra el caso deVc=0
cuando un clúster tiene un objeto