見出し画像

TableauでF2転換率を計算する(テーブルに購買した回数の番号を付け、自己リレーションシップで集計)

 
概要

TableauでF2転換率を集計する方法を書いた記事です。

今回は、顧客ごとに何回目に買ったか分かる番号を付与し、自己リレーションシップで集計する方法を書きます。

何かの参考になればうれしいです!

 
F2転換率とは?

F2転換率とは、初回購入者が2回目の購入に至る割合を指します。
「F」はFrecency(頻度)の頭文字で、何回目の購入なのかを表しています。

この指標は、顧客がリピーターになるかどうかを示す重要な指標であり、ビジネスの持続的な成長に大きな影響を与えます。F2転換率を追跡することで、顧客のロイヤルティやマーケティング施策の効果を測定し、改善策を講じることが可能です。


F2転換率の定義

F2転換率は以下で計算します。

[2回目に購入した人数] / [1回目に購入した人数]

2回目に購入した人数は「1回目に購入した日から3か月以内に2回目に買った人数」というように制限をかける場合があります。

例えば、初めて購入した人に対し2か月以内で使えるクーポンを発行したとします。この場合は60日以内に購入があるかどうかで判定することで、クーポンの効果を調べることができます。

業種・業態に応じて2回目に購入する頻度が異なるため、実際の購入頻度に合わせた設計が重要です。


実践

データはTableauでよく使う[サンプル スーパーストア]を使います。
4ステップで説明していきます。

  1. 顧客ごとに何回目の購入かが分かる番号の列を追加

  2. テーブルを顧客番号と購入回数で自己リレーションシップ
    (セカンダリのテーブルは 購入回数 - 1 でリレーションシップ)

  3. F2転換率で使用する計算フィールドを作成

  4. 可視化

 
顧客ごとに何回目の購入かが分かる番号の列を追加

F2転換を判定するには、そのデータがF1なのか、F2なのか分かるようにしないといけません。

今回はSQLのViewを使って何回目の購入なのかを判定します。
環境はSQL Serverを使います。

元のデータは以下のようになっています。

元データ

ここに、顧客IDごと、オーダー日ごとに番号を振っていきます。
DENCE_RANK() を使います。

SELECT
    [顧客 ID],
    オーダー日,
    製品名,
    売上,
    DENSE_RANK() OVER(PARTITION BY [顧客 ID] ORDER BY [オーダー日] ASC) as Frecency
FROM
    dbo.[order]

これでviewを作ると

viewの結果

番号が付与されました!この番号が作れればほぼ完成です。

注意点は、返品データが混ざる場合です。事前にクレンジングしないと、本当は1回しか買っていないのに3回購入したことになります。(購入→返品→購入で3回)

あらかじめデータの特性を把握したうえで前処理しましょう。

 
テーブルを顧客番号と購入回数で自己リレーションシップ
(セカンダリのテーブルは 購入回数 - 1 でリレーションシップ)

それではTableauを使っていきます。
データの接続で、先ほど作成したviewを自己リレーションシップします。

データの接続

セカンダリ(右側にあるテーブル)は、関係の計算で [Frecency] - 1 で繋ぎます。以下のようなテーブルができます。

テーブルのイメージ

縦持ちのデータを横持ちにするイメージです。
この形であれば1回に買った人の数、2回目に買った人の数が計算しやすいです。

 
F2転換率で使用する計算フィールドを作成

計算フィールドを作ります。

1回目に買った人(F1会員数)

//F1会員数
countd([顧客 Id])

2回目に買った人は、3か月以内に購入したかどうかを判定したいので、日付のパラメータ[F2の日数]を作り、datediffで判定します。

//F2会員数
countd(
if
datediff('day',[オーダー日],[オーダー日 (F2分析1)]) <= [F2の日数]
then
[顧客 Id (F2分析1)]
end
)

F2の日数は90日にしています。
F2転換率も作ります。

//F2転換率
[F2会員数]/[F1会員数]

必要なフィールドが揃ったので、可視化します。

 
可視化

リレーションシップで繋いでいるので、全体のF2転換率とカテゴリごとのF2転換率を同時に出すことができます。

まず表を作ってみます。プライマリのテーブルのFrecencyを1にフィルターすることで、F2転換率が出せます。(抽出フィルターを使ってもOK)

F2転換率

カテゴリごとのF1会員数(新規の人数)と、F2会員数(1回目から90日間で2回目に購入した人数)、F2転換率が出ることを確認します。

差が出ているので、散布図を作ってみます。
行にF1会員数、列にF2転換率、テキストにサブカテゴリ、フィルターにFrecency = 1 を入れます。

散布図

せっかくなのでクラスターを作ります。

アナリティクスペインから「クラスター」をドラッグ&ドロップします。

クラスターを追加するところ

クラスターの数は自動にします。

クラスターが追加された結果

4つのグループができました。

クラスター1 : 平均的
クラスター2 : F1が多い(新規が取りやすいカテゴリ)
クラスター3 : F1が少なくF2転換率が高い(買う人は少ないが、リピーターになりやすいカテゴリ)
クラスラー4 : 新規が少なく、リピーターも少ないカテゴリ

ここから色々な仮説が作れます。

  • クラスター2は新規を多く取っている商品なので、さらにF2になるような施策をつくる。

  • クラスター3はリピートする人が多いが、新規が買いにくいので、新規の方でも買いやすくなるような施策を考える。

  • クラスター4は新規・リピートともに低いので、F2転換率以外の数字も調べる。(例:単価や利益に貢献しているか?など)

他にも、時系列のグラフを作ると、キャンペーンごとに新規がどれだけ獲得できたか、それがリピータにどのくらい繋がったのか、が分かります。

F1会員数とF2転換率

実際は1の買い物で1つのカテゴリだけでなく、複数のカテゴリを購入しています。今回は分かりやすいように1つのカテゴリで計算していますが、複数カテゴリを購入した場合にF2転換しやすいか?という集計もデータの下処理次第で可能です。

 
ワークブックのDL

ワークブックはTableauPublicにパブリッシュしています。ご覧ください。
https://public.tableau.com/views/F2_17284521203150/sheet1?:language=ja-JP&publish=yes&:sid=&:redirect=auth&:display_count=n&:origin=viz_share_link

 
おわりに

このように購買順序を考慮した分析は「シーケンシャルパターンマイニング」と呼ばれます。(同時購買の分析は「アソシエーション分析」「バスケット分析」などと呼ばれます)

Tableauをやっている人から何度か「併売分析の記事読みました!」と言われました。併売分析をやっている人は、おそらくF2転換分析もやるだろうと思いこの記事を書きました。

要望があればもう少し記事に肉付けしようと思います。

いいね!と思った方はXをフォローしてくれると喜びます!
https://x.com/Seiji_Suna


いいなと思ったら応援しよう!