如何定量判断一维数据是否聚集在1或3个值附近?


9

我有一些关于人的心跳之间的时间的数据。异位(额外)心跳的一种迹象是,这些间隔围绕三个值而不是一个值聚集。如何获得对此的定量度量?

我正在寻找比较多个数据集的方法,这两个100 bin直方图代表了所有这些数据集。

在此处输入图片说明

我可以比较方差,但是我希望我的算法能够检测每种情况下是否存在一个或三个聚类,而无需与其他情况进行比较。

这是用于脱机处理的,因此,如果需要的话,有很多计算能力。


Answers:


3

我强烈建议不要在此处使用k-means。k的不同值的结果不能很好地比较。该方法只是一种粗略的启发式方法。如果您确实要使用群集,请使用EM群集,因为您的数据似乎包含正态分布。并验证您的结果!

相反,一种明显的方法是尝试拟合单个高斯函数,并(例如使用Levenberg-Marquard方法)拟合三个高斯函数,可能将其约束到相同的高度(以避免退化)。

然后测试,两个分布中的哪一个更合适。


谢谢,我不知道Levenberg-Marquardt!这些聚类不是高斯的。您是否仍然认为高斯函数将是适合它们的最佳PDF?
Nikolaus 2012年

+1并选择Greg Snow。我完全同意这个建议。@Nikolaus我认为这看起来“足够高斯”以适合高斯分布的混合。您不想要完美的选择,而只是一种检查有多少簇的方法。在这种光学系统中,限制所有组件共享相同的标准偏差可能是一个好主意(出于Anony-Mousse解释的原因)。
猫王2012年

他们对我显然看起来足够高斯。K-means使用Voronoi细胞对数据进行建模。在我看来,最好的分割点恰好位于两个相邻均值的中间似乎并不明智。
已退出-Anony-Mousse 2012年

6

将混合分布拟合到数据,类似于3个正态分布的混合,然后将拟合的可能性与单个正态分布的拟合进行比较(使用似然比检验或AIC / BIC)。的flexmix包装R可能会有所帮助。


4

如果要使用K-均值聚类,则需要一种方法来比较和情况。一种方法是使用Tibshirani等人的差距统计。并选择提供更好价值的SLmisc中有一个R实现,尽管该特定函数将尝试,所以您需要注意确保仅或可以作为最佳值返回。K=1K=3KK=1,2,3K=1K=3


2

使用K均值聚类算法来识别各种方法

在R-seek中寻找功能KNN以找到适当的功能


1
啊,我正要发布那个!您也可以参考此链接获取代码和其他说明:statmethods.net/advstats/cluster.html
国王

我尝试了Matlab的kmeans功能。尝试之间的结果差异很大。(此实现中的启发式方法不好吗?)对于1集群集,我的平均数有时约为(270,293,693),有时约为(260,285,308)。对于三簇集,一些答案是(196,324,468,)和(290,459,478)。
Nikolaus

有可以粘贴数据的地方吗?
Nikolaus

哦,大约是693的意思:在总共755个值中,有两个明显的异常值,分别是532和855。其余所有值都可以在直方图中看到。
Nikolaus

您必须超越从k均值获得的手段,并查看它们实际描述您的数据的能力!
已退出–Anony-Mousse 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.