Slide 1

Slide 1 text

2010/04/17 Tokyo.Webmining #3 Tokyo.Webmining #3 『市場細分化とクラスター分析』 『市場細分化とクラスター分析』 Bob#3 Bob#3

Slide 2

Slide 2 text

自己紹介 自己紹介 ● 【はてな】  【はてな】  id:bob3 id:bob3 ● 【 【 Twitter Twitter 】 】 @bob3bob3 @bob3bob3 ● バリバリの文系です。 バリバリの文系です。 ● 仕事はマーケティング・リサーチャー。 仕事はマーケティング・リサーチャー。 ● 本日はマーケティングの中で「クラスター分析」が、どのよ 本日はマーケティングの中で「クラスター分析」が、どのよ うに使われているか、その一例をお話します。 うに使われているか、その一例をお話します。

Slide 3

Slide 3 text

STP戦略 STP戦略 ● 市場が成熟し消費者の行動や価値観も多様化し 市場が成熟し消費者の行動や価値観も多様化し た今日にあって、ひとつの製品やサービスで市場 た今日にあって、ひとつの製品やサービスで市場 のすべてのニーズを満たすことはできない。 のすべてのニーズを満たすことはできない。 ● そこで必要になるのが「STP戦略」というフレーム そこで必要になるのが「STP戦略」というフレーム ワーク。 ワーク。 ● Segmentation Segmentation – 市場(消費者)をいくつかのグループに細分化。 市場(消費者)をいくつかのグループに細分化。 ● Targeting Targeting – ターゲットとなるグループを選択。 ターゲットとなるグループを選択。 ● Positioning Positioning – どんな価値を提供するのかを明確にする。 どんな価値を提供するのかを明確にする。

Slide 4

Slide 4 text

市場細分化 市場細分化 Segmentation Segmentation 10 代 60 代 50 代 40 代 30 代 20 代 男 性 女 性 市 場 全 体 ● セグメントごとに セグメントごとにマーケティング・ミックス マーケティング・ミックスを決定する。 を決定する。

Slide 5

Slide 5 text

マーケティング・ミックス マーケティング・ミックス ● 製品( 製品( Product Product ) ) – 仕様、機能、性能、パッケージなど 仕様、機能、性能、パッケージなど ● 価格( 価格( Price Price ) ) – 小売価格、値引き、特売など 小売価格、値引き、特売など ● 流通( 流通( Place Place ) ) – 販売経路など 販売経路など ● プロモーション( プロモーション( Promotion Promotion ) ) – 広告、PR、パブリシティ、イベント、キャンペーンなど 広告、PR、パブリシティ、イベント、キャンペーンなど

Slide 6

Slide 6 text

ダニエル・ヤンケロビッチ曰く ダニエル・ヤンケロビッチ曰く ● 「年齢、性別、学歴、年収など、従来のデモグラ 「年齢、性別、学歴、年収など、従来のデモグラ フィックスは、すでにマーケティング戦略の拠りどこ フィックスは、すでにマーケティング戦略の拠りどこ ろとしては不十分である。」 ろとしては不十分である。」 ● 「それよりも、 「それよりも、価値観や嗜好、選好といった特性 価値観や嗜好、選好といった特性の の ほうが、消費者の購買行動への影響が大きい。」 ほうが、消費者の購買行動への影響が大きい。」 ● 「適切なマーケティング戦略を立案するには、まず 「適切なマーケティング戦略を立案するには、まず 特定のブランドや商品カテゴリーを受け入れそうな 特定のブランドや商品カテゴリーを受け入れそうな 市場セグメントを特定することである。」 市場セグメントを特定することである。」 ● 社会心理学者。 社会心理学者。 ● 1964年のお話。 1964年のお話。

Slide 7

Slide 7 text

市場細分化の基準 市場細分化の基準 ● 客観的基準 客観的基準 ● デモグラフィック(人口統計学的基準) デモグラフィック(人口統計学的基準) – 年齢、性別、所得、家族構成、職業、ライフステージなど 年齢、性別、所得、家族構成、職業、ライフステージなど ● ジオグラフィック(地理的基準) ジオグラフィック(地理的基準) – 居住地、気候、文化など 居住地、気候、文化など ● 主観的基準 主観的基準 ● サイコグラフィック(心理的基準) サイコグラフィック(心理的基準) – 価値観、嗜好、性格、ライフスタイルなど 価値観、嗜好、性格、ライフスタイルなど ● ビヘイビアル(行動的基準) ビヘイビアル(行動的基準) – 使用頻度、使用の仕方、求めるベネフィットなど 使用頻度、使用の仕方、求めるベネフィットなど

Slide 8

Slide 8 text

今回使うデータ 今回使うデータ ● 『経済・経営のための統計学』 『経済・経営のための統計学』 ● 有斐閣 有斐閣 ● Rを使った分析例も一部載って Rを使った分析例も一部載って ます。 ます。 ● 第8章「マーケティング」で使わ 第8章「マーケティング」で使わ れているデータを使わせていた れているデータを使わせていた だきます。 だきます。

Slide 9

Slide 9 text

缶コーヒーに関するアンケート 缶コーヒーに関するアンケート ● 調査票 調査票 ● http://yuhikaku-nibu.txt-nifty.com/blog/files/COFFEE-survey.pdf http://yuhikaku-nibu.txt-nifty.com/blog/files/COFFEE-survey.pdf ● データ データ ● http://yuhikaku-nibu.txt-nifty.com/blog/files/COFFEE.txt http://yuhikaku-nibu.txt-nifty.com/blog/files/COFFEE.txt ● 今回使う質問。Q7“「缶コーヒー」について以下の考えがあります。それぞれにつ 今回使う質問。Q7“「缶コーヒー」について以下の考えがあります。それぞれにつ いて、あなたのお考えに近い番号に○をつけてください。” いて、あなたのお考えに近い番号に○をつけてください。” 非常に そうである そうである どちらとも いえない そう ではない まったく そうではない 味や、品質にこだわる 5 4 3 2 1 ときと場合により、飲みわける 5 4 3 2 1 気に入ったブランドはない 5 4 3 2 1 人よりよく知っている 5 4 3 2 1 ひとより多く飲む 5 4 3 2 1 特に気にしない 5 4 3 2 1 新製品が出ると試してみる 5 4 3 2 1 好きなブランドを人に勧めることがある 5 4 3 2 1

Slide 10

Slide 10 text

分析の手順 分析の手順 1. 1.次元縮約 次元縮約 ● 7つの質問項目を少数の変数に要約する。 7つの質問項目を少数の変数に要約する。 ● 因子分析、主成分分析、 因子分析、主成分分析、 SEM SEM などを使う。 などを使う。 ● 理由:解釈のしやすさ、“次元の呪い”。 理由:解釈のしやすさ、“次元の呪い”。 2. 2.グループ分け グループ分け ● ブランド、製品などには階層型クラスター分析。 ブランド、製品などには階層型クラスター分析。 ● 消費者をグループ分けするときは分割型。 消費者をグループ分けするときは分割型。 ● 決定木、潜在クラスモデルなども使われる。 決定木、潜在クラスモデルなども使われる。

Slide 11

Slide 11 text

R R にデータを読み込む にデータを読み込む # ワーキングディレクトリの設定と確認。 COFFEE.txt を置いておく。 setwd("C:/R/dat") getwd() # タブ区切りのテキストファイル。欠損値は“ .” で入力されている。 COFFEE <- read.delim("COFFEE.txt", na.strings=".") # 対象者番号と Q7 の回答を取り出す。欠損値のある対象者は除く。 Q7 <- na.omit(COFFEE[, c(1, 34:41)]) # 変数名を付ける。 colnames(Q7) <- c(" 対象者番号 ", " 味や品質にこだわる ", " 時と場合により飲みわける ", " 気に入ったブランドはない ", " 人よりよく知っている ", " ひとより多く飲む ", " 特に気にしない ", " 新製品が出ると試してみる ", " 好きなブランドを人に勧めることがある ") # 属性。ただし Q7 で欠損値のある人を除く。対象者番号は連番になっていること。 FACE <- COFFEE[Q7[, 1], c(8, 75, 76)] # 変数名を付ける。 colnames(FACE) <- c(" 飲用頻度 ", " 年齢 ", " 性別 ")

Slide 12

Slide 12 text

R R で因子分析 で因子分析 # 因子分析。 factanal 関数を使うのが一般的だと思いますが、ここでは出力が親切な # psych パッケージの fa 関数を使ってみます。 # 2因子、最尤法、プロマックス回転で因子分析。 # 実際にはいくつかのパターンを試して最終的な結果を決めます。 library(psych) Q7.fa <- fa(Q7[, -1], nfactors=2, rotate = "promax", scores=TRUE, fm="ml") print(Q7.fa, sort=TRUE) # Factor Analysis using method = ml # Call: fa(r = Q7[, -1], nfactors = 2, rotate = "promax", scores = TRUE, # fm = "ml") # item ML2 ML1 h2 u2 # 好きなブランドを人に勧めることがある 8 0.78 1.00 0.00 # 新製品が出ると試してみる 7 0.67 0.16 0.84 # 人よりよく知っている 4 0.63 0.26 0.74 # ひとより多く飲む 5 0.59 0.55 0.45 # 特に気にしない 6 -0.51 0.27 0.73 # 気に入ったブランドはない 3 -0.50 0.26 0.74 # 味や品質にこだわる 1 0.93 0.47 0.53 # 時と場合により飲みわける 2 0.39 0.66 0.34 # (以下略) # ML1 、 ML2 が因子負荷量、 h2 が共通性、 u2 が独自性 # ここでは仮に ML1 を「機能的関与因子」、 ML2 を「情緒的関与因子」と名づけてみます。

Slide 13

Slide 13 text

因子分析の結果を確認 因子分析の結果を確認 # 因子得点を X に付値 X <- Q7.fa$scores # 因子得点をヒストグラムで確認。 # hist 関数でも良いのですが、ここでは # MASS パッケージの truehist 関数を # 使ってみます。 library(MASS) par(mfrow=c(2,1)) truehist(X[,1], main=" 情緒的関与因子 (ML2)", col="lightgreen") truehist(X[,2], main=" 機能的関与因子 (ML1)", col="lightblue") par(mfrow=c(1,1))

Slide 14

Slide 14 text

因子分析の結果を確認 因子分析の結果を確認 # こんな散布図も描ける smoothScatter(X, pch=3, main=" 因子得点の散布図 (smoothScatter)") # 因子得点を散布図で確認 plot(X, pch=3, main=" 因子得点の散布図 (plot)")

Slide 15

Slide 15 text

いよいよクラスター分析 いよいよクラスター分析 # 階層型クラスター分析(ウォード法) Q7.wa <- hclust(dist(X)^2, "ward") # 樹形図(デンドログラム)を描く plot(Q7.wa) # クラスター数を3として枠を描く rect.hclust(Q7.wa, k=3, border=1:3) # クラスター数を3としてクラスター番号を # 保存 Q7.wa.clust <- cutree(Q7.wa, 3) # 構成の確認。 table(Q7.wa.clust) # Q7.wa.clust # 1 2 3 # 27 30 23

Slide 16

Slide 16 text

結果の確認 結果の確認 # クラスターごとの平均値 aggregate(X, by=list(Q7.wa.clust), FUN=mean) # Group.1 ML2 ML1 # 1 1 1.0042568 -0.0564751 # 2 2 -0.6966410 0.8983492 # 3 3 -0.2702479 -1.1054630 # 箱髭図(3変数以上ならレーダーチャート) par(mfrow=c(1, 2)) boxplot(X[, 1] ~ Q7.wa.clust, main=" 情緒的関与因子 (ML2)", xlab=" クラスタ ", col="lightgreen") boxplot(X[, 2] ~ Q7.wa.clust, main=" 機能的関与因子 (ML1)", xlab=" クラスタ ", col="lightblue") par(mfrow=c(1, 1))

Slide 17

Slide 17 text

結果の確認 結果の確認 # 飲用頻度のモザイクプロット FREQ <- table(Q7.wa.clust, FACE[, 1]) rownames(FREQ) <- c("clust1", "clust2", "clust3") colnames(FREQ) <- c(" 毎日 ", " 週に数回 ", " 月に数回 ", " 年に数回 ") mosaicplot(FREQ, main=" クラスタ毎の飲用頻度 ", ylab=" 飲用頻度 ", xlab=" クラスタ ", col=TRUE)

Slide 18

Slide 18 text

結果の確認 結果の確認 # 年代のモザイクプロット AGE <- table(Q7.wa.clust, FACE[, 2]) rownames(AGE) <- c("clust1", "clust2", "clust3") colnames(AGE) <- c(" ~ 20", "21 ~ 25", "26 ~ 30", "31 ~ 35", "36 ~ 40", "41 ~ 60", "61 ~ ") mosaicplot(AGE, main=" クラスタ毎の年齢 ", ylab=" 年齢 ", xlab=" クラスタ ", col=TRUE, las=1)

Slide 19

Slide 19 text

結果の確認 結果の確認 # 性別のモザイクプロット SEX <- table(Q7.wa.clust, FACE[, 3]) rownames(SEX) <- c("clust1", "clust2", "clust3") colnames(SEX) <- c(" 男性 ", " 女性 ") mosaicplot(SEX, main=" クラスタ毎の性別 ", ylab=" 性別 ", xlab=" クラスタ ", col=TRUE)

Slide 20

Slide 20 text

実例の紹介 実例の紹介

Slide 21

Slide 21 text

PAM (Partitioning Around Medoids) PAM (Partitioning Around Medoids) # PAM は分割型クラスタリングの一種。 # K-means よりも頑健であるとされる。 library(cluster) Q7.pam <- pam(X, 3, metric = "manhattan") plot(Q7.pam, col=TRUE) # クラスター構成の確認 table(Q7.pam$clustering) # ウォード法の結果とクロス集計 table(Q7.wa.clust, Q7.pam$clustering)