パクチーは好みの分かれる食べ物ですね。
アボカドも、クリーミーととらえるか、ぬるっとするととらえるかで大きく印象は変わりそうです。
パクチー好き派・苦手派や、アボカド好き派・苦手派といったグループ分けができそうです。
血液型占いって面白いですよね。
B型の人は変わってると言われると、B型の私はなんだかその評価が当たっている気がします。
血液型もA型・B型・O型・AB型というグループに分けられそうです。
今回は、パーソナリティ心理の結果を使って、皆さんをグループ分けしてみたいと思います。
優劣をつけるわけではありませんよ。
各グループの特徴を見てみようとする試みです。
今回は、以下に取り組んでいきます。
R Studioを立ち上げる。
いろんな種類の計算がセットになっている「package(パッケージ)」を、R Studioからインストールして開封する。
ちょうどよいクラスター数を決める。
クラスタリングしてみる。
クラスターの特徴を考える。
1つ目は、R Studuioの立ち上げです。
R StudioはRを使いやすくしたもので、R Studuioを立ち上げると背後でRが実行されます。
2つ目の「package(パッケージ)」は、いろんな計算がセットになっているライブラリです。
ライブラリは、データセットのようなもので、ある特性のテーマに関する情報を集めたものです。
例えば、Rがはじめから持っているライブラリでは単色で線の太さも一定のグラフしか描けなかったとしても、グラフをきれいに描くパッケージをインストールして開封することでグラフの色や線の太さマーカーのサイズや色などを調整できたり自動で調整してくれたりします。
例えば、Rがはじめから持っているライブラリでは偏微分や重積分ができなかったとしても、微分積分に関するパッケージをインストールして開封することで、それらの計算を行うことができるようになります。
そして、パッケージの開封です。
インストールしたパッケージは箱の中に入ったままで、そのままでは使えません。
また、Rを閉じるたびにパッケージも閉じてしまいます。
そのため、パッケージを使う時は計算をする前にパッケージを開封しておく必要があります。
3つ目は、クラスター数の検討です。
パーソナリティ心理のアンケートでは、社会性-個人性や衝動的-熟慮的といった複数の評価指標で個人個人のパーソナリティ心理を数値化しました。
今回はそれらの指標を使って皆さんをグループ分けしてみますが、いくつのグループにまとめるのが良いかは計算で決めることができます。
その計算方法がHartigan's ruleです。
4つ目でようやくクラスタリングします。
5つ目では、クラスタリングしたクラスターの特徴を見ていきます。
まずは、R Studioを立ち上げます。
R Studioでは、区切られた画面のことをペインと呼びます。
一番最初にR Studioを起動したときには左上のSourceペインは表示されないので、
左上のFile→New Project→New Directry→New Project→Brows→ファイル選択→Directry nameにファイル名を記載→Create Project、とすると、新しいRのプロジェクトが立ち上がります。
その後、File→New File→R Script、とすると左上のSourceペインが登場します。
R Studioでは、スクリプト(コードのこと)をConsoleペインに入力して実行させることもできますが、左上のSourceペインに入力してRunを押すことで一行ずつ、Sourceを押すことでSourceペイン全部を実行することができます。
今後は、基本的に左上のSourceペインにスクリプトを書き、Runで実行して、左下のConsoleペインに結果を表示していくことにします。
R StudioのSourceペインに以下を入力します。
パッケージを使えるようにするには、インストール(install.packages)と開封(library)の両方の実行が必要です。
#Fuzzy c-means
install.packages("e1071")
library(e1071)
#k-means++
install.packages("LICORS")
library(LICORS)
#Hartigan's rule
install.packages("useful")
library(useful)
#cluster plot
install.packages("RColorBrewer")
install.packages("cluster")
library(RColorBrewer)
library(cluster)
入力したら、その範囲を選択してRunをクリックします。
するとしばらくConsoleペインが自動で書き加えられていきます。
「#」は、その行の「#」以降の文字が、Rの計算を実行しないただのコメントであることを示しています。
install.packages(〇〇)で、〇〇をRのパッケージコレクションの中やインターネット上からPCにインストールします。ただ、インストールするだけではまだ箱に入ったままなので、library(〇〇)で〇〇のパッケージの箱のふたを開けます。
ちょうどよいクラスター数は、Hartigan's Ruleに則って決めることができます。
まずは、データをclusterという名前の箱に入れます。
以下を、Sourceペインに入力します。
#read file
cluster<-read.csv("C:/Users/kankyo/Desktop/03_201118_personality_v01.csv",row.names=1)
入力したら、上記の2行を選択してRunをクリックします。
読み込みにエラーが無ければ、何も表示されません。
このデータには、パーソナリティ心理のうち、社会性-個人性や衝動的-熟慮的といった合計8種類の指標での評価結果が含まれています。
03_201118_personality_v01.csvのファイルは、kankyoという名前のPCのDesktopに置いてあるため、C:/Users/kankyo/Desktop/という住所になっています。
ファイルの住所は皆さんが使われるファイルのPC上の住所, mac上のディレクトリを入力してください。
次に、ちょうどよいクラスター数を、Hartigan's Ruleを使って算出します。
以下を、Sourceペインに入力します。
#Hartigan's rule
Hartigan<-FitKMeans(x=cluster, max.cluster=8L, nstart=10)
Hartigan
PlotHartigan(Hartigan)
入力したら、上記の4行を選択してRunをクリックします。
上から3行目のHartiganを実行すると、以下のような画面が表示されます。
これは、クラスターが2の場合にハーティガンの値が18.13...で、クラスターが3の場合にハーティガンの値が12.8...であることを示しています。
クラスター数が3まではTRUEで4以上がFALSEになっていますので、最適クラスター数は3となります。
最後のPlotHartigan(Hartigan)は、Hartiganの値をグラフ化するスクリプト(コード)です。
今回はk-means++というクラスタリングの方法と、Fuzzy c-meamsというクラスタリングの方法を採用します。
それらの違いは、クラスタリングの結果を見ると見えてきます。
以下を入力して、k-means++から算出してみます。
ただし、1点とても大切な注意点があります。
kmpp<-kmeanspp(cluster[,1:8], k=3)のcluster[,1:8]は要素の数です。
今回の場合は、個人志向性、社会指向性…認知的欲求尺度と8種類あるので1から8までの要素で分析するように指定します。
kmpp<-kmeanspp(cluster[,1:8], k=3)のk=3はクラスターの数です。
Hartigan's Ruleによって最適クラスター数が2となったら、k=2となります。
#k-means++
kmpp<-kmeanspp(cluster[,1:8], k=3)
kmpp
clusplot(cluster[,1:3], kmpp$cluster, color = TRUE, shade = TRUE, labels = 2, lines = 0, col.clus = brewer.pal(4, "RdYlBu"), col.txt = "#22313F", col.p = "#22313F")
入力したら、その部分を選択してRunをクリックします。
途中のkmppを実行すると以下が表示されます。
cluster meansが、指定したクラスター数(3クラスター)の各クラスターの特徴を表しています。値が大きいほどその項目が強く影響しているクラスターであることを示しています。
clustering vectorの部分の上段(1 2 3 4 ...)はアンケート回答者の番号で、下段(3 1 2 1 3 1 1 3...)がクラスターの番号です。
最後のclusplot(...)を実行すると以下のようなグラフが右下のペインに表示されます。
Exportをクリックすると、画像として保存することができます。
次に、Fuzzy c-meansという方法でもクラスタリングをしてみます。
以下をSourceペインに入力して、範囲を指定し、Runを押して実行します。
ただし、k-means++と同じように、ココでもとても大切な点が1点あります。
cm<-cmeans(cluster, centers=3)のcenters=3はクラスター数です。
Hartigan's Ruleで求めた最適クラスター数をここに入力します。
#Fuzzy c-means
cm<-cmeans(cluster, centers=3)
cm
clusplot(cluster[,1:3], cm$cluster, color = TRUE, shade = TRUE, labels = 2, lines = 0, col.clus = brewer.pal(4, "RdYlBu"), col.txt = "#22313F", col.p = "#22313F")
cmを実行したタイミングで、以下が表示されます。
上の方のcluster centersは、1~3の各クラスターの公的自意識~認知的欲求尺度の得点で、点数が高いほどその項目に近いグループであることを示しています。
Membershipsの項目には、縦軸に各被験者の番号、横軸にはクラスター番号が書かれており、各被験者がどのクラスターに最も近い可能性があるのかを0.2633121....といった確率で表してくれています。
k-means++の時と、少しバランスが違うようです。
最後のclusplot(...)を実行すると上のようなグラフが右下のペインに表示されます。
Exportをクリックすると、画像として保存することができます
クラスタリング(k-means++とFuzzy c-means)の結果を以下にもう一度まとめてみます。
上段がk-means++で、下段がFuzzy c-meansです。
k-means++のクラスター番号1の特徴は、私的自意識が高く、衝動性が高く、認知的負荷を好まない傾向があると言えそうです。
k-means++のクラスター番号2の特徴は、公的自意識が低く、個人志向性が強く、社会性が低い傾向があると言えそうです。
k-means++のクラスター番号3の特徴は、公的自意識が高く、私的自意識も高く、熟慮を好み、社会性が高い傾向があると言えそうです。
Fuzzy c-meansのクラスター番号1の特徴は、尖ったところのあまりない傾向があると言えそうです。。
Fuzzy c-meansのクラスター番号2の特徴は、公的自意識が高く、私的自意識も高く、熟慮を好み、社会性が高い傾向があると言えそうです。
Fuzzy c-meansのクラスター番号3の特徴は、公的自意識が低く、私的自意識も低く、衝動的で、個人志向性が強く、社会性が低く、認知的負荷を好まない傾向があると言えそうです。
ここからは課題です。
Big Fiveのデータを使って、5つある特徴をクラスタリングして、特徴を検討してみてください。