Distribuciones agrupadas

10

Tengo varias distribuciones (10 distribuciones en la figura a continuación). distribuciones

De hecho, estos son histogramas: hay 70 valores en el eje x que son los tamaños de algunas partículas en una solución y para cada valor de x el valor correspondiente de y es la proporción de partículas cuyo tamaño es alrededor del valor de x.

Me gustaría agrupar estas distribuciones. Actualmente uso un agrupamiento jerárquico con la distancia euclidiana, por ejemplo. No estoy satisfecho con la elección de la distancia. He probado la distancia teórica de la información, como Kullback-Leibler, pero hay muchos ceros en los datos y esto causa dificultades. ¿Tiene una propuesta de una distancia apropiada y / u otro método de agrupamiento?

Stéphane Laurent
fuente

Respuestas:

16

Le entiendo de tal manera que todas las distribuciones pueden tomar los mismos 70 valores discretos. Entonces será fácil para usted comparar las curvas acumulativas de las distribuciones (comparar curvas acumulativas es la forma general de comparar distribuciones). Esa será una comparación general para las diferencias en forma, ubicación y propagación.

Entonces, prepare los datos en la forma como (A, B, ... etc. son las distribuciones)

Value CumProp_A CumProp_B ...
1       .01       .05
2       .12       .14
...     ...       ...
70      1.00      1.00

y calcular una matriz de distancia entre las distribuciones. Enviar a la agrupación jerárquica (recomendaría el método de enlace completo). Que distancia Bueno, si cree que dos curvas acumulativas son muy diferentes si están muy separadas en un solo valor ( b ), use la distancia de Chebyshev. Si cree que dos curvas acumulativas son muy diferentes solo si una está establemente por encima de la otra a lo largo de un amplio rango de valores ( c ), use la distancia autocorrelativa. En caso de que alguna diferencia local entre las curvas sea importante ( a ), use la distancia de Manhattan.

ingrese la descripción de la imagen aquí

PS La distancia autocorrelativa es solo un coeficiente no normalizado de autocorrelación de diferencias entre las curvas acumulativas X e Y:

yo=2norte(X-Y)yo(X-Y)yo-1

ttnphns
fuente
Excelente, muchas gracias! Haré esto mañana
Stéphane Laurent
La distancia autocorrelativa es posiblemente negativa. ¿Es realmente la buena definición?
Stéphane Laurent
Olvidé hacer otra pregunta: ¿por qué recomendarías el enlace completo?
Stéphane Laurent
Puede establecer en cero términos negativos del producto, si los hay. No insisto en un enlace completo, más bien, advertiría contra métodos "geométricos" como Ward o centroide porque las distancias no son euclidianas. También pensé que un método "dilatativo" como un enlace completo será de su agrado
ttnphns
4

Si sus datos son histogramas, es posible que desee buscar funciones de distancia apropiadas para eso, como la "distancia de intersección del histograma".

Existe una herramienta llamada ELKI que tiene una amplia variedad de algoritmos de agrupación (mucho más modernos que k-means y agrupación jerárquica) e incluso tiene una versión de distancia de intersección de histograma incluida, que puede usar en la mayoría de los algoritmos. Es posible que desee probar algunos de los algoritmos disponibles en él. De la trama que diste arriba, no me queda claro qué quieres hacer. Agrupe los histogramas individuales, ¿verdad? A juzgar por los 10 que mostraste arriba, puede que no haya grupos.

HA SALIDO - Anony-Mousse
fuente
Gracias. Pero estoy buscando una herramienta disponible en R o SAS. Entonces, las diez distribuciones anteriores son solo un ejemplo, tengo muchas series de distribuciones para agrupar.
Stéphane Laurent
2

Es posible que desee utilizar alguna técnica de extracción de características para derivar descriptores para un k-means u otro tipo de agrupación.

Un enfoque básico sería ajustar una determinada distribución a sus histogramas y usar sus parámetros como descriptores. Por ejemplo, parece tener distribuciones bimodales, que puede describir con 2 medias y 2 desviaciones estándar.

Otra posibilidad es agrupar sobre los primeros dos o tres componentes principales de los recuentos de los histogramas.

Alternativamente, se pueden usar enfoques wavelets.

Esta página explica cómo hacerlo cuando se trata de picos extracelulares. Los datos son diferentes, pero la idea debería ser aplicable a su caso. También encontrará muchas referencias en la parte inferior.

http://www.scholarpedia.org/article/Spike_sorting

En R puede calcular los componentes principales de sus picos utilizando la función princompo prcomp. Aquí encontrarás un tutorial sobre PCA en R.

Para wavelets puedes mirar el waveletspaquete.

La agrupación de k-means se puede lograr usando la kmeansfunción.

nico
fuente
Gracias, echaré un vistazo a tu propuesta siempre que sea posible.
Stéphane Laurent