계층적 군집분석(HCA)
군집 수를 먼저 정하지 않고, 합쳐지는 순서부터 봅니다.
도서관 12곳을 운영하는 지방자치단체가 있다고 가정해 보겠습니다. 어떤 도서관은 자료 대출이 많고, 어떤 도서관은 어린이 프로그램 참여율이 높으며, 또 다른 도서관은 디지털 서비스 이용이 활발합니다. 이런 차이를 바탕으로 도서관들을 몇 개의 운영 유형으로 나누려면 어떻게 해야 할까요?
평균적인 특성이 비슷한 도서관을 묶는 군집분석을 사용할 수 있습니다. 하지만 처음부터 군집 수를 세 개 또는 네 개로 정하고 싶지는 않을 수도 있습니다. 비슷한 도서관들이 어떤 순서로 합쳐지는지 살펴본 다음, 적절한 구분 수준을 선택하고 싶다면 계층적 군집분석(Hierarchical Cluster Analysis, HCA)이 유용합니다.
HCA는 관측값 사이의 유사성이나 거리를 이용하여 단계적인 군집 구조를 만듭니다. 분석 결과는 주로 덴드로그램(Dendrogram)으로 표현하며, 가지가 합쳐지는 높이를 통해 군집 간 거리 또는 결합 기준을 살펴볼 수 있습니다.
이번 글에서는 거리 측정, 연결법, 표준화, 덴드로그램, 군집 수 결정, 군집 프로파일과 분석 시 주의사항을 하나의 사례로 살펴보겠습니다.
계층적 군집분석은 무엇인가요?
계층적 군집분석은 개별 관측값에서 출발해 더 큰 군집으로 합쳐 가거나, 전체 집단에서 출발해 작은 집단으로 나누어 가며 계층 구조를 만드는 방법입니다.
실무에서는 관측값 하나하나를 개별 군집으로 시작해 가까운 것부터 병합하는 병합적 군집분석(Agglomerative Clustering)을 많이 사용합니다.
예를 들어 도서관 A와 B가 가장 비슷하다면 이 둘을 먼저 묶습니다. 이후 C가 AB 군집과 비슷하다면 ABC 군집을 만들고, 이런 과정을 모든 도서관이 하나의 군집으로 합쳐질 때까지 반복합니다. 이렇게 얻은 결과는 하나의 군집 수로 고정된 분류표가 아니라, 다양한 높이에서 잘라 여러 군집 해를 살펴볼 수 있는 구조입니다.
반대로 분할적 군집분석(Divisive Clustering)은 전체를 하나의 군집으로 시작해 단계적으로 분리합니다. 두 방식 모두 계층적 군집분석에 속하지만 구체적인 알고리즘과 계산 비용은 다릅니다.
HCA는 K-Means와 어떻게 다른가요?
K-Means는 군집 수 K를 지정하고, 각 군집의 중심과 관측값 사이의 거리를 줄이는 방향으로 군집을 형성합니다.
반면 병합적 HCA는 관측값이 합쳐지는 순서를 먼저 구성하므로 여러 군집 수를 하나의 덴드로그램에서 검토할 수 있습니다.
| 비교 항목 | 계층적 군집분석(HCA) | K-Means |
|---|---|---|
| 기본 결과 | 병합 순서가 나타나는 계층 구조 | 지정한 K개의 군집 |
| 군집 수 | 덴드로그램을 만든 후 선택 가능 | 분석 시작 전 지정 |
| 거리·유사성 | 여러 거리 척도와 연결법 사용 | 일반적으로 유클리드 거리 기반 |
| 군집 재배정 | 전형적인 병합 알고리즘에서는 한 번 합친 군집을 되돌리지 않음 | 반복 과정에서 소속이 바뀔 수 있음 |
| 주요 활용 | 집단 간 유사성 구조 탐색 | 비교적 큰 수치형 데이터의 분할 |
어느 방법이 더 낫다고 일반화할 수는 없습니다. 데이터 크기, 군집의 모양, 거리의 의미, 설명 가능성에 따라 선택해야 합니다.
실제 사례: 공공도서관 운영 유형 찾기
한 도시에서 공공도서관 12곳의 2025년 운영 데이터를 수집했다고 가정하겠습니다.
분석 목적은 운영 실적을 단순 순위화하는 것이 아니라 서로 비슷한 서비스 특성을 가진 도서관을 묶는 것입니다.
| 변수 | 단위 | 의미 |
|---|---|---|
| 연간 대출 건수 | 천 건 | 자료 대출 중심의 이용 규모 |
| 연간 프로그램 참여자 | 천 명 | 문화·교육 프로그램 참여 규모 |
| 월평균 디지털 서비스 이용 | 천 회 | 전자자료·온라인 서비스 활용 |
| 어린이 프로그램 비중 | % | 프로그램 참여 중 어린이 대상 비율 |
도서관 규모가 크면 모든 이용 건수가 높게 나타날 수 있으므로, 실제 분석에서는 인구 또는 등록회원 수 대비 지표로 바꾸거나 규모 변수를 별도로 고려하는 방법도 검토해야 합니다.
여기서는 운영 프로파일의 차이를 비교하기 위해 네 변수를 표준화한 뒤 유클리드 거리와 Ward 연결법을 적용한다고 가정하겠습니다.
이하의 수치는 분석 개념을 이해하기 위한 예제입니다.
분석 전 표준화는 왜 필요한가요?
거리 기반 군집분석에서는 변수의 단위와 범위가 결과에 큰 영향을 줄 수 있습니다.
예를 들어 연간 대출 건수는 수만 건 단위이고 어린이 프로그램 비중은 0~100% 범위라면, 원자료의 유클리드 거리에서는 대출 건수 차이가 거의 모든 거리를 결정할 수 있습니다.
이 문제를 줄이는 대표적인 방법이 Z점수 표준화입니다.
zij = ( xij − x̄j ) ÷ sj
여기서 xij는 도서관 i의 변수 j에 대한 값이고, x̄j와 sj는 변수 j의 평균과 표준편차입니다. 표준화한 값은 서로 다른 단위를 비교할 수 있도록 만들어 줍니다.
다만 표준화만 하면 변수의 중요도가 자동으로 같아지는 것은 아닙니다. 연구 목적상 중요한 변수에 가중치를 부여할 수도 있으며, 극단값이 많은 경우에는 강건한 척도화 방법을 고려할 수 있습니다.
또한 변수 사이에 높은 중복이 있으면 같은 특성이 거리 계산에 반복 반영될 수 있습니다. 따라서 표준화 이전에 변수의 정의와 상관관계를 함께 살펴보는 것이 좋습니다.
거리 척도는 어떻게 선택하나요?
HCA는 관측값 간 거리를 토대로 군집을 만듭니다.
분석 목적에 따라 유클리드 거리, 맨해튼 거리, 상관 기반 거리 등 다양한 척도를 사용할 수 있습니다.
| 거리 척도 | 특징 | 고려할 상황 |
|---|---|---|
| 유클리드 거리 | 변수 차이 제곱합의 제곱근 | 연속형 변수의 절대적 차이 |
| 맨해튼 거리 | 변수 차이 절댓값의 합 | 축별 차이를 누적해 비교 |
| 상관 기반 거리 | 변수의 상대적인 변화 패턴 비교 | 크기보다 프로파일의 모양이 중요할 때 |
표준화된 두 도서관의 변수값이 A = (1, 0), B = (0, 1)이라고 가정하면 유클리드 거리는 √2 ≈ 1.414입니다. 여기서 두 좌표는 실제 도서관의 전체 데이터를 단순화한 계산 예입니다.
거리 척도마다 가까운 도서관의 순서가 달라질 수 있으므로 선택 근거를 명시해야 합니다. 특히 Ward 연결법은 일반적으로 유클리드 거리의 제곱오차 증가에 기반하므로 임의의 거리 척도와 조합해서 같은 의미로 해석하면 안 됩니다.
연결법(Linkage)은 왜 중요한가요?
관측값 두 개 사이의 거리를 계산하는 것과 이미 형성된 두 군집 사이의 거리를 계산하는 것은 다른 문제입니다.
군집 간 거리를 정의하는 규칙을 연결법(Linkage Method)이라고 합니다.
| 연결법 | 두 군집을 비교하는 기준 | 주의점 |
|---|---|---|
| 단일 연결법(Single) | 서로 가장 가까운 두 점의 거리 | 길게 이어지는 사슬형 군집이 생길 수 있음 |
| 완전 연결법(Complete) | 서로 가장 먼 두 점의 거리 | 상대적으로 촘촘한 군집을 선호 |
| 평균 연결법(Average) | 군집 간 모든 점쌍 거리의 평균 | 군집 전체의 평균적 거리 반영 |
| Ward 연결법 | 병합에 따른 군집 내 제곱합 증가량 | 수치형 자료와 유클리드 기하 구조에 적합 |
Ward 연결법은 두 군집을 합쳤을 때 군집 내 변동이 얼마나 증가하는지를 기준으로 병합합니다. 따라서 비슷한 값들이 모인 군집을 형성하는 데 유용할 수 있습니다. 하지만 군집이 크기나 모양에서 매우 이질적이거나 극단값이 많으면 기대한 결과가 나타나지 않을 수 있습니다.
이 예제에서는 표준화된 네 개의 운영 지표와 Ward 연결법을 사용하겠습니다.
덴드로그램은 어떻게 읽나요?
덴드로그램은 병합적 군집분석에서 어떤 관측값과 군집이 어떤 순서로 합쳐졌는지 보여주는 나무형 그래프입니다.
가로축에는 개별 도서관 또는 군집이 표시되고, 세로축에는 군집이 합쳐지는 수준이 표시됩니다.
예를 들어 두 도서관이 낮은 높이에서 합쳐졌다면 운영 특성이 해당 연결 기준에서 매우 유사한 편이라고 볼 수 있습니다. 반면 서로 다른 두 큰 군집이 높은 수준에서 합쳐진다면 군집 사이의 차이가 상대적으로 크다는 뜻입니다.
주의할 점은 덴드로그램의 세로축이 언제나 원래의 유클리드 거리 자체를 뜻하지는 않는다는 사실입니다. 특히 Ward 연결법에서는 사용하는 소프트웨어의 정의에 따라 제곱합 증가와 연관된 병합 높이가 표시될 수 있습니다. 따라서 그래프의 축 이름과 분석 설정을 함께 확인해야 합니다.
덴드로그램에서 높이가 크게 증가하는 병합 바로 아래를 자르면 서로 구분되는 군집을 얻을 수 있습니다. 그러나 눈으로 보이는 간격 하나만으로 군집 수가 객관적으로 확정되는 것은 아닙니다.
군집 수는 어떻게 결정하나요?
HCA는 군집 수를 반드시 먼저 정하지 않아도 되지만, 도서관의 운영 유형을 최종 보고하려면 몇 개의 군집으로 구분할지 결정해야 합니다.
덴드로그램의 병합 높이 변화, 실루엣 계수(Silhouette Score), 군집의 해석 가능성, 군집별 최소 표본 수 등을 함께 검토할 수 있습니다. 실루엣 계수는 관측값이 자기 군집과 얼마나 가까우면서 다른 군집과는 얼마나 떨어져 있는지를 요약합니다.
| 군집 수 | 평균 실루엣 계수 | 검토 의견 |
|---|---|---|
| 2개 | 0.38 | 서로 다른 운영 유형이 지나치게 합쳐짐 |
| 3개 | 0.49 | 구분과 해석의 균형이 비교적 좋음 |
| 4개 | 0.41 | 일부 군집이 매우 작아짐 |
| 5개 | 0.35 | 결과가 지나치게 세분화됨 |
이 결과에서는 세 개의 군집을 선택할 수 있습니다. 다만 도서관이 12곳밖에 없으므로 실루엣 계수의 작은 차이에 지나치게 의존해서는 안 됩니다. 결과가 거리 척도나 표준화 방식에 따라 얼마나 달라지는지도 중요합니다.
실제 군집 결과는 어떻게 해석하나요?
세 개 군집으로 덴드로그램을 자른 결과를 다음과 같이 가정하겠습니다.
아래 값은 이해를 돕기 위한 군집별 원래 단위의 평균값이며, 분석에 사용한 표준화 점수와는 구분됩니다.
| 구분 | 군집 1 | 군집 2 | 군집 3 |
|---|---|---|---|
| 도서관 수 | 4곳 | 5곳 | 3곳 |
| 연간 대출(천 건) | 125 | 76 | 58 |
| 연간 프로그램 참여(천 명) | 19 | 35 | 16 |
| 월 디지털 이용(천 회) | 42 | 25 | 68 |
| 어린이 프로그램 비중 | 22% | 49% | 18% |
군집 1은 대출 건수가 상대적으로 높아 자료 대출 중심형, 군집 2는 프로그램 참여와 어린이 프로그램 비중이 높아 지역 프로그램 중심형, 군집 3은 디지털 서비스 이용이 높아 디지털 서비스 중심형이라고 해석할 수 있습니다.
다만 이러한 명칭은 분석 알고리즘이 자동으로 부여한 객관적인 유형이 아닙니다. 실제 운영 지표와 정책 목적을 검토한 연구자의 해석입니다. 또한 군집 간 평균이 다르다는 사실만으로 차이가 모집단에서 통계적으로 유의하거나 운영 전략 때문에 발생했다고 결론 내릴 수는 없습니다.
이상치와 작은 표본은 어떤 영향을 주나요?
계층적 군집분석은 거리가 매우 먼 관측값의 영향을 받을 수 있습니다.
예를 들어 한 도서관만 대출 건수나 디지털 서비스 이용량이 극단적으로 높다면 덴드로그램에서 해당 도서관이 다른 군집과 늦게 합쳐질 수 있습니다.
이것은 실제로 독특한 유형의 도서관이 존재한다는 신호일 수도 있지만, 단위 입력 오류나 자료 집계 방식 차이 때문일 수도 있습니다. 따라서 분석 전 극단값과 결측값을 확인해야 합니다.
또한 병합적 HCA의 전형적인 알고리즘은 한 번 합쳐진 군집을 다음 단계에서 다시 분리하지 않습니다.
초기에 부적절한 병합이 발생하면 이후 구조에도 영향을 미칠 수 있습니다. 표본이 작은 경우에는 관측값 하나의 변화에도 군집 구성이 크게 달라질 수 있으므로 안정성 점검이 중요합니다.
군집 결과의 안정성은 어떻게 확인하나요?
군집분석은 정답 레이블이 없는 경우가 많기 때문에 하나의 분석 설정에서 나온 결과를 확정적인 분류로 받아들이지 않는 것이 좋습니다.
예를 들어 다음과 같은 민감도 분석을 실시할 수 있습니다. 표준화 방법을 바꾸거나, Ward 외에 평균 연결법을 적용하고, 일부 변수의 포함 여부를 변경한 뒤 군집 구성이 얼마나 유사한지 확인하는 것입니다. 관측값을 일부 제외하거나 부트스트랩 표본으로 다시 군집을 만든 뒤 군집 안정성을 살펴볼 수도 있습니다.
군집 결과를 비교할 때는 조정 랜드 지수(Adjusted Rand Index, ARI) 같은 지표를 활용할 수 있습니다. 다만 표본이 매우 작은 경우 이 지표도 변동성이 클 수 있으므로 수치와 함께 어떤 도서관의 소속이 달라졌는지 직접 확인하는 것이 좋습니다.
운영상 의미 있는 유형을 제안하는 것이 목적이라면 군집 내부의 공통 특성과 다른 군집과의 차이를 도서관 담당자와 함께 검토하는 과정도 도움이 됩니다.
계층적 군집분석에서 주의할 점
거리와 연결법을 함께 선택해야 합니다.
거리 척도는 무엇을 비슷하다고 볼지 결정하고, 연결법은 군집끼리 어떤 기준으로 합칠지 결정합니다. 특히 Ward 연결법에 임의의 비유클리드 거리를 적용해 동일한 분산 최소화 의미로 해석하지 않아야 합니다.
변수의 단위와 중복을 확인해야 합니다.
표준화를 생략하면 규모가 큰 변수가 거리를 지배할 수 있고, 비슷한 정보를 가진 변수를 여러 개 포함하면 특정 특성이 과도하게 반영될 수 있습니다.
군집 수를 덴드로그램의 모양만으로 정하지 않아야 합니다.
병합 높이뿐 아니라 실루엣 계수, 군집 크기, 해석 가능성, 다른 분석 설정에서의 안정성을 함께 확인해야 합니다.
덴드로그램의 가까움과 인과관계를 혼동하지 않아야 합니다.
두 도서관의 운영 지표가 비슷하다는 사실은 한 도서관이 다른 도서관에 영향을 주었다는 의미가 아닙니다.
군집 이름을 객관적 진단처럼 사용하지 않아야 합니다.
군집 이름은 관측된 특성을 설명하기 위한 해석이며, 실제 도서관의 품질이나 성과 우열을 직접 나타내는 평가 점수가 아닙니다.
HCA 결과는 어떻게 보고하나요?
계층적 군집분석 결과를 보고할 때는 표본 수와 분석변수, 결측 처리, 표준화 방법, 거리 척도, 연결법, 군집 수 결정 근거, 최종 군집별 특징 등을 제시해야 합니다.
가능하면 덴드로그램과 군집별 프로파일 표를 함께 제공하는 것이 좋습니다.
결과 보고 예시
공공도서관의 운영 특성에 따른 유형을 파악하기 위해 도서관 12곳의 연간 대출 건수, 프로그램 참여자 수, 디지털 서비스 이용량, 어린이 프로그램 비중을 이용한 계층적 군집분석을 실시하였다. 분석변수를 Z점수로 표준화한 뒤 유클리드 거리와 Ward 연결법을 적용하였다. 덴드로그램과 군집별 실루엣 계수, 군집 크기 및 해석 가능성을 함께 검토한 결과 3개 군집을 선택하였다.
군집 1에는 대출 건수가 많은 도서관 4곳이 포함되어 자료 대출 중심형으로, 군집 2에는 프로그램 참여와 어린이 프로그램 비중이 높은 도서관 5곳이 포함되어 지역 프로그램 중심형으로, 군집 3에는 디지털 서비스 이용이 활발한 도서관 3곳이 포함되어 디지털 서비스 중심형으로 해석하였다. 이러한 결과는 도서관의 운영 특성이 하나의 순위로만 설명되지 않으며 서로 다른 서비스 프로파일로 구분될 수 있음을 보여준다.
실제 연구에서는 군집별 변수의 분포와 안정성 검토 결과를 함께 보고해야 합니다.
HCA는 분류 결과뿐 아니라 묶이는 과정까지 보여줍니다
계층적 군집분석은 관측값 사이의 거리를 바탕으로 유사한 대상들이 어떻게 단계적으로 합쳐지는지 보여주는 분석 방법입니다.
K-Means처럼 처음부터 하나의 군집 수를 정하는 대신 덴드로그램에서 여러 분할 수준을 검토할 수 있다는 특징이 있습니다.
하지만 결과는 거리 척도와 연결법, 변수의 표준화, 이상치, 표본 구성에 따라 달라질 수 있습니다. 따라서 덴드로그램의 모양만으로 군집의 의미를 확정하기보다는 군집별 특성과 안정성을 함께 평가해야 합니다.
HCA의 핵심은 데이터를 몇 개의 군집으로 나누는 것에 그치지 않고, 대상들 사이의 유사성 구조가 어떤 계층으로 형성되는지 이해하는 데 있습니다.