UnsplashのRap Dela Reaが撮影した写真
の続きです。
今回は、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つのグループに分かれていることがわかります。
今回は以上です。
初めから読むには、
です。