「統計学実践ワークブック」 演習問題etc Ch.24 「クラスター分析」

当記事は「統計学実践ワークブック(学術図書出版社)」の読解サポートにあたってChapter.24の「クラスター分析」に関して演習問題を中心に解説を行います。実際に分析などを行うにあたってよく出てくる手法なので、演習を通して抑えておくと良いと思われました。

本章のまとめ

演習問題解説

問24.1

$[1]$
表$24.2$を元に考えると、$3,4$が最も近く、$3,4$と$5$が最近隣法でも最遠隣法でも最も近い。よって、$3,4$に$A, C$が対応し、$5$に$F$が対応することがわかる。次に相互に近いのが$1-2$であり、これが$D, E$に対応することがわかる。また、$3,4,5$と$6$間は最近隣法だと$2.7$、最遠隣法だと$4.6$が対応する一方で、$3,4,5$と$1,2$間は最近隣法だと$2.5$、最遠隣法だと$5.6$が対応する。よって、最近隣法は$(b)$、最遠隣法は$(a)$が対応する。

また、番号とアルファベットの対応は下記であることもわかる。

1,2: D,E
3,4: A,C
5:  F
6:  B

$[2]$
下記を実行することで計算することができる。

import numpy as np

X = np.array([[7.7, 5.8, 7.7], [10.1, 5.9, 7.3], [4.9, 4.1, 7.9], [4.8, 5.0, 9.0], [6.4, 3.7, 8.0], [4.0, 5.2, 11.6]])
x1_average0 = np.array([9., 6., 7.])
x2_average0 = np.array([5., 5., 10.])

sample_x1 = np.sum((X-x1_average0)**2,axis=1)>=np.sum((X-x2_average0)**2,axis=1)
sample_x2 = np.sum((X-x1_average0)**2,axis=1)<np.sum((X-x2_average0)**2,axis=1)

x1_average1 = np.mean(X[sample_x1,:],axis=0)
x2_average1 = np.mean(X[sample_x2,:],axis=0)

print("average x1: {}".format(x1_average1))
print("average x2: {}".format(x2_average1))

・実行結果

> print("average x1: {}".format(x1_average1))
average x1: [ 5.025  4.5    9.125]
> print("average x2: {}".format(x2_average1))
average x2: [ 8.9   5.85  7.5 ]

参考

・準1級関連まとめ
https://www.hello-statisticians.com/toukeikentei-semi1