2017-05-25 7 views
1

クラスタリングを使用してデータセット内のバンドを識別しようとしています。私は、サプライチェーンのデータで働いているので、私のデータは次のようになります。クラスタリングを使用したセントロイド間の距離に基づくデータバンドの特定R

Img

関連する列が各あたりの価格です。

問題は、この製品が10個ではなく100個のケースであることが間違っていることがあるため、各単価は(2,0.25,3)のようになります。私は、追加のクラスタの平均価格が既存のすべてのクラスタの2倍以上であれば、クラスタを作成するコードを作成したいと考えています。

たとえば、各価格が(4,5,6,13,14,15)の場合、5と14の重心で2つのクラスターを返すようにします。一方、私のデータ(3、4、5、6)のように見えるので、1つのクラスターを戻すはずです。

目標は、複数のクラスターが生成されたアイテムの製品コードを返すコードを作成して、悪い測定単位の製品コード(ケース100とケース10)を監査できるようにすることです。

私は分裂的な階層的クラスタリングの使用について考えていますが、新しいクラスタを作成するための重心距離ルールの導入方法はわかりません。

私はかなり新しくRですが、私はSQLとStataの経験があるので、これを行うか、これを達成するために必要な構文を手助けするパッケージを探しています。

+0

良い再現性の高い投稿を作成する方法については、http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-exampleにポップアップしてください。 1)データをテキストとして追加し、希望する出力を必ず表示してください。 – emilliman5

答えて

0

ここではクラスタリングを使用しないでください。

おそらくHACを比率のような距離関数と8xのしきい値で使用できますが、これは信頼性が低く、高価です。通常、クラスタリングにはO(n²)またはO(n³)がかかります。

これらのエラーは頻繁ではないことがわかっている場合は、古典的な統計的アプローチを使用したいと思います。たとえば、中央値を計算し、中央値よりも9倍大きい/小さい値をエラーとして報告します。エラーが十分に少ない場合は、平均値を使用することもできますが、中央値はより堅牢です。

+0

お手数ですが助けてください! –

関連する問題