🎮

Tableau Public実践 BIツールデータ活用100本ノック 第3章

2024/07/10に公開

この記事は、Tableau(タブロー) Public実践 BIツールデータ活用 100本ノックを読んで学んだことをまとめています。Knockタイトルや内容が本とは異なっている部分もありますので、あらかじめご了承ください。

この記事をきっかけにもっと勉強したいと思った方は、是非本をお手に取って読まれてください。

【リンク紹介】
【一覧】Tableau Public実践 BIツールデータ活用100本ノック
これまで書いたシリーズ記事一覧

この章では、RFM分析を用いて優良顧客を定量的に定義していきます。

RFM分析とは

Recency(最終購入日)、Frequency(購入頻度)、Monetary(購入金額)の3つの観点から顧客を評価し、スコアリングまたはグルーピングする手法のこと。

Recency(最終購入金額)

Knock31:顧客ごとの最終注文日時を表示する

まずはKnock21~23を参考に、この記事で使用するデータの準備を行います。

  1. シートを新しく作成します(シート名は「Recency」)。
  2. データペインの「order.csv」のディメンションにある「注文日時」を右クリックし、「作成」→「計算フィールド」を選択します。
  1. Knock27の時のように、名前を「最終注文日時」に変更し、計算式を以下のように記述します。
  1. 適用」をクリックすると、データペインに新しく「最終注文日時」が作成されます。
  1. データペインの「order.csv」のディメンションにある「顧客ID」を「行シェルフ」へドラッグ&ドロップします。
    ※警告がでますが、「すべての要素を追加」を選択します。
  1. 作成した「最終注文日時」を「行シェルフ」へ右クリックでドラッグ&ドロップします。

  2. フィールドのドロップ」で「最終注文日時(不連続)」を選択します。

顧客ごとの最終注文日時が表示されました。

Knock32:最終購入日からの経過日数を算出する

  1. メニュー」から「分析」→「計算フィールドの作成」を選択します。
  1. 名前を「今日の日付」に変更し、最終注文日からの経過日数を計算するための基準日として「2023年1月1日」を設定します。
  1. 適用」をクリックすると、データペインに新しく「今日の日付」が作成されます。
  1. 同様にして「計算フィールドの作成」を用いて、以下のようにもうひとつ作成します。
  1. 適用」をクリックすると、データペインに新しく「最終注文日からの経過日数」が作成されます。
  1. 作成した「今日の日付」を「行シェルフ」へ右クリックでドラッグ&ドロップします。

  2. フィールドのドロップ」で「今日の日付(不連続)」を選択します。

  1. 作成した「最終注文日からの経過日数」をマークカードの「テキスト」にドラッグ&ドロップします。
画面は「降順」で並び替えたものです。

Knock33:ヒストグラムで経過日数を可視化する

  1. シートを新しく作成します(シート名は「ヒストグラム(経過日数)」)。
  2. 最終注文日からの経過日数」を右クリック→「作成」→「ビン」を選択します。
  1. ビンのサイズ」を「10」に変更します。
  1. OK」をクリックすると、データペインに新しく「最終注文日からの経過日数(ビン)」が作成されます。
  1. 作成した「最終注文日からの経過日数(ビン)」を「列シェルフ」にドラッグ&ドロップします。
  2. 最終注文日からの経過日数」を「行シェルフ」に右クリックでドラッグ&ドロップします。
  3. フィールドのドロップ」で「カウント(最終注文日からの経過日数)」を選択します。

Frequency(購入頻度)

Knock34:顧客別の購入頻度を算出する

  1. シートを新しく作成します(シート名は「顧客ごとの購入回数」)。
  2. データペインの「order.csv」のディメンションにある「顧客ID」を「行シェルフ」にドラッグ&ドロップします。
    ※警告がでますが、「すべての要素を追加」を選択します。
  1. データペインの「order.csv」のディメンションにある「注文日時」を「行シェルフ」にドラッグ&ドロップします。
    ※右クリックして「並べ替え」を選択し、「降順」を選択しておきます。
  1. データペインの「order.csv」のメジャーにある「order.csv(カウント)」を、マークカードの「テキスト」にドラッグ&ドロップします。

Knock35:ヒストグラムで購入頻度の分布を可視化する

  1. シートを新しく作成します(シート名は「ヒストグラム(顧客別購入回数)」)。
  2. データペインの「order.csv」のディメンションにある「注文ID」を右クリック→「作成」→「計算フィールド」を選択します。
  1. 名前を「顧客別購入回数」に変更し、計算式を以下のように記述します。
  1. 適用」をクリックすると、データペインに新しく「顧客別購入回数」が作成されます。
  1. 次に、作成した「顧客別購入回数」を右クリック→「作成」→「ビン」を選択します。
  1. ビンのサイズ」を「10」に変更します。
  1. OK」をクリックすると、データペインに新しく「顧客別購入回数(ビン)」が作成されます。
  1. 顧客別購入回数(ビン)」を右クリック→「連続に変換」を選択します。
  1. 作成した「顧客別購入回数(ビン)」を「列シェルフ」にドラッグ&ドロップします。
  2. 顧客別購入回数」を「行シェルフ」に右クリックでドラッグ&ドロップします。
  3. フィールドのドロップ」で「カウント(顧客別購入回数)」を選択します。

Knock36:散布図を使ってデータの関係性を可視化する

散布図を使って、最終注文日からの経過日数と購入頻度の関係性を見ていきます。

  1. シートを新しく作成します(シート名は「散布図」)。
  2. 最終注文日数からの経過日数」を「行シェルフ」に右クリックでドラッグ&ドロップします。
  3. フィールドのドロップ」で「最終注文日数からの経過日数」を選択します。
  1. 顧客別購入回数」を「列シェルフ」に右クリックでドラッグ&ドロップします。
  2. フィールドのドロップ」で「顧客別購入回数」を選択します。
これにて散布図はひとまず表示されました。

さらに散布図を加工します。
3. データペインの「order.csv」のディメンションにある「顧客ID」をマークカードの「詳細」にドラッグ&ドロップします。
※警告がでますが、「すべての要素を追加」を選択します。

  1. Knock27で作成した、メジャーにある「顧客別注文金額」をマークカードの「サイズ」にドラッグ&ドロップします。
購入金額に比例して丸が大きくなっています。

最後に「傾向線」を引いていきます。

  1. データペイン」から「アナリティクスペイン」に切り替えます。
  1. アナリティクスペインの「傾向線」を、「ビュー」にドラッグします。
  2. ビューにドラッグすると「傾向線の追加」という項目が表示されるので、「線形」の上でドロップします。
傾向線が表示されました。

Knock37:散布図の四分位範囲を可視化する

  1. 「散布図」シートを複製し、シート名を「四分位範囲」に変更します。
  2. 行シェルフ」の「最終注文日からの経過日数」を右クリック→「メジャー」→「合計」を選択します。
ビューも少し変化します。
  1. ビューの縦軸の「最終注文日からの経過日数」を右クリック→「軸の編集」を選択します。
  1. スケール」の「反転」を選択します。

まず、最終注文日数からの経過日数(縦軸)の四分位範囲を可視化します。
5. アナリティクスペインの「リファレンスライン」を「ビュー」にドラッグします。

  1. ビューにドラッグすると「リファレンスラインの追加」という項目が表示されるので、下図のオレンジ部分の上でドロップします。
  1. 「リファレンス ライン、バンド、またはボックスの編集」が表示されるので、「分布」を選択し、値は「四分位数」、ラベルは「なし」、「対称」にチェックを入れます。

同様にして、顧客別購入回数(横軸)の四分位範囲を可視化します。
8. リファレンスラインをビューにドラッグし、「リファレンスラインの追加」で下図のオレンジ部分の上でドロップします。

  1. 「リファレンス ライン、バンド、またはボックスの編集」が表示されるので、「分布」を選択し、値は「四分位数」、ラベルは「なし」、「対称」にチェックを入れます。

最後に、顧客別注文金額の四分位数を表示します。
10. 右側にある「合計(顧客別注文金額)」の下の空欄部分を右クリックして、「サマリー」を選択します。

  1. サマリー」の横にある▼マークを押し、「第1四分位数」、「第3四分位数」を選択します。

RFM分析

Knock38:顧客をスコアリングする

Knock37の四分位数を基準に顧客をスコアリングします。

  1. シートを新しく作成します(シート名は「RFM分析」)。
  2. メニューから「分析」→「計算フィールドの作成」を選択し、以下3種類の計算フィールドを作成します。
Recency scoreのコード
IF     [最終注文日からの経過日数] <=  25 THEN "4:  25日≧"
ELSEIF [最終注文日からの経過日数] <=  84 THEN "3:  84日≧"
ELSEIF [最終注文日からの経過日数] <= 304 THEN "2: 304日≧"
ELSEIF [最終注文日からの経過日数] >= 305 THEN "1: 305日≦"
END
Frequency scoreのコード
IF     [顧客別購入回数] >= 10 THEN "4: 10回≦"
ELSEIF [顧客別購入回数] >=  5 THEN "3:  5回≦"
ELSEIF [顧客別購入回数] >=  2 THEN "2:  2回≦"
ELSEIF [顧客別購入回数]  =  1 THEN "1:  1回"
END
Monetary scoreのコード
IF     [顧客別注文金額] >= 182185 THEN "4: 182,185円≧"
ELSEIF [顧客別注文金額] >=  91000 THEN "3:  91,000円≧"
ELSEIF [顧客別注文金額] >=  40400 THEN "2:  40,400円≧"
ELSEIF [顧客別注文金額] <   40400 THEN "1:  40,400円≧"
END
  1. ツールバーのドロップダウンリストから「標準」を「ビュー全体」に変更します。
  1. Recency score」を「行シェルフ」に右クリックでドラッグ&ドロップします。
  2. フィールドのドロップ」は「Recency score」を選択します。
  1. Frequency score」を「列シェルフ」に右クリックでドラッグ&ドロップします。
  2. フィールドのドロップ」は「Frequency score」を選択します。
  1. Monetary score」をマークカードの「」と「詳細」にそれぞれ右クリックでドラッグ&ドロップします。
  2. フィールドのドロップ」は「Monetary score」を選択します。
  1. データペインの「顧客ID」をマークカードの「ラベル」に右クリックでドラッグ&ドロップします。
  2. フィールドのドロップ」は「個別のカウント(顧客ID)」を選択します。
完成?

これでRFM分析の可視化は完了しましたが、文字が小さかったり、四角アイコンが小さかったりとデザインが実用的ではなりません。もう少し使いやすくなる工夫をします。まずは各スコアをビュー上で表示させます。

  1. マークカードの「サイズ」、「ラベル」で調整します。
調整は各自の判断で調整してみてください。

Knock39:優良顧客にフラグ付けを行う

優良顧客を「合計スコアが11以上」であると定義し、該当するものをピックアップしてまとめます。

  1. スコア合計が11以上となるマークを複数選択します。
  1. 選択したマーク上で右クリックし、「セットの作成」を選択します。
  1. 名前を「合計スコア11以上」に変更し、「OK」をクリックします。
  1. データペインのディメンションに新しく「合計スコア11以上」が作成されたことを確認できます。
  1. 合計スコア11以上」を右クリック→「作成」→「計算フィールド」を選択します。
  1. 名前を「優良顧客フラグ」に変更し、計算式を以下のように記述します。
  1. データペインのメジャーに新しく「優良顧客フラグ」が作成されたことを確認できます。
  1. シートを新しく作成します(シート名は「優良顧客フラグ」)。
  2. データペインの「顧客ID」を「行シェルフ」にドラッグ&ドロップします。
  3. データペインの「優良顧客フラグ」をマークカードの「テキスト」に右クリックでドラッグ&ドロップします。
  4. フィールドのドロップ」は「優良顧客フラグ」を選択します。

Knock40:優良顧客の基本統計量を確認する

  1. シートを新しく作成します(シート名は「優良顧客の基本統計量」)。
  2. データペインの「優良顧客フラグ」を「フィルターシェルフ」にドラッグ&ドロップします。
  3. 優良顧客フラグ」を右クリック→「不連続に変換」を選択します。
  4. フィールドのフィルター」で「すべての値」を選択し、「次へ」を選択します。
  1. フィルター」で「1」を選択します。
  1. Knock26の基本統計量の操作と同様にして、優良顧客の基本統計量を確認します。
メジャーネームのフィルターはこんな感じ
完成するとこのような表示になると思います。

\bf{\textcolor{red}{記事が役に立った方は「いいね」を押していただけると、すごく喜びます \ 笑}}
ご協力のほどよろしくお願いします。

Discussion