統計学 学習ノート

統計検定の4級から1級まで、出題範囲の順に記事と練習問題で学ぶ

準1級-29 応用統計の手法

クラスター分析

  • 階層型クラスター分析
  • デンドログラム
  • K-means法
  • 距離行列

はじめに

「お客さんをタイプ別に分けたいけど、何タイプいるのかも分からない……」

あるお店に、1万人分の購入履歴があるとしましょう。よく来る人、たまに大きく買う人、セールだけ来る人。なんとなくタイプがありそうです。でも、誰がどのタイプかを書いた名簿は、どこにもありません。

前回の記事の判別分析では、群のラベルという「答え」を手本にして境界を引きました。ところが今回は、手本がありません。これでは線の引きようがないように思えますよね。

実は、答えがなくても手がかりはあります。「似たものは同じグループのはず」という考え方です。クラス替えの後、誰に言われなくても、気の合う人どうしで自然にグループができていくのと同じです。

そこで登場するのが、今回の主役 クラスター分析(cluster analysis) です。クラスター分析とは、データの似ている度合いをもとに、似たものどうしを クラスター(かたまり)にまとめる方法です。

今回の記事では、似ている度合いを表す距離行列、階層型クラスター分析とデンドログラム、K-means法について解説します。

距離行列:似ている度合いを数にする

はじめに、すべての出発点である距離行列について解説します。

「似ている」を計算するには、数にしなければなりません。そこで、2つの個体の離れ具合を 距離(非類似度) で表します。距離が小さいほど似ています。代表的な距離は次の3つです。pp 変数の個体 xi,xjx_i, x_j について、次のように定めます。

ユークリッド距離d(xi,xj)=∑k=1p(xik−xjk)2\text{ユークリッド距離}\quad d(x_i, x_j) = \sqrt{\sum_{k=1}^{p}(x_{ik} - x_{jk})^2} マンハッタン距離d(xi,xj)=∑k=1p∣xik−xjk∣\text{マンハッタン距離}\quad d(x_i, x_j) = \sum_{k=1}^{p}|x_{ik} - x_{jk}| マハラノビス距離d(xi,xj)=(xi−xj)⊤S−1(xi−xj)\text{マハラノビス距離}\quad d(x_i, x_j) = \sqrt{(x_i - x_j)^\top S^{-1}(x_i - x_j)}

ユークリッド距離は、地図の上で2点を定規で測った長さです。マンハッタン距離は、碁盤の目の町を道路に沿って歩いた長さです。マハラノビス距離は、前回の記事で学んだように、ばらつきと相関を考えに入れた長さです。

具体的に見てみましょう。国語と数学の点数が (70,40)(70, 40) の人と (40,80)(40, 80) の人の距離は、次のようになります。

【2人の距離の計算】

  1. 各科目の差: 30点と40点
  2. ユークリッド距離: 302+402=50\sqrt{30^2 + 40^2} = 50
  3. マンハッタン距離: 30 + 40 = 70

全部の組の距離を表にしたものが、距離行列 です。nn 個の個体なら n×nn \times n の行列で、(i,j)(i, j) 成分が個体 ii と jj の距離です。電車の路線図にある「駅と駅の運賃表」を思い出してください。斜めの欄は自分から自分なので0で、左下と右上は同じ値です。つまり、距離行列は対角成分が0の対称行列です。

例えば、A(1,1)A(1, 1)、B(4,5)B(4, 5)、C(1,5)C(1, 5) の3点のユークリッド距離の行列は、次のようになります。

ABC
A054
B503
C430

ここで、注意すべき落とし穴があります。単位の違いです。例えば、身長(cm)と年収(万円)をそのまま使うと、数百の差が出る年収だけが距離を決めてしまいます。身長の差はほぼ無視されるのです。そこで、変数ごとに平均0、分散1に 標準化 してから距離を計算するのが基本です。

補足(ここは読み飛ばしてOK): 変数の動き方の似ている度合いを見たいときは、相関係数 rr から 1−r1 - r を距離として使うことがあります。また、ウォード法などではユークリッド距離の2乗を使います。

以上が、距離行列についての解説です。

階層型クラスター分析:近いものから順に併合する

次に、距離行列からクラスターを作る方法を説明します。

階層型クラスター分析 は、最初は全員を1人ずつのクラスターとし、最も近い2つを次々に併合していく方法です。トーナメント表を、1回戦から決勝へ向かって作っていくイメージです。

【階層型クラスター分析の手順】

  1. 個体1つ1つをクラスターとする
  2. 距離行列の中で最も近い2つのクラスターを併合する
  3. 新しいクラスターと、他のクラスターとの距離を計算し直す
  4. 全体が1つになるまで2と3を繰り返す

ここで問題になるのが、手順3です。個体どうしの距離は決まっていますが、「グループとグループの距離」はどう測ればよいのでしょうか? 測り方はいくつかあります。

【クラスター間の距離の測り方】

  1. 最短距離法(単連結法): 2つのクラスターの中で最も近い個体どうしの距離
  2. 最長距離法(完全連結法): 最も遠い個体どうしの距離
  3. 群平均法: すべての個体の組の距離の平均
  4. 重心法: クラスターの重心どうしの距離
  5. ウォード法: 併合したときの、クラスター内の平方和の増加量

クラス対抗の綱引きの「代表者」の選び方だと考えてください。最短距離法は、いちばん仲のよい2人がつながっていれば、クラス全体が近いと見なします。最長距離法は、いちばん仲の悪い2人を基準にします。

性質の違いは、次のとおりです。最短距離法は、近い個体を鎖のようにたどって細長いクラスターを作りやすいです。これを 鎖効果 と呼びます。最長距離法は、大きさのそろった丸いクラスターを作りやすいです。

実務でよく使われるのが、ウォード法です。クラスター aa、bb の大きさを na,nbn_a, n_b、重心を ca,cbc_a, c_b とすると、併合による平方和の増加量は次の式になります。

Δ=nanbna+nb ∥ca−cb∥2\Delta = \frac{n_a n_b}{n_a + n_b}\,\|c_a - c_b\|^2

例えば、1次元のデータで {1,3}\{1, 3\} と {7}\{7\} を併合するとします。重心は2と7なので、Δ=2×13×25≈16.67\Delta = \frac{2 \times 1}{3} \times 25 \approx 16.67 です。実際に平方和を計算すると、併合前は2、併合後は約18.67で、増加量は同じ値になります。ウォード法は、この増加量が最小の組を併合します。

例題:距離行列から併合を進める

5つの店 A, B, C, D, E の距離行列が次のとおりです。最短距離法と最長距離法で、併合の順番と高さ(併合したときの距離)を求めましょう。

ABCDE
A026109
B20598
C65045
D109403
E98530

【解き方(最短距離法)】

  1. 最小は A と B の2なので併合する。高さは2
  2. 残りの最小は D と E の3なので併合する。高さは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. 最小の4で C と {D,E} を併合する。高さは4
  5. {A,B} と {C,D,E} の距離は min(5, 8) = 5 で併合する。高さは5

【解き方(最長距離法)】

  1. 最初の2回は同じで、高さは2と3
  2. クラスター間の距離を計算する: {A,B} と C は max(6, 5) = 6、{D,E} と C は max(4, 5) = 5、{A,B} と {D,E} は max(10, 9, 9, 8) = 10
  3. 最小の5で C と {D,E} を併合する。高さは5
  4. {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つです。

【デンドログラムの読み方】

  1. 縦軸(枝が合流する高さ): 併合したときの距離
  2. 高さで横に切る: 切った枝の本数が、クラスターの数
  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つ特徴があります。一度併合した個体は、後で分かれません。囲碁の石のように、置いたらやり直しがきかないのです。また、距離行列は n2n^2 に比例する大きさになるので、個体が数万を超えると計算が重くなります。そこで、別の発想の方法が必要になります。

以上が、デンドログラムについての解説です。

K-means法:中心を動かして分け直す

最後に、もう1つの代表的な方法、K-means法を見ていきましょう。

K-means法 は、先にクラスターの数 KK を決めて、個体の所属を何度も分け直す方法です。階層を作らないので、非階層型クラスター分析 と呼ばれます。

学校の避難訓練を想像してください。校庭に KK 本の旗を立て、全員がいちばん近い旗に集まります。集まった人の真ん中へ旗を移すと、近い旗が変わる人が出てくるので、また集まり直します。これを、誰も移らなくなるまで繰り返します。

K-means法が小さくしている量は、次の クラスター内平方和 です。

W=∑k=1K ∑i∈Ck∥xi−ck∥2W = \sum_{k=1}^{K}\ \sum_{i \in C_k} \|x_i - c_k\|^2

CkC_k はクラスター kk に属する個体の集合、ckc_k はその中心です。言葉で言うと、「全員の、自分の旗までの距離の2乗の合計」です。

【K-means法の手順】

  1. KK 個の中心の初期値を決める
  2. 割り当て: 各個体を最も近い中心のクラスターに入れる
  3. 更新: 各クラスターの中心を、所属する個体の平均に置き直す
  4. 所属が変わらなくなるまで2と3を繰り返す

なぜ止まるのでしょうか? 手順2では、近い中心に移るので WW は増えません。手順3では、平方和を最小にする点が平均なので WW は増えません。個体の分け方は有限個なので、WW が減り続けることはできず、どこかで止まります。

例題:K-means法を手で回す

データ 1, 3, 4, 8, 9, 13 を K=2K = 2 に分けます。中心の初期値は1と4とします。

【解き方】

  1. 割り当て: 1は中心1へ、それ以外は中心4へ。W=123W = 123
  2. 更新: 中心は1と、(3 + 4 + 8 + 9 + 13) ÷ 5 = 7.4 になる。W=65.2W = 65.2
  3. 割り当て: 3と4は中心1のほうが近いので移る。{1, 3, 4} と {8, 9, 13} に分かれる。W=47.28W = 47.28
  4. 更新: 中心は 8 ÷ 3 ≈ 2.67 と 30 ÷ 3 = 10 になる。W≈18.67W \approx 18.67
  5. 割り当て: 所属が変わらないので終了

答えは {1, 3, 4} と {8, 9, 13} で、WW は 123 → 65.2 → 47.28 → 18.67 と減り続けました。全体の平方和は約99.3なので、分けることで大きく減ったことが分かります。

でも、K-means法には弱点があります。止まった場所が、最良とは限りません。具体的に見てみましょう。4点 (0,0)(0, 0)、(0,2)(0, 2)、(5,0)(5, 0)、(5,2)(5, 2) を K=2K = 2 に分けます。左右に分ければ W=4W = 4 です。ところが、初期値が悪くて上下に分かれると、中心は (2.5,0)(2.5, 0) と (2.5,2)(2.5, 2) で、W=25W = 25 です。しかも、どの点も今の中心のほうが近いので、これ以上は動きません。山道で、頂上ではない小さなくぼみにはまったようなものです。これを 局所解 と言います。

【K-means法の注意点】

  1. 初期値で結果が変わる: 初期値を変えて何度も実行し、WW が最小のものを選ぶ
  2. KK は自分で決める: KK を増やすと WW は必ず減るので、WW の減り方が鈍る点を探す(エルボー法)
  3. 丸いかたまりが得意: 細長い形や、大きさの大きく違うクラスターは苦手
  4. 外れ値に弱い: 中心が平均なので、外れ値に引っ張られる
  5. 単位の影響を受ける: 距離行列と同じで、標準化が基本

最後に、2つの方法を並べて整理しましょう。

階層型K-means法
入力距離行列個体の値
クラスターの数後から切って決める先に決める
やり直しできない所属を更新する
結果デンドログラム所属と中心
大きなデータ重い軽い

試験のポイント:クラスター分析には「正解のラベル」がありません。得られたクラスターの意味は、中心の値などを見て分析者が解釈します。

以上が、K-means法についての解説です。

細かい手順を忘れてしまっても問題ありません。ここでは、「階層型は近いものから併合し、K-means法は中心を動かして分け直す」という点だけ押さえておきましょう。

今回のまとめ

それでは、今回の内容を振り返ります。

今回は、答えのラベルがないデータを、似ているかどうかだけを頼りに分けるクラスター分析について紹介しました。判別分析が「手本のある仕分け」なら、クラスター分析は「手本のないグループ作り」です。だからこそ、距離の測り方や併合の方法によって結果が変わり、分析者の判断が大切になります。

今回のポイントを振り返りましょう。

振り返り

  • 距離行列は運賃表のようなもの。対角が0の対称行列で、単位が違う変数は標準化してから作る。
  • 階層型クラスター分析はトーナメント。最短距離法は鎖効果が出やすく、ウォード法は平方和の増加量で併合する。
  • デンドログラムの高さは併合の距離。高さの飛びの手前で切り、横の並びは気にしない。
  • K-means法は旗の移動。クラスター内平方和は増えないが、局所解に止まることがあるので初期値を変えて試す。

キーワードのおさらい

  • 距離行列: すべての個体の組の距離を並べた、対角が0の対称行列
  • 階層型クラスター分析: 最も近いクラスターを順に併合していく方法
  • デンドログラム: 併合の順番と高さを表した樹形図
  • K-means法: 中心への割り当てと中心の更新を繰り返す非階層型の方法

さて、今回は個体を分けました。では、変数のほうはどうでしょうか? 国語、英語、社会の点数がそろって高い人がいるのは、その背後に「文章を読む力」のような、目に見えない何かがあるからかもしれません。

次回は、観測できない因子を仮定して変数の構造を探る「因子分析と構造方程式モデル」について紹介します。

それでは、次の記事へ進んでいきましょう。

練習問題5問開いて挑戦する
問1. 2点 (1,2)(1, 2) と (4,6)(4, 6) のマンハッタン距離として、正しいものはどれか。
問2. 4つの個体の距離が d(A,B)=3d(A,B) = 3、d(A,C)=7d(A,C) = 7、d(A,D)=8d(A,D) = 8、d(B,C)=6d(B,C) = 6、d(B,D)=9d(B,D) = 9、d(C,D)=4d(C,D) = 4 である。最長距離法で階層型クラスター分析を行ったとき、最後の併合の高さとして正しいものはどれか。
問3. データ 2, 4, 10, 12, 20 を、中心3と中心11の2つのクラスターに割り当てた。K-means法で中心を更新したときの、大きいほうの中心として正しいものはどれか。
問4. デンドログラムの読み方として、最も適切なものはどれか。
問5. K-means法の説明として、最も適切なものはどれか。