階層的クラスタリング: JMP と R の意見の相違ウォードの方法を使用して、JMP と R でまったく同じデータセットをクラスター化すると、同一ではない結果が得られます。R は 2 つのオプション (ward.D と ward.D2) を提供します。後者は、クラスタリングする前に距離行列の値を 2 乗します。によるとムルタフ & ルジャンドル (2014) 、それはJMPも行うことです。 しかし、R で method="ward.D2" を指定した場合でも、得られる出力はかなり異なります。約 15% の観察結果が、JMP から得られるものと一致しません。
では、質問 1: HCA で同じ方法を使用しても同じ結果が得られると期待するのは間違っていますか?k-means クラスタリングでは (少なくともシードを設定しないと) 期待できませんが、HCA の場合、結果は特定のパッケージ内で完全に安定しているため、パッケージ間でも同じであると想定しました。
質問 2: それらが同じであるべきである場合、なぜ同じではないのですか?
- 可能性 A: 距離行列の計算方法に違いがある
- 可能性 B: Ward の方法の実装方法に違いがある
- 可能性 C: R の cutree() 関数は、JMP の「クラスター数の選択」関数とは異なることを行います。
- 可能性×... ???
R から樹状図をアップロードしました (ネチケットが不適切である場合はお詫びします!)。 x 軸に沿ったラベルをよく見ると、私が話している問題を確認できます。これらのラベルはすべて、JMP で割り当てられたクラスターの番号を表す 1 ~ 5 の数字で終わります。ご覧のとおり、緑色のグループ (「3」) は、JMP と R が 1 対 1 で完全に一致した唯一のグループでした。
ガイダンスに感謝します、-マット

分析Re: 階層的クラスタリング: JMP と R の意見の相違うーん... JMP と R で 3 つの異なるデータ セットを比較したところ (「データの標準化」または「scale()」を使用せずに)、同じ数のクラスターを使用した場合にそれぞれの分類が正確に一致することがわかりました。私が R で指定した唯一のメソッドは、「dist」関数に「euclidean」を使用し、「hclust」関数に「ward.D2」を使用することでした。 R や JMP のワークフローで他に指定していることはありますか? あなたのデータはどれくらい乱雑ですか (欠落している... 外れ値...)?思考の材料を提供するだけです...
Re: 階層的クラスタリング: JMP と R の意見の相違良い考えですが、それが問題だとは思いません。私が扱っているデータセットにはすべて同じスケールの変数が含まれているため、JMP では常に「データの標準化」の選択を解除しています。 また、R でデータを標準化するには、scale() 関数を使用する必要がありますが、私は決して使用しません。 したがって、両方のパッケージが標準化されていないデータで動作する必要があると判断できる限り。Re: 階層的クラスタリング: JMP と R の意見の相違それを伝えてくれてありがとう。実際に JMP から距離行列をエクスポートし、それらの値を R で取得した距離行列と比較する価値があることに気付きました。これは、不一致の原因を絞り込むための 1 つの方法です。
Re: 階層的クラスタリング: JMP と R の意見の相違提案していただきありがとうございます。別の方法で解決できない場合は、技術チームにコードを送信することもできます。
他の質問に答えるには、はい: 各パッケージ内の HCA の結果は完全に安定しています。
Re: 階層的クラスタリング: JMP と R の意見の相違データが 1 つのパッケージで標準化され、他のパッケージでは標準化されていない可能性はありますか? JMP のデフォルトは「データの標準化」です。
Re: 階層的クラスタリング: JMP と R の意見の相違このスレッドは、距離行列にも役立つ場合があります。
https://community.jmp.com/t5/Discussions/which-distance-does-JMP-use-in-clustering/mp/275384#M53438
Re: 階層的クラスタリング: JMP と R の意見の相違matthal_reear さん、こんにちは。
さまざまなパッケージを比較することは、常にホットなトピックです。 JMPのソースコードを見ることができないので、JMPとRの間でポイント2で言及した計算に違いがあるかどうかを確認できません. どちらも Murtah & Legendre (2014) を参照していますが、これは、アルゴリズムが完全に類似したファッションで実装されていることを意味するものではありません。 特にアルゴリズムの核となる前後で違いが出てくるかもしれません。 潜在的なサブルーチンでも。 繰り返しますが、完全なコードを確認する方法がないため、この質問に答えることはできません。 JMP のテクニカル サポートに質問を送信して、使用している R-Package と具体的なルーチンに関する詳細情報を提供してください。 利用可能な R 関数が複数ある場合があります。 その後、何かが見つかるとは言わずに、違いを確認する機会があるかもしれません。
ちょうど別の考え。 パッケージ内の結果は HCA に対して安定していますか? それとも少し違いますか? これも重要な情報です。 最後に、コンスタレーション プロットを見て、そこでの違いも特定します。
ちょうど私の2セント