バナナでもわかる話

計量経済学・統計学が専門の大学院生です。統計学・経済学・投資理論・マーケティング等々に関する勉強・解説ブログ。ときどき趣味も。極力数式は使わずイメージで説明出来るよう心掛けていますが、時々暴走します。

独立成分分析のマーケティングへの利用~fastICAを利用した顧客層の推定方法~

今回は独立成分分析という分析方法の、マーケティングへの利用についてお話します。


独立成分分析とは

主に音声やノイズをうまく分解する統計的な手法です。
色々な人の声や物音などが入り混じったノイズを、うまく分けます。


イメージは聖徳太子ですかね!?
f:id:bananarian:20181007230730p:plain

詳しい説明はここがわかりやすいので、リンクを貼っておくことにします。
独立成分分析とPerfume
あと実際に使う場面ではここも参考になります。
独立成分分析 (Independent Component Analysis, ICA) の実用的かつ実践的な方法 : 大学教授のブログ (データ分析相談所)




独立成分分析の簡単な試し方

RにはfastICAパッケージという独立成分分析(ICA)を簡単に行うことの出来るパッケージがあるので、それを使うことにします。

fastICAに関する詳しい説明は以下
https://cran.r-project.org/web/packages/fastICA/fastICA.pdf

install.packages("fastICA")
library(fastICA)

マーケティングへの活用

簡単に分析の概要を説明すると、

ある商品Aを複数の店舗で売り出しました。

店舗1,店舗3は当初売り上げが良かったものの、週を重ねる毎に下がっていき、ほとんど売れなくなってしまいました。
しかし一方で店舗2は日が経っても売上は好調です。
f:id:bananarian:20181007231720p:plain

ここで、経営者であれば当然、何故店舗2だけが売れたのか?を考える必要が生じます。


そこでよくよくこの3店舗を見比べたところ、それぞれの立地が店舗1,店舗3は都会、店舗2は田舎であるということに気付き、

もしかして、店舗1,3と店舗2では扱っている顧客層に違いがあるのでは?という予想が立ちました。


もし、この予想が正しいのであれば商品Aが定着する田舎の顧客層を詳しく調べることで、商品の売り出し方を模索することが出来そうですね。


しかし、持っているデータは現状売上の推移だけ。
ここからうまく顧客層を抽出出来ればよいのですが....



独立成分分析とマーケティング

さて。この顧客層の抽出を独立成分分析を使って行います。



今回用意したこの売上データは私が作った架空データなので、先にネタバラシしておくと、

次の二つの顧客層データを組み合わせることで、さきの3店舗の売り上げデータを作りました。
f:id:bananarian:20181007231709p:plain

つまり、試してはくれるけど、気に入ってくれない非定着層と、試してから気に入って買ってくれる定着層がいるわけです。店舗2周辺の地域では定着層が多いというデータになっています。



でも、普通に売り上げデータだけ見ていても、こんな二つのセグメントがあるなんて分かりませんよね。

これを独立成分分析を使って抽出します。


分析をして、そのプロットをするだけなら、コードはこれだけ。

library(fastICA)
a = fastICA(X, 2, alg.typ = "parallel", fun = "logcosh", alpha = 1,
method = "R", row.norm = FALSE, maxit = 200,
tol = 0.0001, verbose = TRUE)

plot(1:100, a$S[,1 ], type = "l", main = "ICA source estimates",xlab = "", ylab = "")
plot(1:100, a$S[, 2], type = "l", xlab = "", ylab = "")

f:id:bananarian:20181007232528p:plain

すぐに飽きてしまう非定着層と、定着してくれる層への分解が出来ました。


これで、この商品Aが定着しなかった店舗1,3と定着した店舗2の顧客層を詳しく見ることで、
商品Aがどのような層に定着するのかを分析することが出来ますね。