えいきちのデータ分析

えいきちのデータ分析

データ分析の理解を進めるブログ

〜Tableau〜 【実践スキル】顧客分析をTableauでやってみよう2

f:id:eikichix:20200501083527j:plain

前回の続きで進めていこうと思いますー
前回のブログはこちら
eikichix.hatenablog.com

〜さくっとおさらい〜RFM分析とは?

RFMは3つの頭文字をまとめたもの

1. Recency

顧客が物を購入した最終注文日

2.Frequency

顧客が物を購入する頻度

3.Monetary

顧客が購入した金額

頭スペルを取ってRFM分析。
顧客が何を買ったかには注目せずに上記3つに絞って分析することがポイント。


Tableau操作

前回同様参考書に沿って操作します。

個人的に理解したいところや、つまづいたところを以下にメモ。

前準備

パラメータとDATEDIFF関数のコラボ

柔軟性があると感じたのでメモ。
DATEDIFF関数では初項で表示単位を指定する必要がある。(day, month, quarter, year)
パラメータ設定をしておけば、わざわざコーディングを変更せずとも表示単位を変更することができるので便利。 
f:id:eikichix:20200501084408p:plain
f:id:eikichix:20200501084647p:plain


顧客別都道府県数の理解

やっていることが理解しきれなかったのでまとめます。
本目的は「都道府県ディメンションが顧客の居住地として扱えるか否か」
参考書では計算パラメータとして以下を作成。 切り口を顧客idで固定した時の都道府県をユニークにカウント。
f:id:eikichix:20200501090626p:plain

メジャーを顧客数で置いてグラフ作成した結果がこちら。
f:id:eikichix:20200501091344p:plain

列が「1」のみで構成されていれば、1顧客に1都道府県が紐づいており、そこが居住地となるが、1顧客に対して複数の都道府県が紐づいている。(1:Nの関係)
参考書はここまでだが、違う視点からも見てみたかったので、都道府県(COUNTD)計算フィールドで作成。都道府県、顧客IDを切り口に内容確認することにしました。
f:id:eikichix:20200501092020p:plain
f:id:eikichix:20200501092106p:plain

顧客IDに紐づいている都道府県を丸で表しています。
1顧客について複数県紐づいているのが分かる。引越しをしてから同会社の別店舗で買い物しているということになるのかな(そう考えると皆んなめっちゃ引越ししてる。) これで理解。

居住地都道府県(行)計算フィールドの理解(とLODの理解)

演習の中で以下の計算フィールドの作成があった。
f:id:eikichix:20200502093329p:plain

条件式の2項目の状況がありえるのか確認をしてみることにした。
最新オーダー日計算フィールドを作成して表示確認から。
オーダidの最終行が最新オーダIDに入っている。
※フィルターで顧客idを絞って表示
f:id:eikichix:20200502093522p:plain
f:id:eikichix:20200502094028p:plain

上記からオーダーIDピルを抜いて、代わりに都道府県を入れれば確認できると思ったけど、あれ??
f:id:eikichix:20200502094941p:plain

1つの最新オーダIDに複数の都道府県が紐づいていることになっている。
これって顧客IDに紐づいている都道府県と同じではないかと思い、最新オーダIDを抜いて確認。
f:id:eikichix:20200502095146p:plain

うん、同じ。
ということは
1.計算フィールド
2.計算フィールド内でLODを使用したフィールド

上記どちらかを行や列に配置して後ろにフィールドを配置してもこの切り口は無視されて表示される。

どちらか突き止めたいので、以下の計算フィールドを作成(LOD無)
f:id:eikichix:20200502100546p:plain

都道府県が兵庫県出ないと表示されない計算フィールド。
これを表示させる。
f:id:eikichix:20200502101838p:plain

NULLと兵庫県都道府県が分けられて表示されている。ので理想通り。
なので結論は

計算フィールド内でLODを使用したフィールドを行や列に配置し、後ろにフィールドを配置しても、この切り口は無視されて表示される。

の理解が正しそう。

話がかなりそれました。
本題に戻って、条件式の2項目の状況がありえるのかの確認をしたい。
f:id:eikichix:20200502093329p:plain

別のやり方を再考。
上記の計算フィールドを以下に変更。
f:id:eikichix:20200502104541p:plain

第2項目をコメント化して第一項のみの条件としました。さらに以下の計算フィールドを作成。
f:id:eikichix:20200502104735p:plain

これをビューに以下内容でフィールド配置して表示確認。
f:id:eikichix:20200502104831p:plain

これで全てが1であれば良いが2以上のものがあるか否かをフィルターかけて確認。 今テキストに置いているフィールドをコピーしてフィルタへ配置。
f:id:eikichix:20200502105011p:plain

重複数が分からないのでとりあえず値の範囲を5に設定してフィルタ表示。
表示フィルタにて値を2にしてみると
f:id:eikichix:20200502105212p:plain

いました。これを分解してみる。
この顧客IDでフィルタしたいので以下のようにセットを作成。
f:id:eikichix:20200502105425p:plain

COUNTDのフィルタと入れ替えて、以下の条件で分割
f:id:eikichix:20200502105851p:plain

オーダ最新日に異なる都道府県で購入されていることがこれで理解。
Tableau標準ロジックでは行IDが若い値が居住都道府県で表示されているよう。
なので以下の第2項目は必要である。
f:id:eikichix:20200502093329p:plain

やっと理解。。。

まとめ

今回はほとんど居住地都道府県の中身の内容となりました。
内容考察しながらやることで、進み具合は遅いものの本来の目的の知識や技術が蓄積されてくので何も考えずに進めるより有意義な内容だと思っています。 あくまで知識、技術をつけることが目的であることを忘れずに進めたいなと。
皆さんのご援助にもなれば幸いです。

参考書
https://www.amazon.co.jp/Tableau%E3%83%87%E3%83%BC%E3%82%BF%E5%88%86%E6%9E%90-%E5%85%A5%E9%96%80%E3%81%8B%E3%82%89%E5%AE%9F%E8%B7%B5%E3%81%BE%E3%81%A7-%E7%AC%AC2%E7%89%88-%E5%B0%8F%E9%87%8E-%E6%B3%B0%E8%BC%94/dp/4798059838