Tengo un conjunto de datos multivariable para el que sólo tengo una tabla que incluye las distancias euclidianas cruzadas entre todos los puntos y una lista que da la asignación de cada punto a uno de varios clusters. ¿Puedo utilizar esos datos para calcular la suma de cuadrados dentro de cada grupo?
EDITAR 1
Permítanme añadir un ejemplo sobre cómo lo haría, y para explicar mejor lo que quiero hacer. Digamos que tengo los siguientes datos. Tengo seis muestras que se atribuyen a dos clusters: S1-S3: Cluster 1 S4-S6: Cluster 2
Además, tengo las distancias entre las muestras:
Ahora, si quiero calcular la suma de cuadrados dentro del Cluster 1, tendría los siguientes valores para las distancias D D(S1, S2) = 3,46 D(S1, S3) = 2,24 D(S2, S3) = 5,39
La media de esto sería D* = 3,70 Según la ecuación normal de la suma de cuadrados TSS = suma((Di - D*)^2), adaptada de la regresión lineal, esto me llevaría a TSS = suma(12,00, 2,13, 2,86), por lo que TSS(Cluster 1) = 16,99
Equivalentemente: TSS(Cluster 2) = 20,66
Pero cuando aplico las mismas ecuaciones a todo el conjunto de datos (es decir, las distancias entre todos los puntos), obtengo un SST para todo el dendrograma de SST(completo) = 23082,10
Por último, me gustaría utilizar todos esos cálculos para deducir qué parte de la varianza observada se explica por el análisis de conglomerados. Pero si asumo que esos resultados son correctos (en este sentido), obtendría una varianza explicada de sólo el 0,16% (suma (16,99, 20,66)/23081,10).
Así que, presumiblemente, cometo un error (los datos fueron producidos artificialmente para ser explicados por un dendrograma con dos clusters, por lo que la varianza explicada debería estar probablemente en el acceso al 80%). ¿Puede alguien ayudarme en esto?
EDITAR 2 Utilizando los mismos datos y la bonita explicación aquí
A continuación, calcularía la suma de cuadrados por cluster como suma(Distancias^2)/3. Esto me daría TSS(Cluster 1) = 15,33; TSS(Cluster 2) = 54,75. La SST total del dendrograma sería entonces SST(total) = 10899,57, lo que seguiría dando una varianza explicada de sólo el 0,6%.
¿Dónde estoy cometiendo el error?
0 votos
multivariate dataset for which I have only a table including the cross-wise Euclidean distances
. ¿Es que tienes la matriz cuadrada de distancias entre todos los puntos (en lugar de los datos originales de puntosXvariables)? Entonces sí, se puede.0 votos
@ttnphns Sí, esto es exactamente lo que quiero decir. La cuestión es entonces, cómo lo hago. ¿Puedo utilizar la ecuación normal sum(yi-y*)^2, con yi como medidas de distancia individuales e y* como media de las distancias dentro del cluster? O hay algún otro problema con eso.
1 votos
Véase el primer párrafo aquí . Por lo tanto, para cada clúster, considere su submatriz de distancia (de distancias al cuadrado) y calcule la suma de cuadrados de las desviaciones del centroide del clúster dentro del clúster.
0 votos
@ttnphns Gracias por el enlace. Por desgracia, ver EDIT 2, sigo siendo incapaz de hacer lo que quiero hacer. Probablemente sea un error estúpido de comprensión del método. Supongo que lo ves enseguida.
1 votos
No he comprobado sus cálculos. ¿Lo estás haciendo bien? Si tienes n puntos y nXn distancias al cuadrado entre ellos deberías dividir la suma de n(n-1)/2 distancias entre n. ¿Y a qué llamas
the explained variance
? ¿No se trata de la varianza entre grupos y no de la varianza dentro de los grupos (que es similar al "error")? SStotal = SSdentro + SSentre.0 votos
@ttnphns Sí, la suma de cuadrados dentro del cluster la he calculado como dices, sumando las distancias n(n-1)/2 y desviándolas por n (he utilizado las distancias al cuadrado, es decir). Pero, ¿cómo calcularía entonces la suma de cuadrados entre clusters?
0 votos
¿Has leído mi comentario anterior hasta el final? Calcule SStotal (todos los puntos considerados como un clúster). Calcule SScluster para cada clúster por separado. La suma de estos últimos sobre todos los clusters es SSwithin. Reste. [Si piensa en términos de varianza (en lugar de SS), - entonces la df para SSbetween es k-1 y la df para SSwithin es N-k (siendo N el tamaño total de la muestra y k el número de conglomerados. Consulte en este sitio o en Internet el "criterio de agrupación de Calinski-Harabasz"].
0 votos
@ManuelWeinkauf ver esto hilo
1 votos
Esta pregunta se responde en stats.stackexchange.com/q/237792/3277 hilo donde se dan todas las fórmulas principales