2017-05-25 174 views
1

我正尝试使用聚类来识别我的数据集中的带。我与供应链数据的工作,所以我的数据是这样的:基于质心与聚类R中心之间的距离识别数据带

Img

相关列是个每价格。

问题是,有时我们错误地认为该产品的价格是100而不是10,所以每个价格看起来像(2,0.25,3)。我想创建一个只创建集群的代码,如果其他集群的平均价格至少比所有现有集群大2倍或更少。

例如,如果我的每个价格是(4,5,6,13,14,15),我希望它返回质心为5和14的2个集群。另一方面,如果我的数据看起来像(3,4,5,6),它应该返回一个集群。

目标是创建一个代码,该代码返回已生成多个群集的项目的产品代码,以便我可以审核这些产品代码中的错误计量单位(案例100与案例10)。

我在考虑使用分裂层次聚类,但我不知道如何引入质心距离规则来创建新的聚类。

我对R很新,但是我有SQL和Stata的经验,所以我正在寻找一个可以做到这一点的软件包,或者帮助我完成这个任务的语法。

+0

请访问http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example,了解如何创建一个好的重现帖子。 1)请将数据添加为文本,并确保显示您所需的输出。 – emilliman5

回答

0

请勿在此处使用群集。尽管你可以使用具有类比距离函数和8x阈值的HAC,但这将会相当不可靠和昂贵:聚类通常需要O(n 2)或O(n 3)。

如果你知道这些错误发生,但不是频繁的,那么我宁愿使用经典统计方法。例如,计算的中位数,然后报告比中位数大9倍的值作为错误。如果错误不够频繁,甚至可以使用均值,但中值更加稳健。

+0

感谢您的帮助! –