SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

MarkeZine Day(マーケジンデイ)は、マーケティング専門メディア「MarkeZine」が主催するイベントです。 「マーケティングの今を網羅する」をコンセプトに、拡張・複雑化している広告・マーケティング領域の最新情報を効率的にキャッチできる場所として企画・運営しています。

直近開催のイベントはこちら!

MarkeZine Day 2025 Retail

実践!WebマーケターのためのR入門

最終回/ダミー変数を使って上手にデータをまとめ、グループごとの特徴を把握しよう【R入門講座】


似たようなグループをクラスター分析でサックリ作ってみるぞ

 ここからは、先ほど作成した基準化後のデータを使って似ているグループを作ってみましょう。使用する方法は次の通りです。

  1. 階層クラスター
  2. Kmeansクラスター

 階層クラスター分析を行う前に距離行列というものを作成する必要があります。似ていると距離が近くなり、似ていないと距離が遠くなる、そんなイメージです。

 距離行列を求めるコードは次の通りです。

d1<-dist(scale.dummy)

 続いて、階層クラスター分析を行います!

cluster1<-hclust(d1,method="ward.D2")

 と、気合を入れてもたったこれだけです。

補足

  • hclust()……()内の1つ目の変数は、先ほど作成した距離行列を指定します。
  • method=の後は、階層クラスター分析の手法を指定します。様々、用意されていますがポピュラーなウォード法を使用してみましょう。
  • help(hclust)……と入力すると英語ですがヘルプを参照できます。
  • Rのバージョンが3.1以降であれば"ward.D2"を指定して下さい。3.0以下であれば"ward.D"とお願いします。

 階層クラスター分析の結果を表示するには下記のように入力してください。

plot(cluster1)

クリックすると拡大
クリックすると拡大

 この結果を見ると大きく2つに分割されてその後、細かく分割されていくことが確認できますね。せっかくですので結果を使ってみたいですよね!(半分強制)

 ただし、細かく細かくグループ分けしてしまうとそれって一人一人のデータになってしまうので使い道がありません。。。ここでは、先ほどの図の結果を使って4つに分類してみます。

cutree1<-data.frame(cutree(cluster1,k=4))

 cluster1を使用して、k=4で4つのグループに分ける設定しています。

 内容を確認すると…

head(cutree1)

 一つ一つのデータに対して、どのグループに属しているか結果が出ていますね。

 もう一つのクラスター分析の手法であるkmeansを使ってみましょう。ここでも4つのグループに分割してみます。

 kmeansは、指定したグループに分割してくれるのでなかなか使い勝手がよい手法です。

kmeans<-kmeans(d1,4)

 どのグループになったのか結果を抽出するには下記のコードを入力します。

kmeans$cluster

 階層クラスター分析の結果とkmeansの結果を比較してみましょう。こんな時に、何が要因として効いているのか?

 クロス集計で一つ一つ確認していては、深夜0時から放送の「乃木坂ってどこ?」の放送開始に間に合わなくなってしまう可能性が高いです。避けたいところです。

 そこで!

 前回やりました決定木を使うことであっさり超えていけます。

 結果をまとめつつ、最初のテーブルとマージしましょう。

result<-cbind(sample1,data.frame(kmeans$cluster),cutree1)

 からの、変数名の変更です。

names(result)<-c("ID","CV","AGE","SEX","AD","kmeans","cluster")

 で、次がとってもとっても大事です。

 何が大事かというと、今回の階層クラスターとkmeansの結果は数値データで得られていますが、これらの数字の大小に意味は……

 ないんです!!!

 ないの。ただのラベルなの。代わりはいるもの。

str(result)

 確認するとintになってますね? Factorに変えないとダメ、ゼッタイ。

result$kmeans<-as.factor(result$kmeans)
result$cluster <-as.factor(result$cluster)
str(result)

 Factorに変わってますね?

 では前回を踏まえて決定木を行ってみましょう。

library(rpart)
library(rattle)
library(rpart.plot)
tree1<-rpart(result$kmeans~CV+AGE+SEX+AD,data=result)
tree2<-rpart(result$cluster~CV+AGE+SEX+AD,data=result)

fancyRpartPlot(tree1)

fancyRpartPlot(tree2)

 clusterのtree2の結果を例に取って解説します。

 まず2つに分割される右側を確認すると、CV=yesがno…なので、CVしていないとオレンジのグループ3に割り当てられています。

 CVしている場合、次はADがMailかそれ以外かで分割されています。ADがMailの場合にはグリーンのグループ1が割り当てられています。

 ADがMailでなかった場合、Listingでなければパープルのグループ4が、Listingであればブルーのグループ2となっています。

 但し、ブルーの中身を見ると

 グループ1:15%(.15)、グループ2:85%(.85)、グループ3:0%(.00)、グループ4:0%(.00)

 となっていますので、グループ1とグループ2になっている人が混在していますね。

 kmeansの結果(tree1)ではグループ3が

 グループ1:23%(.23)、グループ2:0%(.00)、グループ3:62%(.62)、グループ4:15%(.15)

 と誤分類されてしまうケースが多くなっていました。

 今回は、クラスター分析の結果に対して決定木を用いることで、データの構造を明らかにしました。

 さてさて冒頭でも書きましたが、本連載はこれで最終回となります。Rという少々とっつきにくいテーマを扱ってきましたが、便利な道具であることは間違いありません。この連載をきっかけとしてみなさんがRと触れあう機会ができたのであれば、大変嬉しく思います。

 またどこかでお会いできることを楽しみにしています!! お付き合いいただきありがとうございました!!

簡単! 2015年2月10日「3つ」覚えて分析から視覚化まで即実践!Rでできるデータ分析講座開催

Rをインストールしたが、無骨なUIに「今日はこのへんで……」と、そっと閉じてしまった方にオススメです!

本講座では実機を使って「できるだけわかりやすく」グラフ化&データ分析をワークショップ形式で簡単に身に付けることができます。

★☆★「Rでできるデータ分析講座」の詳細・お申し込みはこちら★☆★

大量にあるデータをまとめて俯瞰しよう

楽しいR

Amazon /  翔泳社
楽しいR
ビジネスに役立つデータの扱い方・読み解き方を知りたい人のためのR統計分析入門

著者:豊澤栄治
出版社:翔泳社
発売日:2015年2月9日
定価:2,200円(税別)

目次

  • 第1章 とっつきにくいけど実はExcel以上に賢いヤツ
  • 第2章 Rで分析を始める前に
  • 第3章 時系列データを分析すると何がわかる?
  • 第4章 Rのパッケージを使って
  • 第5章 正しい分析手法を選ばないと時間のムダ
  • 第6章 「ダミー変数」でデータをまとめてクラスター分析
  • 第7章 どれだけ○○したら◎◎できるのか?
  • 第8章 総まとめ!

この記事は参考になりましたか?

  • Facebook
  • X
  • Pocket
  • note
関連リンク
実践!WebマーケターのためのR入門連載記事一覧

もっと読む

この記事の著者

豊澤 栄治(トヨサワ エイジ)

株式会社ファンコミュニケーションズ サービス開発部 情報科学技術研究所 所長

横浜国立大学経営学部、一橋大学大学院国際企業戦略研究科卒

SPSS Japan、みずほ第一フィナンシャルテクノロジー(株)、外資系運用会社(Amundi Japan)での経験を活かし、金融の分析ノウハウをマーケティ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

MarkeZine(マーケジン)
2015/04/21 12:08 https://markezine.jp/article/detail/20790

Special Contents

PR

Job Board

PR

おすすめ

イベント

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング