J'ai quelques données sur le temps entre les battements cardiaques d'un humain. Une indication des battements ectopiques (supplémentaires) est que ces intervalles sont regroupés autour de trois valeurs au lieu d'une. Comment puis-je obtenir une mesure quantitative de cela?
Je cherche à comparer plusieurs ensembles de données, et ces deux histogrammes à 100 cases sont représentatifs de chacun d'eux.
Je pourrais comparer les variances, mais je veux que mon algorithme puisse détecter s'il y a un ou trois clusters dans chaque cas sans les comparer aux autres cas.
C'est pour le traitement hors ligne, donc il y a beaucoup de puissance de calcul disponible, si cela est nécessaire.
clustering
Nikolaus
la source
la source
Réponses:
Je vous conseille fortement contre l' utilisation des k-means ici. Les résultats pour différentes valeurs de k ne sont pas très comparables. La méthode est juste une heuristique grossière. Si vous voulez vraiment utiliser le clustering, utilisez le clustering EM, car vos données semblent contenir des distributions normales. Et validez vos résultats!
Au lieu de cela, l'approche évidente consiste à essayer d'ajuster une seule fonction gaussienne et (par exemple en utilisant la méthode de Levenberg-Marquard) à trois fonctions gaussiennes, peut-être contraintes à la même hauteur (pour éviter la dégénérescence).
Ensuite, testez laquelle des deux distributions convient le mieux.
la source
Ajustez une distribution de mélange aux données, quelque chose comme un mélange de 3 distributions normales, puis comparez la probabilité de cet ajustement à un ajustement d'une distribution normale unique (en utilisant le test du rapport de vraisemblance, ou AIC / BIC). Le
flexmix
package pourR
peut être utile.la source
Si vous souhaitez utiliser le clustering K-means, vous avez besoin d'un moyen de comparer les cas et . Une approche consisterait à utiliser la statistique des écarts de Tibshirani et al. et choisissez le qui offre la meilleure valeur. Il y a une implémentation R disponible dans SLmisc , bien que cette fonction particulière essaiera , vous devrez donc vous assurer que seul ou peut être renvoyé comme valeur optimale.K = 3 K K = 1 , 2 , 3 K = 1 K = 3K=1 K=3 K K=1,2,3 K=1 K=3
la source
Utiliser un algorithme de clustering K-means pour identifier les différents moyens
Recherchez la fonction KNN dans R-chercher pour trouver la fonction appropriée
la source
kmeans
fonction de Matlab . Les moyens qui en résultent varient considérablement d'un essai à l'autre. (Mauvaise heuristique dans cette implémentation?) Pour l'ensemble à 1 cluster, j'obtiens parfois des moyens (270 293 693), parfois (260 285 308). Pour l'ensemble à 3 grappes, certaines réponses sont (196 324 468) et (290 459 478).