SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ビジネスデータ解析のためのSQL入門

SQLでRFM分析に挑戦する

ビジネスデータ解析のためのSQL入門 第3回

  • X ポスト
  • このエントリーをはてなブックマークに追加

SQLサンプルと解説[3]

RFMを2次元表で分析する

 RFMの3つの指標のうち2つを使い、2次元表で顧客を捉える分析手法もあります。以下ではRFを用いた2次元表の分析を例に示します。

 図3のようにRFのランクごとに顧客のステージを分類します。

図3 RFM分析のRFを用いた2次元表
図3 RFM分析のRFを用いた2次元表

 購買の頻度が高く直近でも購買している(表の左上の)顧客は「優良顧客」、直近購買日が古い(表の下の)顧客は離れていってしまった「離脱顧客」になります。

 「旧優良顧客」はこのまま購買行動をとらなければ離脱する状態にある顧客で、再度購買行動をとってもらうことで、再び優良顧客になるような施策(新商品の告知など)を行います。

 「新規顧客」は2回目3回目と購買してもらえれば優良顧客になるため、そうなるような施策(新規顧客限定のクーポンなど)を行います。

 データは時系列で蓄積しておき、施策を行った際に各分類の顧客数がどのように変化しているか、といった検証に活用します。

 RFを用いた2次元の集計において、欲しい結果は以下の通りです。

 r_rank | f_3 | f_2 | f_1
--------+-----+-----+-----
 r_3    |   0 |   0 |   1
 r_2    |   1 |   0 |   1
 r_1    |   0 |   0 |   1

  SQLはリスト5の通りになります。

リスト5 RFM分析SQL―RF2次元集計(rfm-2d.sql)
 With user_rank_table as (
    略(リスト1の中身)
)
select
    concat('r_',r_rank) as rank,/*(1)*/
    count(case when f_rank = 3 then 1 end) as f_3,/*(2)*/
    count(case when f_rank = 2 then 1 end) as f_2,
    count(case when f_rank = 1 then 1 end) as f_1
from
    user_rank_table
group by
    r_rank
order by
    rank desc
;

(1)Rランクの生成

 Concat関数でrのランク値(1,2,3)に「r_」のプレフィックスを付けます

(2)RランクごとのFランク数集計

 Rランクごとにグルーピングした後、各Fランクの個数を数えて集計します。

まとめ

 今回はRFM分析を取り上げました。

 強力な顧客分析手法であり、購買履歴さえあればSQLで分析を実施できることがお分かりいただけたと思います。

 次回はSQL分析結果の可視化をテーマとして取り上げる予定です。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
ビジネスデータ解析のためのSQL入門連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 西 潤史郎(ニシ ジュンシロウ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook<個人紹介>フリーランスとしてデータ解析エンジニアとして主にビッグデータ関連の仕事をしています。TableauなどBIやビッグデータ処理などビジネスデータ解析環境の構築・運用、また解析系のアプリケーション開発やGoogleアナリティクス活用支援などを行っています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10346 2017/08/04 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング