RFM分析の簡単な例

Last-modified: 2008-05-17 (土) 22:55:34

RFM分析とは、顧客の購買行動を次の3つの基準でそれぞれランク付けをして、
その3つのランクをもとに顧客に対するアクションを行うことです。

  • 最新購買日(Recency)
  • 購買回数(Frequency)
  • 購買金額の合計(Monetary)

多くの場合、(何らかの方法で)5段階にランク付けをして、その結果を
もとに、顧客に対するプロモーションを考えます。

次の例では、直近の購買日、回数、金額の合計を
単純にランク付けをして、5つのグループに分けています。

data test;
input custid$ 4. @6 date yymmdd8. amount;
cards;
0001 20010809 1000
0001 20011111 1920
0001 20020104 2300
0002 20010903 4300
0002 20011219 2100
0002 20020306 1980
0002 20010903 4300
0003 20011219 2100
0003 20020306 1980
0003 20010903 4300
0004 20011219 2100
0005 20011222 1000
0005 20020311 1980
0006 20010811 10000
0006 20010908 1980
0006 20010101 20000
0006 20010911 40000
0007 20011223 2000
0008 20010906 980
0008 20011203 500
0008 20011211 1200
0008 20020501 980
0008 20021003 4000
0008 20021211 500
0009 20011015 1000
0009 20020113 1300
0009 20020410 2000
0010 20021112 19800
;
run;
proc means data=test nway noprint;
  class custid;
  var date amount;
  output out=rfm(drop=_type_ rename=(_freq_=Frequency)) max(date)=Recency sum(amount)=Monetary;
run;
proc rank data=rfm group=5 out=rfm;
  var Recency Frequency Monetary;
run;

data rfm;
  set rfm;
  array _temp{3} _numeric_;
  do i=1 to dim(_temp);
    _temp{i}+1;
  end;
  drop i;
run;

proc print data=rfm;
run;