Rで何かをしたり、読書をするブログ

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

都道府県別の水質汚濁物排出量総合調査のデータ分析7 - R で階層的クラスタリング

Bing Image Creator で生成: Summer season, Landscape, Green Mountains which have snow on the top, yellow flowers, Photo

 

www.crosshyou.info

の続きです。

今回は、R で階層的クラスタリングをしてみようと思います。

まずは、クラスタリングのためのマトリックスを作成します。

それぞれの変数を標準化します。

for loop で各変数を (変数 - 変数の最小値) / (変数の最大値 - 変数の最小値) で最大値が  1、最小値が 0 に変換しました。summary() 関数でマトリックスを処理してみると、どの変数の最小値が 0 、最大値が 1 になっていることがわかります。

dist() 関数で dist オブジェクトを作成します。

hclust() 関数で階層的クラスタリングを実行します。

plot() 関数で結果をグラフにします。

青森県と佐賀県、北海道と鹿児島県、山形県と奈良県が隣同士になっているなど、地理的な位置関係とは全然違うクラスターですね。

5のグループに分けてみます。

左の3つのグループは統合したいですね。

まず、cutree() 関数で5つのグループのラベルを作ります。

2, 3, 5 のグループを統合するといいですね。

3 と 5 を 2 にしてしまいます。

これを、元の mtx に統合します。

続いて、都道府県名も変数に戻し、label3をファクター型に変換します。

各変数同士の散布図を描いて、クラスタリングがうまくできているかどうかをみてみます。

けっこういい感じにわかれています。

他の変数同士の散布図もみてみます。

こちらもクラスタリングを反映していますね。

今回は以上です。

最初から読むには、

www.crosshyou.info

です。