昨今、
店舗内にセンサーを置いて、顧客の行動を分析し、行動パターンを可視化すると言う手法が流行しているとのことです。
上記では顧客の行動を分析して、店舗の売り上げの改善につなげることができた事例を挙げています。弊社においても、別のお客様ですが、ビーコンデータとPOSデータを組み合わせて、リアルタイムクーポン配信に活用するというデータ活用事例でお手伝いさせていただいてます。弊社事例の詳細を知りたい方は、ぜひ
お問い合わせください。
今回は実際に動線の分析の方法とアウトプットについて簡単にご紹介していきます。
以下のようなデータがあるとします。
| A | 12:01 | in | 1 | 2 | 
| A | 12:02 | walk | 1 | 3 | 
| A | 12:03 | walk | 2 | 3 | 
| A | 12:04 | stop | 2 | 4 | 
| A | 12:05 | walk | 2 | 5 | 
| A | 12:06 | stop | 3 | 5 | 
| A | 12:07 | walk | 3 | 4 | 
| A | 12:08 | walk | 3 | 3 | 
| A | 12:09 | walk | 2 | 3 | 
| A | 12:10 | out | 1 | 2 | 
| B | 12:01 | in | 1 | 2 | 
| B | 12:02 | stop | 1 | 4 | 
| B | 12:03 | walk | 2 | 4 | 
| B | 12:04 | walk | 2 | 4 | 
| B | 12:05 | walk | 2 | 3 | 
| B | 12:06 | walk | 3 | 4 | 
| B | 12:07 | walk | 3 | 3 | 
| B | 12:08 | walk | 3 | 2 | 
| B | 12:09 | stop | 2 | 2 | 
| B | 12:10 | out | 1 | 2 | 
このデータでは、ユーザーAがいつどこで何をしていたのかがわかります。
さらにここに売り上げのデータが加わったとすると以下のような形になります。
| A | 12:01 | in | 1 | 2 | 300 | 
| A | 12:02 | walk | 1 | 3 | 300 | 
| A | 12:03 | walk | 2 | 3 | 300 | 
| A | 12:04 | stop | 2 | 4 | 300 | 
| A | 12:05 | walk | 2 | 5 | 300 | 
| A | 12:06 | stop | 3 | 5 | 300 | 
| A | 12:07 | walk | 3 | 4 | 300 | 
| A | 12:08 | walk | 3 | 3 | 300 | 
| A | 12:09 | walk | 2 | 3 | 300 | 
| A | 12:10 | out | 1 | 2 | 300 | 
| B | 12:01 | in | 1 | 2 | 0 | 
| B | 12:02 | stop | 1 | 4 | 0 | 
| B | 12:03 | walk | 2 | 4 | 0 | 
| B | 12:04 | walk | 2 | 4 | 0 | 
| B | 12:05 | walk | 2 | 3 | 0 | 
| B | 12:06 | walk | 3 | 4 | 0 | 
| B | 12:07 | walk | 3 | 3 | 0 | 
| B | 12:08 | walk | 3 | 2 | 0 | 
| B | 12:09 | stop | 2 | 2 | 0 | 
| B | 12:10 | out | 1 | 2 | 0 | 
売り上げが加わることによって、Aの人は止まったタイミングで何かを手にとって買い物をした可能性があることがわかります。
このデータからはAのユーザーは止まったところで何かを買った可能性があることがわかり、Bのユーザーは何も買わずに歩いていたことがわかります。
しかし、数表のままではどのような行動をしたのかがわかりづらいため、このデータを可視化して、実際の行動を見てみようと思います。
まずはRにデータを読み込みます。ファイルを読み込む際にはデータをcsv形式にしておく必要があります。
data <- read.csv("パス名/行動データ.csv")
上記のようにデータが格納されているパス名を指定し、データを読み込みます。
ファイルを読み込んでからはggplot2というパッケージを利用して、可視化を行います。
library(ggplot2)
g <- ggplot(aes(x = x座標, y = y座標, colour = 行動), data = 行動データ) +
    geom_point()
plot(g)
これを行うと以下のような図が出てきます。

このままではA,Bの行動が重なった状態で比較ができないので、先ほどのggplotにfacetを追加します。
g <- ggplot(aes(x = x座標, y = y座標, colour = 行動), data = 行動データ) +
    geom_point() +
    facet_grid(.~ユーザーID)
plot(g)
するとA,Bの図が以下のように図示されます。

これでA,Bの行動が比較できるようになり、どこを歩いて、どこに止まったのかがわかるようになり、物を購入した人と購入しなかった人の行動の違いが見られるようになりました。
今回はダミーデータを用いているので、簡易なプロットになりましたが、データ量が増えていくと顧客ごとの行動パターン、購買パターンを元にクラスターを作成して、顧客層ごとの行動グラフを表現することも可能になります。例えば買った人/買わなかった人の動きを比較することで、動きの違いを可視化し、店内の施策に活かせる示唆を見つけるようなことができるようになります。