2017-05-25 105 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

感謝您的幫助! –