계층적 클러스터링: JMP & R은 동의하지 않습니다.Ward의 방법을 사용하여 JMP와 R에서 정확히 동일한 데이터 세트를 클러스터링할 때 동일하지 않은 결과를 얻습니다.R은 두 가지 옵션(ward.D 및 ward.D2)을 제공하며, 후자는 클러스터링하기 전에 거리 행렬의 값을 제곱합니다.에 따르면 무르타와 르장드르 (2014) , JMP도 마찬가지입니다. 그러나 R에서 method="ward.D2"를 지정하더라도 결과는 크게 다르지 않습니다. JMP에서 얻은 것과 관련하여 관찰의 약 15%가 일치하지 않습니다.
그래서, 질문 1: HCA에서 동일한 방법이 동일한 결과를 생성할 것이라고 예상하는 것이 잘못된 것입니까?k-means 클러스터링(최소한 시드 설정 없이)에서는 예상하지 못했지만 HCA의 경우 결과가 주어진 패키지 *내에서* 완전히 안정적이므로 *패키지 사이*도 동일해야 한다고 가정했습니다.
질문 2: *해야* 똑같다면... 왜 같지 않습니까?
- 가능성 A: 거리 행렬을 계산하는 방법에 차이가 있습니다.
- 가능성 B: Ward의 방법이 구현되는 방식에 차이가 있습니다.
- 가능성 C: R의 cutree() 함수는 JMP의 "클러스터 수 선택" 함수와 다른 작업을 수행합니다.
- 가능성 X... ???
R에서 덴드로그램을 업로드했습니다(네티켓이 좋지 않은 경우 사과드립니다!). x축을 따라 레이블을 자세히 살펴보면 내가 말하는 문제를 볼 수 있습니다.이러한 레이블은 모두 JMP에서 할당된 클러스터 수를 나타내는 1-5의 숫자로 끝납니다.보시다시피, 녹색 그룹("3")은 JMP와 R 사이에 완벽한 1:1 매치가 있었던 유일한 그룹이었습니다.
모든 안내에 감사드립니다. -Matt

해석학Re: 계층적 클러스터링: JMP & R이 동의하지 않음흠... 방금 JMP와 R에서 세 가지 다른 데이터 세트를 비교했으며("데이터 표준화" 또는 "scale()"을 사용하지 않고) 동일한 수의 클러스터를 사용할 때 분류가 각각 정확히 일치하는 것을 발견했습니다.내가 R에서 지정한 유일한 방법은 "dist" 함수에 'euclidean'을 사용하고 "hclust" 함수에 'ward.D2'를 사용하는 것이었습니다. R 및/또는 JMP 워크플로에서 다른 것을 지정하고 있습니까? 데이터가 얼마나 지저분합니까(누락... 이상값...)?생각할 거리를 제공하는 것뿐...
Re: 계층적 클러스터링: JMP & R이 동의하지 않음좋은 생각이지만 그것이 문제가 아니라고 생각합니다. 제가 작업하는 데이터 세트에는 모두 동일한 규모의 변수가 포함되어 있기 때문에 항상 JMP에서 "데이터 표준화"를 선택 해제합니다. 그리고 R에서 데이터를 표준화하려면 scale() 함수를 사용해야 합니다. 내가 결정할 수 있는 한 두 패키지 모두 표준화되지 않은 데이터에서 작동해야 합니다.Re: 계층적 클러스터링: JMP & R이 동의하지 않음전달해 주셔서 감사합니다. JMP에서 거리 행렬을 내보내고 그 값을 R에서 얻은 거리 행렬과 비교하는 것이 실제로 가치가 있다는 것을 깨달았습니다!그것은 불일치가 어디에서 오는지 좁히는 한 가지 방법이 될 것입니다.
Re: 계층적 클러스터링: JMP & R이 동의하지 않음제안에 감사드립니다. 이 문제를 다른 방법으로 해결할 수 없는 경우 기술 팀에 코드를 보내는 것이 옵션이라는 것을 아는 것이 좋습니다.
다른 질문에 대답하자면 그렇습니다. 각 패키지 내의 HCA 결과는 완전히 안정적입니다.
Re: 계층적 클러스터링: JMP & R이 동의하지 않음데이터가 한 패키지에서 표준화되고 다른 패키지에서는 표준화되지 않을 수 있습니까? JMP의 기본값은 "데이터 표준화"입니다.
Re: 계층적 클러스터링: JMP & R이 동의하지 않음이 스레드는 거리 행렬에도 도움이 될 수 있습니다.
https://community.jmp.com/t5/Discussions/which-distance-does-JMP-use-in-clustering/mp/275384#M53438
Re: 계층적 클러스터링: JMP & R이 동의하지 않음안녕하세요 matthal_resear님,
다른 패키지를 비교하는 것은 항상 뜨거운 주제입니다. JMP의 소스 코드를 볼 수 없기 때문에 JMP와 R 사이에 2번 항목에서 언급한 계산에 차이가 있는지 확인할 수 없습니다. 둘 다 Murtah & Legendre(2014)를 참조하지만 이것이 알고리즘이 완전히 유사한 방식으로 구현된다는 것을 의미하지는 않습니다. 특히 알고리즘의 핵심 전후가 다를 수 있습니다. 또한 잠재적인 서브루틴에서. 따라서 전체 코드를 확인할 방법이 없으므로 이 질문에 답할 수 없습니다. 사용 중인 R-Package에 대한 자세한 정보와 구체적인 루틴을 제공하여 JMP의 기술 지원 부서에 질문을 보낼 수 있습니다. 때때로 하나 이상의 R 함수를 사용할 수 있습니다. 그런 다음 그들은 무언가를 찾을 것이라고 말하지 않고 차이점을 확인할 기회를 가질 수 있습니다.
또 다른 생각입니다. 패키지 내의 결과가 HCA에 대해 안정적입니까? 아니면 약간 다른가요? 이것도 중요한 정보입니다. 마지막으로 차이점을 식별하기 위해 별자리 플롯을 살펴보겠습니다.
그냥 my2cents