Eu tenho alguns dados sobre o tempo entre os batimentos cardíacos de um humano. Uma indicação de batidas ectópicas (extras) é que esses intervalos estão agrupados em torno de três valores em vez de um. Como posso obter uma medida quantitativa disso?
Estou procurando comparar vários conjuntos de dados, e esses dois histogramas de 100 bin são representativos de todos eles.
Eu poderia comparar as variações, mas quero que meu algoritmo seja capaz de detectar se há um ou três clusters em cada caso, sem comparar com os outros casos.
Isso é para processamento off-line, portanto, há muito poder de computação disponível, se necessário.
clustering
Nikolaus
fonte
fonte
Respostas:
Aconselho fortemente contra o uso de k-means aqui. Os resultados para diferentes valores de k não são muito bem comparáveis. O método é apenas uma heurística grosseira. Se você realmente deseja usar o agrupamento, use o agrupamento EM, pois seus dados parecem conter distribuições normais. E valide seus resultados!
Em vez disso, a abordagem óbvia é tentar ajustar uma única função gaussiana e (por exemplo, usando o método Levenberg-Marquard) ajustar três funções gaussianas, talvez restritas à mesma altura (para evitar a degeneração).
Em seguida, teste qual das duas distribuições se encaixa melhor.
fonte
Ajuste uma distribuição de mistura aos dados, algo como uma mistura de 3 distribuições normais e compare a probabilidade desse ajuste com um ajuste de uma única distribuição normal (usando o teste de razão de verossimilhança, ou AIC / BIC). O
flexmix
pacoteR
pode ser útil.fonte
Se você deseja usar o cluster K-means, precisará de uma maneira de comparar os casos e . Uma abordagem seria usar a estatística de gap de Tibshirani et al. e escolha o que fornece o melhor valor. Há uma implementação R disponível no SLmisc , embora essa função em particular tente , portanto, você deve tomar cuidado para garantir que apenas ou possam ser retornados como o valor ideal.K = 3 K K = 1 , 2 , 3 K = 1 K = 3K=1 K=3 K K=1,2,3 K=1 K=3
fonte
Use um algoritmo de agrupamento K-means para identificar os vários meios
Procure a função KNN em R-seek para encontrar a função apropriada
fonte
kmeans
função do Matlab . Os meios resultantes variam muito de tentativa para tentativa. (Heurísticas ruins nesta implementação?) Para o conjunto de 1 cluster, recebo médias em torno de (270.293.693) às vezes, em torno de (260.285.308) às vezes. Para o conjunto de 3 clusters, algumas respostas são (196.324.468) e (290.459.478).