¿Cómo saber cuantitativamente si los datos 1D se agrupan alrededor de 1 o 3 valores?

9

Tengo algunos datos sobre el tiempo entre latidos de un humano. Una indicación de latidos ectópicos (extra) es que estos intervalos se agrupan alrededor de tres valores en lugar de uno. ¿Cómo puedo obtener una medida cuantitativa de esto?

Estoy buscando comparar múltiples conjuntos de datos, y estos dos histogramas de 100 bandejas son representativos de todos ellos.

ingrese la descripción de la imagen aquí

Podría comparar las variaciones, pero quiero que mi algoritmo pueda detectar si hay uno o tres grupos en cada caso sin compararlos con los otros casos.

Esto es para el procesamiento fuera de línea, por lo que hay mucha potencia de cálculo disponible, si es necesario.

Nikolaus
fuente

Respuestas:

3

Aconsejo fuertemente contra el uso de k-means aquí. Los resultados para diferentes valores de k no son muy comparables. El método es solo una cruda heurística. Si realmente desea usar la agrupación, use la agrupación EM, ya que sus datos parecen contener distribuciones normales. ¡Y valide sus resultados!

En cambio, el enfoque obvio es intentar ajustar una sola función gaussiana y (por ejemplo, utilizando el método de Levenberg-Marquard) ajustar tres funciones gaussianas, tal vez restringidas a la misma altura (para evitar la degeneración).

Luego pruebe, cuál de las dos distribuciones se ajusta mejor.

HA SALIDO - Anony-Mousse
fuente
¡Gracias, no sabía de Levenberg-Marquardt! Estos grupos no son gaussianos; ¿Todavía crees que las funciones gaussianas serían el mejor PDF para adaptarlas?
Nikolaus
+1 a esto y a Greg Snow. Estoy totalmente de acuerdo con este consejo. @Nikolaus Creo que esto parece "lo suficientemente gaussiano" como para adaptarse a una mezcla de distribuciones gaussianas. No desea un ajuste perfecto, solo una forma de verificar cuántos grupos hay. En esta óptica, restringir todos los componentes para compartir la misma desviación estándar puede ser una buena idea (por las razones explicadas por Anony-Mousse).
Elvis
Claramente me parecen lo suficientemente gaussianos. K-means modela datos con células Voronoi. No me parece razonable suponer que el mejor punto de división está exactamente en el medio de los dos medios vecinos.
HA SALIDO - Anony-Mousse
6

Ajuste una distribución de mezcla a los datos, algo así como una mezcla de 3 distribuciones normales, luego compare la probabilidad de que se ajuste a un ajuste de una distribución normal única (usando la prueba de razón de probabilidad, o AIC / BIC). El flexmixpaquete Rpuede ser de ayuda.

Greg Snow
fuente
4

K=1K=3KK=1,2,3K=1K=3

bnaul
fuente
2

Use un algoritmo de agrupación de K-medias para identificar los diversos medios

Busque la función KNN en R-seek para encontrar la función adecuada

Ram Ahluwalia
fuente
1
¡Ah, estaba a punto de publicar eso! También puede consultar este enlace para ver los códigos y otras cosas: statmethods.net/advstats/cluster.html
King
Intenté con la kmeansfunción de Matlab . Los medios resultantes varían ampliamente de un intento a otro. (¿Mala heurística en esta implementación?) Para el conjunto de 1 clúster, obtengo medias alrededor (270,293,693) a veces, alrededor (260,285,308) a veces. Para el conjunto de 3 grupos, algunas respuestas son (196,324,468,) y (290,459,478).
Nikolaus
¿Hay algún lugar donde pueda pegar los datos?
Nikolaus
Ah, sobre eso significa 693: hay dos valores atípicos obvios, un 532 y un 855, de un total de 755 valores. Todo el resto de los valores se pueden ver en el histograma.
Nikolaus
¡Debe mirar más allá de los medios que obtiene de k-means y ver qué tan bien describen sus datos!
HA SALIDO - Anony-Mousse