数据获取
数据来源于CDNow,链接:http://www.brucehardie.com/datasets/
数据预处理
打开Power BI软件,点击获取数据,选择文本/CSV获取数据。
数据集一共包含5个字段,点击转化数据进行数据预处理。
数据清洗后,在主页里点击关闭并应用。
计算R、F、M值
计算R值
因order_dt列的数据无法自动转换成日期格式,点击数据页面,新建列order_dt2,DAX函数如下:
order_dt2=LEFT([order_dt],4)&“/”&MID([order_dt],5,2)&“/”&RIGHT([order_dt],2)
将order_dt2列的数据类型改为日期格式,并将日期格式自定义为(yyyy/mm/dd)的格式。
新建列,写入DAX函数,计算最后一个交易日期:
最后一个交易日期 = MAXX(FILTER(CDNow_master,EARLIER(CDNow_master[user_id])=CDNow_master[user_id]),CDNow_master[order_dt2])
设置当前的交易日期为度量值:
lastdate = LASTDATE(ALLSELECTED(CDNow_master[最后一个交易日期]))
新建列计算R值,并将其转化为整数,计算交易的间隔天数:
R = [lastdate]- CDNow_master[最后一个交易日期].[Date]
计算F值
选择新建度量值,计算每一单的交易频次:
F = COUNT(‘CDNow_master’[user_id])
计算M值
选择新建度量值,计算每一单的交易金额:
M = SUM(CDNow_master[order_amount])
计算R、F、M综合分值
将R、F、M值各自按照平均值划分为高、低两类,高于平均值的赋值为1,低于平均值的赋值为0,在建模中选择新建表,用函数将用户ID、R、F、M的值组成一张新表。
新建列,使用AVERAGE函数,分别计算R、F、M的平均值。
算出R、F、M的得分:
R得分 = IF(‘RFM’[R]<=RFM[AVG_R],1,0)
F得分 = IF(‘RFM’[F]>=RFM[AVG_F],1,0)
M得分 = IF(‘RFM’[M]>=RFM[AVG_M],1,0)
合并RFM值:
RFM = ‘RFM’[R得分]&‘RFM’[F得分]&‘RFM’[M得分]
RFM分层模型
根据RFM的综合分值对用户进行分层,使用SWITCH函数将其分为8类:
客户分层 = SWITCH(RFM[RFM], “111”,“重要价值客户”,
“011”,“重要保持客户”,
“101”,“重要挽留客户”,
“001”,“重要发展客户”,
“110”,“一般价值客户”,
“010”,“一般保持客户”,
“100”,“一般挽留客户”,
“000”,“一般发展客户”)
数据可视化
数据建模后,将CDNow_master表和RFM表连接起来。
制作Dashboard,根据用户RFM分层添加图表及筛选器,数据可视化结果如下图所示。
分析结论
从用户分层结果可知: