상세 컨텐츠

본문 제목

JMP Clustering Analysis 2.Hierarchical clustering(계층적 군집분석)

카테고리 없음

by e5b 2024. 6. 29. 18:11

본문

반응형

 

계층적 클러스터링은 Bottom-Up으로 모든 데이터가 하나의 군집(Cluster)에 포함된다는 것을 시작으로 가장 가까운 군집을 병합하고 새로운 군집을 형성하는 것을 반복하는 분석 기법이다.   

 

 

 

메뉴 >> Analysis >> Clustering >> Hirearchical Cluster 경로로 실행하면 된다.

 

실행화면은 아래와 같다. 

 

 


근접한 군집을 찾는 거리 측정 방식(Method)에 여러 가지 방법을 사용하게 된다.  JMP에서는 아래의 방식을 제공한다.


Ward : 두 군집간 ANOVA 분석을 통한 방식. 즉, 오류의 제곱합이 적은 방향으로 군집


Average : 두 군집에서 데이터 하나씩 연결한 전체 거리의 평균

Centroid : 두 군집의 중심점간의 거리


Single : 두 군집에서 하나씩 임의의 데이터를 연결했을 때 가장 짧은 거리

Complete : 두 군집에서 하나씩 임의의 데이터를 연결했을 때 가장 긴 거리

 

Fast Ward : Ward 방식을 사용하지만, near-neighbor chains algorithm를 이용하여 거리를 계산한다. Row가 2000개 이상일 경우 자동으로 사용된다고 한다.

Hybrid Ward : Fast Ward 방식과 Ward 방식을 병합적으로 사용한 거리측정 방식. row가 수만 또는 수십만 개일 때 유용하다고 한다. 

 

Advanced Options는 Hybrid Ward 방식 적용시 상세 세팅 설정창이다.  

 

 


Data Format은 Data Table이 어떠한 구성이 되어 있느냐에 따라 설정하면 된다. 


기본적으로 변수가 Column 기준으로 분류되어 있으면 Data as usual을 사용하면 된다. 

Data is distance matrix는 샘플파일 Flight Distances.jmp 처럼 Data가 Matrix 형태로 되어 있는 Data Table 구조일 때 사용하면 된다. 


Data is stacked는 말 그대로 변수가 특정 ID값을 기준으로 적층구조인 Data Table에 사용할 수 있다. 이 Data format은 반도체 웨이퍼의 형태처럼 좌표 Column이 2개가 있을 경우 공간측정을 통해 계측적 군집분석이 어떠한 공간적 패턴을 구분하여 분석이 가능한 구조이다.  (이에 대해서는 다음에 알아보자)

 

 

예제 파일로 JMP Enhance Dataset의 예제 파일중 하나인 Selecting_Cities_for_A-B_Experiment.jmp를 사용해보자.

 

분석의 목적은 고수익 보험가입자에게 제공되는 서비스를 중간수익계층(MNW, Mid-Net-Worth)에게 제공했을 시 가입자가 늘어날지를 파악하기 위해 20개 도시를 둘로 나뉘어 A/B 테스트를 진행하고자 한다. 

 

이번 분석에는 연령대(은퇴계층, 중간, 젊은 계층) / 인당 평균수입(PCPI avg) / 도시의 성장률(Growth Rate) /  기업 브랜드 선호도(Brand Sent) / 금융 서비스 선호도(FS Sent) / 지난 5년간의 마케팅 효과(Mark Eff)의 변수조건을 고려하여 2개 이상의 그룹으로 나누는 것을 목적으로 하자.

 

 

 

파일을 열고 Hierarchical Cluster을 실행한다. 

 

Y, Columns에 변수조건에 해당되는 Column을 넣고 Label에는 Market(도시)를 넣는다. 

 

군집을 구분하는 Character Type의 Column이 있으면 계층적 구분을 해당 Column을 이용하고(가장 빠른 순서의 Column이 할당된다) 없다면 Row No를 기준으로 분류하게 됩니다. 분석 설정창에서 Label 항목란에서 직접 지정할 수도 있다.

 

각 변수조건이 Column으로 구분되어 있으므로 Data Format은 Data as usual으로 선택하면 되고, 군집 선택방식으로 Ward 방식으로 선택하고 OK 버튼을 클릭한다.  

 

 


분석결과창에 덴드로그램(Dendrogram)과 Clustering History을 확인할 수 있다.  



Clustering History는 설정한 거리측정 방식에 의해 Bottom에서부터 측정된 거리값이 나온다. Leader와 Joiner는 군집에서 선택된 임의 row 이름이다. 

덴드로그램은 군집이 어떻게 결합되어 있는지 보여주는 그래프이다.

Y축은 군집을 나타내고 X축은 거리를 나타낸다. 분류 단계에서 어느 군집군이 더 유사한 수준인지는 X축의 거리 비교를 통해 파악할 수 있다. 거리가 길수록 하위 군집들은 유사성이 높다고 판단할 수 있다.  거리에 대한 설정은 메뉴 >> Dendrogram Scale에서 변경할 수 있다. 

메뉴  >> Color Clusters를 선택하면 군집을 색상으로 구분해 준다. 덴드로그램 상단의 ◇ 표시를 움직여 원하고자 하는 군집의 수를 변경할 수 있는데 이경우 바로 색상이 변하게 되므로 직관적으로 파악하는데 도움이 되니 필히 선택한다.  

 



최적의 군집을 설정하는 방법은 덴드로그램을 보거나, 하단의 Distance graph를 보고 그래프의 기울기가 급격히 내려간 지점을 최적 지수로 파악할 수 있다. 또한 ▼ 메뉴  >>  Cluster Citeration를 통해 CCC값이 높은 군집수를 최적으로 선택할 수 있다. (초기 세팅에서 Data Format를 Data is distance matrix로 할 경우에는 지원되지 않는다.)

 

CCC(cubic clustering Criterion)에 대해서는 지난 k-means clustering을 참조하자.

2024.06.19 - [분류 전체 보기] - JMP Clustering analysis 1. k-means clustering

 

 


▼ 메뉴 >> Cluster Summary를 선택하면 분류한 군집에 해당되는 변수의 평균값 및 분산을 알 수 있고, Column Summary에는 군집을 결정하는 변수별 수정회귀계수(적합도)를 파악할 수 있다.

 

또한 군집별 변수의 평균값 Parallel Plot을 통한 각 군집 간의 특성 차이를 파악할 수 있다. 변수 각각의 Parallel Plot을 보기 위해서는 ▼ 메뉴 >> Parallel Coord Plots을 선택하면 확인할 수 있다. (이것은 군집수 변경 시에 interaction 되지 않는다)

 

Parallel Plot을 통해 구분했던 군집의 특성을 입력했던 변수 각각의 항목의 비중차이를 상대적으로 확인할 수 있어 군집패턴을 이해하는데 도움이 된다.  

 

3개의 군집으로 결정한 분석결과

 

Column Summary를 통해 지난 5년간의 마케팅 효과(Mark Eff) / 기업 브랜드 선호도(Brand Sent) / 금융 서비스 선호도(FS Sent) 순으로 비중이 높다는 것을 알 수 있고,

 

Cluster SummaryParallel Plot으로 통해 이 3가지 항목이 높고/낮은 그룹으로 구분되고, 이 항목이 높으나 연령층이 중간이나 젊은 그룹의 비중이 높고/낮은 그룹으로 나뉘는 것이 꽤 합리적으로 보인다. 

 

 


▼ 메뉴 >> Constellation Plot을 선택하면 군집을 2차원 평면에 표시한다.  

 

0,0의 중심에서 각 군집 간의 거리가 얼마나 떨어져 있는지 확인할 수 있고 군집 내 어떻게 분포되어 있는지 빠르게 파악할 수 있다. 위치는 임의로 생성한다고 한다. 

 



위에서 실행한 메뉴의 항목들을 추후 다시 분석을 할 때 동시에 실행되게 하려면 ▼ 메뉴 >> Platform Preference >> Save Changes to.. 를 선택하면 분석했던( ▼ 메뉴로 실행했던) 항목들이 기본값으로 설정된다.

 

 

 

분석결과 파일 공유

Selecting_Cities_for_A-B_Experiment #e5b.jmp
3.13MB

 

반응형