読者です 読者をやめる 読者になる 読者になる

複数のクラスタリング手法を組み合わせる

r stat

 主成分分析であれ、対応分析であれ、クラスター分析であれ、クラスタリングには、それぞれ長所や短所があります。そこで、複数のクラスタリング手法を組み合わせることで、データの性質をより深く理解しようというアプローチがあります。今回は、その一例として、対応分析とクラスター分析を組み合わせます。分析データは、MASSパッケージのcaithを使います。*1

# 分析データ
library(MASS)
caith

 まずは、普通に対応分析を実行し、散布図を描いてみましょう。

# 対応分析
ca <- corresp(caith, nf = nrow(caith) - 1)
# 寄与率の計算
ca.eig <- ca$cor ^ 2
(cntr <- round(100 * ca.eig / sum(ca.eig), 2))
# 散布図の作成
par(mfrow = c(1, 2))
plot(ca$rscore[, 1:2], type = "n", xlab = "Dim 1", ylab = "Dim 2", main = "eye colours")
abline(h = 0, lty = "dotted"); abline(v = 0, lty = "dotted")
text(ca$rscore[, 1:2], labels = rownames(ca$rscore))
plot(ca$cscore[, 1:2], type = "n", xlab = "Dim 1", ylab = "Dim 2", main = "hair colours")
abline(h = 0, lty = "dotted"); abline(v = 0, lty = "dotted")
text(ca$cscore[, 1:2], labels = rownames(ca$cscore))

f:id:langstat:20140425232656p:plain

 これらの散布図を見ると、目の色も髪の色も、3つのクラスターに分かれているように思われます。*2 次に、この対応分析の次元得点を使って、クラスター分析を実行します。*3

# 第2次元までの得点抽出
rscore <- ca$rscore[, 1:2]
cscore <- ca$cscore[, 1:2]
# クラスター分析(ユークリッド距離、最長一致法)
d1 <- dist(rscore)
d2 <- dist(cscore)
hc1 <- hclust(d1)
hc2 <- hclust(d2)
# デンドログラムの作成
par(mfrow = c(1, 2))
plot(hc1, hang = -1, main = "eye colours")
plot(hc2, hang = -1, main = "hair colours")

f:id:langstat:20140425230205p:plain

 最後に、クラスター分析の結果を対応分析の散布図に重ねてみましょう。

# クラスター情報の取得
cl1 <- as.vector(cutree(hc1, k = 3))
cl2 <- as.vector(cutree(hc2, k = 3))
# 散布図の作成
par(mfrow = c(1, 2))
plot(ca$rscore[, 1:2], type = "n", xlab = "Dim 1", ylab = "Dim 2", main = "eye colours")
abline(h = 0, lty = "dotted"); abline(v = 0, lty = "dotted")
text(ca$rscore[, 1:2], labels = rownames(ca$rscore), col = cl1)
plot(ca$cscore[, 1:2], type = "n", xlab = "Dim 1", ylab = "Dim 2", main = "hair colours")
abline(h = 0, lty = "dotted"); abline(v = 0, lty = "dotted")
text(ca$cscore[, 1:2], labels = rownames(ca$cscore), col = cl2)

f:id:langstat:20140425232718p:plain

 これらの散布図を見ると、目の色と髪の色がそれぞれ3つに色分けされていることが分かります。今回のデータは非常に単純なものでしたので、わざわざ色分けするまでもなかったかも知れません。しかし、分析対象とするケースや変数が数十、あるいは数百ある場合には、色の違いが解釈の手助けとなることでしょう。

*1:このデータは、スコットランドのケイスネスという地方に住む人を対象に、目の色と髪の色を調査したものです。

*2:クラスター数の絶対的な解釈は存在しないため、3つではなく、2つのクラスターに分かれていると言う人もいるでしょう。

*3:ここでは、散布図の作成にも用いられた第1次元と第2次元の得点を使います。