準1級-29 応用統計の手法
クラスター分析
- 階層型クラスター分析
- デンドログラム
- K-means法
- 距離行列
はじめに
「お客さんをタイプ別に分けたいけど、何タイプいるのかも分からない……」
あるお店に、1万人分の購入履歴があるとしましょう。よく来る人、たまに大きく買う人、セールだけ来る人。なんとなくタイプがありそうです。でも、誰がどのタイプかを書いた名簿は、どこにもありません。
前回の記事の判別分析では、群のラベルという「答え」を手本にして境界を引きました。ところが今回は、手本がありません。これでは線の引きようがないように思えますよね。
実は、答えがなくても手がかりはあります。「似たものは同じグループのはず」という考え方です。クラス替えの後、誰に言われなくても、気の合う人どうしで自然にグループができていくのと同じです。
そこで登場するのが、今回の主役 クラスター分析(cluster analysis) です。クラスター分析とは、データの似ている度合いをもとに、似たものどうしを クラスター(かたまり)にまとめる方法です。
今回の記事では、似ている度合いを表す距離行列、階層型クラスター分析とデンドログラム、K-means法について解説します。
距離行列:似ている度合いを数にする
はじめに、すべての出発点である距離行列について解説します。
「似ている」を計算するには、数にしなければなりません。そこで、2つの個体の離れ具合を 距離(非類似度) で表します。距離が小さいほど似ています。代表的な距離は次の3つです。 変数の個体 について、次のように定めます。
ユークリッド距離は、地図の上で2点を定規で測った長さです。マンハッタン距離は、碁盤の目の町を道路に沿って歩いた長さです。マハラノビス距離は、前回の記事で学んだように、ばらつきと相関を考えに入れた長さです。
具体的に見てみましょう。国語と数学の点数が の人と の人の距離は、次のようになります。
【2人の距離の計算】
- 各科目の差: 30点と40点
- ユークリッド距離:
- マンハッタン距離: 30 + 40 = 70
全部の組の距離を表にしたものが、距離行列 です。 個の個体なら の行列で、 成分が個体 と の距離です。電車の路線図にある「駅と駅の運賃表」を思い出してください。斜めの欄は自分から自分なので0で、左下と右上は同じ値です。つまり、距離行列は対角成分が0の対称行列です。
例えば、、、 の3点のユークリッド距離の行列は、次のようになります。
| A | B | C | |
|---|---|---|---|
| A | 0 | 5 | 4 |
| B | 5 | 0 | 3 |
| C | 4 | 3 | 0 |
ここで、注意すべき落とし穴があります。単位の違いです。例えば、身長(cm)と年収(万円)をそのまま使うと、数百の差が出る年収だけが距離を決めてしまいます。身長の差はほぼ無視されるのです。そこで、変数ごとに平均0、分散1に 標準化 してから距離を計算するのが基本です。
補足(ここは読み飛ばしてOK): 変数の動き方の似ている度合いを見たいときは、相関係数 から を距離として使うことがあります。また、ウォード法などではユークリッド距離の2乗を使います。
以上が、距離行列についての解説です。
階層型クラスター分析:近いものから順に併合する
次に、距離行列からクラスターを作る方法を説明します。
階層型クラスター分析 は、最初は全員を1人ずつのクラスターとし、最も近い2つを次々に併合していく方法です。トーナメント表を、1回戦から決勝へ向かって作っていくイメージです。
【階層型クラスター分析の手順】
- 個体1つ1つをクラスターとする
- 距離行列の中で最も近い2つのクラスターを併合する
- 新しいクラスターと、他のクラスターとの距離を計算し直す
- 全体が1つになるまで2と3を繰り返す
ここで問題になるのが、手順3です。個体どうしの距離は決まっていますが、「グループとグループの距離」はどう測ればよいのでしょうか? 測り方はいくつかあります。
【クラスター間の距離の測り方】
- 最短距離法(単連結法): 2つのクラスターの中で最も近い個体どうしの距離
- 最長距離法(完全連結法): 最も遠い個体どうしの距離
- 群平均法: すべての個体の組の距離の平均
- 重心法: クラスターの重心どうしの距離
- ウォード法: 併合したときの、クラスター内の平方和の増加量
クラス対抗の綱引きの「代表者」の選び方だと考えてください。最短距離法は、いちばん仲のよい2人がつながっていれば、クラス全体が近いと見なします。最長距離法は、いちばん仲の悪い2人を基準にします。
性質の違いは、次のとおりです。最短距離法は、近い個体を鎖のようにたどって細長いクラスターを作りやすいです。これを 鎖効果 と呼びます。最長距離法は、大きさのそろった丸いクラスターを作りやすいです。
実務でよく使われるのが、ウォード法です。クラスター 、 の大きさを 、重心を とすると、併合による平方和の増加量は次の式になります。
例えば、1次元のデータで と を併合するとします。重心は2と7なので、 です。実際に平方和を計算すると、併合前は2、併合後は約18.67で、増加量は同じ値になります。ウォード法は、この増加量が最小の組を併合します。
例題:距離行列から併合を進める
5つの店 A, B, C, D, E の距離行列が次のとおりです。最短距離法と最長距離法で、併合の順番と高さ(併合したときの距離)を求めましょう。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| A | 0 | 2 | 6 | 10 | 9 |
| B | 2 | 0 | 5 | 9 | 8 |
| C | 6 | 5 | 0 | 4 | 5 |
| D | 10 | 9 | 4 | 0 | 3 |
| E | 9 | 8 | 5 | 3 | 0 |
【解き方(最短距離法)】
- 最小は A と B の2なので併合する。高さは2
- 残りの最小は D と E の3なので併合する。高さは3
- クラスター間の距離を計算する: {A,B} と C は min(6, 5) = 5、{D,E} と C は min(4, 5) = 4、{A,B} と {D,E} は min(10, 9, 9, 8) = 8
- 最小の4で C と {D,E} を併合する。高さは4
- {A,B} と {C,D,E} の距離は min(5, 8) = 5 で併合する。高さは5
【解き方(最長距離法)】
- 最初の2回は同じで、高さは2と3
- クラスター間の距離を計算する: {A,B} と C は max(6, 5) = 6、{D,E} と C は max(4, 5) = 5、{A,B} と {D,E} は max(10, 9, 9, 8) = 10
- 最小の5で C と {D,E} を併合する。高さは5
- {A,B} と {C,D,E} の距離は max(6, 10) = 10 で併合する。高さは10
答えは、併合の順番はどちらも同じで、高さが最短距離法は 2, 3, 4, 5、最長距離法は 2, 3, 5, 10 です。群平均法なら 2, 3, 4.5, 約7.83 になります。最後の値は、{A,B} と {C,D,E} の6組の距離の平均 47 ÷ 6 です。
試験のポイント:手順の問題では、併合した後の距離の更新を、指定された方法で正しく行えるかが問われます。min と max を取り違えないようにしましょう。
以上が、階層型クラスター分析についての説明です。
デンドログラム:併合の歴史を読む
続いて、結果の見方であるデンドログラムについて解説します。
デンドログラム(樹形図) は、併合の歴史を木の形に描いたものです。デンドロはギリシャ語で「樹木」を意味します。家系図を想像してください。下の端に個体が並び、併合のたびに枝が1本にまとまります。
読み方の要点は次の3つです。
【デンドログラムの読み方】
- 縦軸(枝が合流する高さ): 併合したときの距離
- 高さで横に切る: 切った枝の本数が、クラスターの数
- 高い位置で合流する枝: 互いに似ていないクラスター
さきほどの例題の最長距離法で見てみましょう。枝は高さ 2, 3, 5, 10 で合流します。高さ7で横に切ると、{A,B} と {C,D,E} の2つのクラスターに分かれます。高さ4で切ると、{A,B}、{C}、{D,E} の3つです。
では、いくつのクラスターに切るのがよいのでしょうか? 目安は、合流の高さが急に大きくなる場所のすぐ下です。5から10への飛びは大きいですよね。これは「無理に合体させている」しるしなので、その手前の2クラスターで止めるのが自然です。
ここがポイントです。デンドログラムの横の並び順には、意味がありません。枝は合流点を軸に左右を入れ替えられるからです。モビールの飾りが回っても、つながり方は変わらないのと同じです。隣に描かれているから似ている、とは言えません。似ているかどうかは、合流点の高さで判断します。
せっかくなので、別の例も見てみましょう。同じ距離行列でも、最短距離法では 2, 3, 4, 5 と、高さが同じくらいの間隔で並びます。切る場所がはっきりしません。鎖効果が出るときによく見られる形です。つまり、どの測り方を使うかで、見える景色が変わります。
補足(ここは読み飛ばしてOK): 重心法では、併合の後のほうが高さが低くなる「逆転」が起きることがあります。デンドログラムが読みにくくなるので、重心法を使うときは注意が必要です。
階層型には、もう1つ特徴があります。一度併合した個体は、後で分かれません。囲碁の石のように、置いたらやり直しがきかないのです。また、距離行列は に比例する大きさになるので、個体が数万を超えると計算が重くなります。そこで、別の発想の方法が必要になります。
以上が、デンドログラムについての解説です。
K-means法:中心を動かして分け直す
最後に、もう1つの代表的な方法、K-means法を見ていきましょう。
K-means法 は、先にクラスターの数 を決めて、個体の所属を何度も分け直す方法です。階層を作らないので、非階層型クラスター分析 と呼ばれます。
学校の避難訓練を想像してください。校庭に 本の旗を立て、全員がいちばん近い旗に集まります。集まった人の真ん中へ旗を移すと、近い旗が変わる人が出てくるので、また集まり直します。これを、誰も移らなくなるまで繰り返します。
K-means法が小さくしている量は、次の クラスター内平方和 です。
はクラスター に属する個体の集合、 はその中心です。言葉で言うと、「全員の、自分の旗までの距離の2乗の合計」です。
【K-means法の手順】
- 個の中心の初期値を決める
- 割り当て: 各個体を最も近い中心のクラスターに入れる
- 更新: 各クラスターの中心を、所属する個体の平均に置き直す
- 所属が変わらなくなるまで2と3を繰り返す
なぜ止まるのでしょうか? 手順2では、近い中心に移るので は増えません。手順3では、平方和を最小にする点が平均なので は増えません。個体の分け方は有限個なので、 が減り続けることはできず、どこかで止まります。
例題:K-means法を手で回す
データ 1, 3, 4, 8, 9, 13 を に分けます。中心の初期値は1と4とします。
【解き方】
- 割り当て: 1は中心1へ、それ以外は中心4へ。
- 更新: 中心は1と、(3 + 4 + 8 + 9 + 13) ÷ 5 = 7.4 になる。
- 割り当て: 3と4は中心1のほうが近いので移る。{1, 3, 4} と {8, 9, 13} に分かれる。
- 更新: 中心は 8 ÷ 3 ≈ 2.67 と 30 ÷ 3 = 10 になる。
- 割り当て: 所属が変わらないので終了
答えは {1, 3, 4} と {8, 9, 13} で、 は 123 → 65.2 → 47.28 → 18.67 と減り続けました。全体の平方和は約99.3なので、分けることで大きく減ったことが分かります。
でも、K-means法には弱点があります。止まった場所が、最良とは限りません。具体的に見てみましょう。4点 、、、 を に分けます。左右に分ければ です。ところが、初期値が悪くて上下に分かれると、中心は と で、 です。しかも、どの点も今の中心のほうが近いので、これ以上は動きません。山道で、頂上ではない小さなくぼみにはまったようなものです。これを 局所解 と言います。
【K-means法の注意点】
- 初期値で結果が変わる: 初期値を変えて何度も実行し、 が最小のものを選ぶ
- は自分で決める: を増やすと は必ず減るので、 の減り方が鈍る点を探す(エルボー法)
- 丸いかたまりが得意: 細長い形や、大きさの大きく違うクラスターは苦手
- 外れ値に弱い: 中心が平均なので、外れ値に引っ張られる
- 単位の影響を受ける: 距離行列と同じで、標準化が基本
最後に、2つの方法を並べて整理しましょう。
| 階層型 | K-means法 | |
|---|---|---|
| 入力 | 距離行列 | 個体の値 |
| クラスターの数 | 後から切って決める | 先に決める |
| やり直し | できない | 所属を更新する |
| 結果 | デンドログラム | 所属と中心 |
| 大きなデータ | 重い | 軽い |
試験のポイント:クラスター分析には「正解のラベル」がありません。得られたクラスターの意味は、中心の値などを見て分析者が解釈します。
以上が、K-means法についての解説です。
細かい手順を忘れてしまっても問題ありません。ここでは、「階層型は近いものから併合し、K-means法は中心を動かして分け直す」という点だけ押さえておきましょう。
今回のまとめ
それでは、今回の内容を振り返ります。
今回は、答えのラベルがないデータを、似ているかどうかだけを頼りに分けるクラスター分析について紹介しました。判別分析が「手本のある仕分け」なら、クラスター分析は「手本のないグループ作り」です。だからこそ、距離の測り方や併合の方法によって結果が変わり、分析者の判断が大切になります。
今回のポイントを振り返りましょう。
振り返り
- 距離行列は運賃表のようなもの。対角が0の対称行列で、単位が違う変数は標準化してから作る。
- 階層型クラスター分析はトーナメント。最短距離法は鎖効果が出やすく、ウォード法は平方和の増加量で併合する。
- デンドログラムの高さは併合の距離。高さの飛びの手前で切り、横の並びは気にしない。
- K-means法は旗の移動。クラスター内平方和は増えないが、局所解に止まることがあるので初期値を変えて試す。
キーワードのおさらい
- 距離行列: すべての個体の組の距離を並べた、対角が0の対称行列
- 階層型クラスター分析: 最も近いクラスターを順に併合していく方法
- デンドログラム: 併合の順番と高さを表した樹形図
- K-means法: 中心への割り当てと中心の更新を繰り返す非階層型の方法
さて、今回は個体を分けました。では、変数のほうはどうでしょうか? 国語、英語、社会の点数がそろって高い人がいるのは、その背後に「文章を読む力」のような、目に見えない何かがあるからかもしれません。
次回は、観測できない因子を仮定して変数の構造を探る「因子分析と構造方程式モデル」について紹介します。
それでは、次の記事へ進んでいきましょう。