www.crosshyou.info

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

都道府県別の世帯土地統計のデータの分析7 - Rのdist()関数、hclust()関数、plot()関数、cutree()関数で階層的クラスタリング分析をする。

UnsplashRap Dela Reaが撮影した写真 

www.crosshyou.info

の続きです。

今回は、Rで階層的クラスタリング分析をしてみます。

まず、クラスタリング分析をするためのデータフレームを用意します。

setaiの種類を総数だけにして、l_shoyu, l_noshoyu, l_hokashoyu, l_bothshoyuの4つの変数を使ってクラスタリング分析を実行します。

クラスタリング分析をするために、各観測間の距離を計算する必要があります。

それには、dist()関数を使いますが、dist()関数はマトリックス型でないといけないので、df_clustからマトリックスを作ります。

prefを除外して、as.matrix()関数でマトリックス型に変換しています。

そして、行名をrownames()関数を使って都道府県名にしています。

次は、dist()関数で各列どうしの距離を計算します。

dist()関数で処理したオブジェクトをdistanceという名前で保存しました。

distanceをわかりやすく表示してみました。例えば、北海道と青森県の距離は2.491、

秋田県と山形県の距離は0.0887などとわかります。秋田県と山形県はとても近いようですね。

このdistanceをhclust()関数で処理して階層的クラスタリング分析できます。

結果は、plot()関数で表示できます。

この樹形図をよくみると、秋田県と山形県が隣同士になっています。

これを、

このように、3つのグループに分けましょう。cutree()関数を使います。

都道府県名と名前が少しずれて出力されていますので、わかりやすくデータフレームを作ってみます。

グループ1は、

ここは東京都や大阪府、神奈川県などの都会の都道府県が入っています。

グループ2は、

ここは田舎のといったら語弊があるかもしれませんが、そんな感じの都道府県が入っています。

グループ3は、

ここはグループ1と2の中間、って感じですね。

最後にl_shoyuとl_noshoyuの散布図にこの結果を重ねてみましょう。

この散布図では、はっきりと3つのグループに分かれていることがわかります。

今回は以上です。

初めから読むには、

www.crosshyou.info

です。