玄関雑学の部屋雑学コーナー統計学入門

第20章 クラスター分析

この章ではクラスター分析の目的と原理、そして各種のアルゴリズムについて解説します。

20.1 クラスター分析の原理

(1) クラスター

クラスター分析(cluster analysis)は多くの個体を少数のグループつまりクラスター(集落)に分類する手法です。 その際、判別分析のように既存のグループに個体を分けるのではなく、個体の性質に基づいて似たもの同士を集めて新たなグループを作ります。 この手法は生物をその形態学的な特徴に基いて色々な種に分類する時とか、顧客をその特徴に基いていくつかのグループに分ける時などに用いられます。 医学分野では患者をその特徴に基づいていくつかのグループに分類するよりも、既存のグループ——普通は疾患——に属するかどうかを判別する方が多いので、この手法はあまり用いられません。

例えば6名の被験者を対象にして趣味に関するアンケートを行い、スポーツ好きの程度と読書好きの程度を10段階で評価したデータが表20.1.1のようになったとします。 そしてこのデータを散布図にプロットしたものが図20.1.1です。 このデータにクラスター分析を適用して、クラスター分析の原理を説明しましょう。

表20.1.1 趣味の程度
被験者IDスポーツ好きの程度読書好きの程度
111
234
343
442
563
693
図20.1.1 趣味の程度の散布図

(2) 距離と類似度

判別分析と違ってクラスター分析は数学的に明確なモデルを設定せず、データに基いて個体と個体の関係を見やすいように要約し、そこから何かをヒューリスティック(heuristic、発見的)に読み取ろうという記述統計学的手法であり、データマイニングの一種でもあります。 例えば図20.1.1を見ると2〜5番の被験者がかたまっていて、1番と6番の被験者が少し離れていることが何となくわかります。 このことを数学的に表すために、クラスター分析では個体間の「遠さ/近さ」を距離(distance)または類似度(association)を用いて表します。

(i) ユークリッド距離

ユークリッド幾何学で使われる距離であり、普通は平方した値を用いるのでユークリッド平方距離とも呼ばれます。 被検者iについてp個の項目を測定したデータをxi1、…、xij、…、xip、被検者kについて同様のデータをxk1、…、xkj、…、xkpとすると、iとjのユークリッド距離は次のように定義されます。


<例>表20.1.1の1番と2番の距離:d122 = (1 - 3)2 + (1 - 4)2 = 13

次のように少し修飾したユークリッド距離を使う時もあります。

○重み付きユークリッド距離:各変数の重要度を変える時に用いられる
 (wj:重み)
<例>表20.1.1の1番と2番の距離:スポーツ好きの程度の重みを1、読書好きの程度の重みを2とした時
d122 = 1×(1 - 3)2 + 2×(1 - 4)2 = 22
○標準ユークリッド距離:各変数の単位が異なる時に使用される
 (Vj:xjの分散、)
<例>表20.1.1の1番と2番の距離:スポーツ好きの程度の分散 = 7.5、読書好きの程度の分散 = 1.067

(ii) マハラノビスの汎距離

判別分析で用いられる距離であり、変数のバラツキ具合つまり分散と、変数間の関連性を考慮した汎用的な距離です。 定義式が少し複雑なので、この距離については第9章の第4節と、そのページの(注2)を御覧ください。 (→9.4 多変量の場合)

(iii) 不一致係数(unmatching coefficient)

各変数が「0:無 1:有」のダミーデータで表される時に用いられる非類似度であり、ユークリッド距離と似た値です。 この値は個体iとkの各変数をクロス集計した2×2の分割表に基いて、次のように2つの個体の「0/1」が一致していない割合として定義されます。

表20.1.2 個体iとkのクロス集計表
個体i\個体kxkj=0xkj=1
xij=0aba+b
xij=1cdc+d
a+cb+dn
 (b + c:ユークリッド距離に相当)

(iv) 一致係数(matching coefficient)

2つの個体の「0/1」が一致している割合を表し、1から不一致係数を引いた値になります。

(3) アルゴリズム

クラスター分析は、個体をグループ分けする方法の違いによって階層的クラスター分析(hierarchical cluster analysis)非階層的クラスター分析に大別できます。 階層的クラスター分析は、まず最も似ている個体をまとめて小規模なグループを作り、次にそれらのグループの中で最も似ているグループ同士をまとめて大規模なグループを作るというように、階層的にクラスターを作っていく方法です。

それに対して非階層的クラスター分析は、最初にクラスター数を決めておき、似た個体は同じクラスターに属し、異なった個体は別のクラスターに属し、クラスター同士はできるだけ異なった性質を持つようにグループ分けする方法です。 非階層的クラスター分析は主としてマーケットリサーチの分野で用いられる手法なので、ここでは階層的クラスター分析について説明しましょう。

階層的クラスター分析では次のような手順でクラスターを作ります。

  1. 最初に個々の個体を構成単位にして、個体数と同じ個数のクラスターを作る。
  2. クラスター間の距離または類似度に基いて、最も距離の近い2つのクラスターを1つのクラスターに融合する。
  3. クラスター数が1つになったら終了、そうでなければ4番に進む。
  4. 融合後のクラスターと他のクラスターの距離を更新し、2番に戻る。

今、クラスターgとhとkがあり、gとhの距離をdgh、gとkの距離をdgk、hとkの距離をdhkとします。 そしてgとhを融合して新しいクラスターgを作成した時、つまりhをgに融合した時、融合後のgとkの距離をdg*kとします。

図20.2 融合後のクラスター間の距離

このdg*kをどのように定義するかについて、次のように色々な方法があります。 これらの方法は組み合わせ的手法(combinatorial method)と呼ばれます。

(i) 最短距離法(nearest neighbour method、single linking)

融合前の2つのクラスターと他のクラスターの距離のうち、短い方の距離を融合後の距離にする方法です。 この方法は個体が1つの方向に長い鎖状(chain)に連なっている時に適しています。 しかしそうでない時は空間の濃縮が起こりやすく、クラスターの分離度が悪くなる傾向があります。

dg*k:dgkとdhkの小さい方

(ii) 最長距離法(furthest neighbour method、complete linking)

最短距離法とは反対に、融合前の2つのクラスターと他のクラスターの距離のうち、長い方の距離を融合後の距離にする方法です。 この方法は個体がいくつかの団子状(globular)にかたまっている時に適しています。 しかしそうでない時は空間の拡散が起こりやすく、クラスターが分離していく傾向があります。

dg*k:dgkとdhkの大きい方

(iii) メジアン法(median method)

最短距離法と最長距離法を折衷した方法であり、融合前の2つのクラスターと他のクラスターとの距離の中央値を融合後の距離にする方法です。 この方法は個体がいくつかの集団になっていて、それぞれの集団に含まれる個体数がバラバラの時に適しています。

(iv) 重心法(centroid method)

融合後のクラスターの距離的重心と他のクラスターの距離を融合後の距離にする方法です。 この方法は個体がいくつかの集団になっていて、それぞれの集団に含まれる個体数が大体同じ時に適しています。

融合前のクラスターgの個体数をng、hの個体数をnhとすると

(v) 群平均法(group average method)

融合後のクラスターの全ての個体と他のクラスターの距離を求め、その平均値を融合後の距離にする方法です。 この方法は個体が長い鎖状になっている時にも団子状にかたまっている時にも適しています。 しかし次のウォード法より少しバランスが悪い傾向があります。

(vi) ウォード法(Ward's method)

融合後のクラスター内の個体間距離の平方和を最小にする点を求め、その点と他のクラスターとの距離を融合後の距離にする方法です。 この方法は最もバランスの取れた方法であり、実際に利用されることの多い方法です。

他のクラスターkの個体数をnkとすると