數(shù)倉 | 如何使用RFM模型進(jìn)行用戶分層
本文轉(zhuǎn)載自微信公眾號(hào)「大數(shù)據(jù)技術(shù)與數(shù)倉 」,作者西貝。轉(zhuǎn)載本文請(qǐng)聯(lián)系大數(shù)據(jù)技術(shù)與數(shù)倉 公眾號(hào)。
在適當(dāng)、有效的商務(wù)智能環(huán)境中,數(shù)據(jù)分析的質(zhì)量必須得到保障。而確保數(shù)據(jù)分析質(zhì)量的第一步就是根據(jù)問題需求從海量數(shù)據(jù)中提煉出真正所需的數(shù)據(jù),因?yàn)檫@是發(fā)揮數(shù)據(jù)價(jià)值很重要的一個(gè)方面。通過數(shù)據(jù)的分析與可視化呈現(xiàn)可以更加直觀的提供數(shù)據(jù)背后的秘密,從而輔助業(yè)務(wù)決策,實(shí)現(xiàn)真正的數(shù)據(jù)賦能業(yè)務(wù)。本文主要介紹在用戶分層和用戶標(biāo)簽中常常使用的一個(gè)模型——RFM模型。
基本概念
RFM模型是在客戶關(guān)系管理(CRM)中常用到的一個(gè)模型,RFM模型是衡量客戶價(jià)值和客戶創(chuàng)利能力的重要工具和手段。該模型通過一個(gè)客戶的近期購買行為、購買的總體頻率以及花了多少錢三項(xiàng)指標(biāo)來描述該客戶的價(jià)值狀況。
RFM模型較為動(dòng)態(tài)地層示了一個(gè)客戶的全部輪廓,這對(duì)個(gè)性化的溝通和服務(wù)提供了依據(jù),同時(shí),如果與該客戶打交道的時(shí)間足夠長(zhǎng),也能夠較為精確地判斷該客戶的長(zhǎng)期價(jià)值(甚至是終身價(jià)值),通過改善三項(xiàng)指標(biāo)的狀況,從而為更多的營(yíng)銷決策提供支持。
RFM由三要素構(gòu)成,即R – Recency 最近一次活動(dòng),F(xiàn) – Frequency用戶活動(dòng)頻率,M – Monetary 消費(fèi)金額,每個(gè)要素都代表著用戶某種重要的行為特征。RFM衡量數(shù)據(jù)是分析用戶行為的重要指標(biāo),用戶活動(dòng)頻率F和消費(fèi)金額M代表了用戶終生價(jià)值,最近一次活動(dòng)R則代表了用戶留存率以及用戶參與度。
在RFM模式中,包括三個(gè)關(guān)鍵的因素,分別為:
- R(Recency):表示客戶最近一次購買的時(shí)間有多遠(yuǎn),即最近的一次消費(fèi),消費(fèi)時(shí)間越近的客戶價(jià)值越大
- F(Frequency):表示客戶在最近一段時(shí)間內(nèi)購買的次數(shù),即消費(fèi)頻率,經(jīng)常購買的用戶也就是熟客,價(jià)值肯定比偶爾來一次的客戶價(jià)值大
- M (Monetary):表示客戶在最近一段時(shí)間內(nèi)購買的金額,即客戶的消費(fèi)能力,通常以客戶單次的平均消費(fèi)金額作為衡量指標(biāo),消費(fèi)越多的用戶價(jià)值越大。
最近一次消費(fèi)、消費(fèi)頻率、消費(fèi)金額是測(cè)算消費(fèi)者價(jià)值最重要也是最容易的方法,這充分的表現(xiàn)了這三個(gè)指標(biāo)對(duì)營(yíng)銷活動(dòng)的指導(dǎo)意義。而其中,最近一次消費(fèi)是最有力的預(yù)測(cè)指標(biāo)。
通過上面分析可以對(duì)客戶群體進(jìn)行分類:
客戶類型與等級(jí) | R | F | M | 客戶特征 |
---|---|---|---|---|
重要價(jià)值客戶 (A級(jí)/111) |
高(1) | 高(1) | 高(1) | 最近消費(fèi)時(shí)間近、消費(fèi)頻次和消費(fèi)金額都很高 |
重要發(fā)展客戶 (A級(jí)/101) |
高(1) | 低(0) | 高(1) | 最近消費(fèi)時(shí)間較近、消費(fèi)金額高,但頻次不高,忠誠(chéng)度不高,很有潛力的用戶,必須重點(diǎn)發(fā)展 |
重要保持客戶 (B級(jí)/011) |
低(0) | 高(1) | 高(1) | 最近消費(fèi)時(shí)間交遠(yuǎn),消費(fèi)金額和頻次都很高。 |
重要挽留客戶 (B級(jí)/001) |
低(0) | 低(0) | 高(1) | 最近消費(fèi)時(shí)間較遠(yuǎn)、消費(fèi)頻次不高,但消費(fèi)金額高的用戶,可能是將要流失或者已經(jīng)要流失的用戶,應(yīng)當(dāng)基于挽留措施。 |
一般價(jià)值客戶 (B級(jí)/110) |
高(1) | 高(1) | 低(0) | 最近消費(fèi)時(shí)間近,頻率高,但消費(fèi)金額低,需要提高其客單價(jià)。 |
一般發(fā)展客戶 (B級(jí)/100) |
高(1) | 低(0) | 低(0) | 最近消費(fèi)時(shí)間較近、消費(fèi)金額,頻次都不高。 |
一般保持客戶 (C級(jí)/010) |
低(0) | 高(1) | 低(0) | 最近消費(fèi)時(shí)間較遠(yuǎn)、消費(fèi)頻次高,但金額不高。 |
一般挽留客戶 (C級(jí)/000) |
低(0) | 低(0) | 低(0) | 都很低 |
通過RFM模型能得到什么信息
- 誰是最佳用戶?
- 哪些用戶即將流失?
- 誰有潛力成為有價(jià)值用戶?
- 哪些用戶可以留存?
數(shù)據(jù)分析案例
- 效果圖
- 實(shí)現(xiàn)步驟
假設(shè)有如下的樣例數(shù)據(jù):
客戶名稱 | 日期 | 消費(fèi)金額 | 消費(fèi)數(shù)量 |
---|---|---|---|
上海****有限公司 | 2020-05-20 | 76802 | 2630 |
需要將數(shù)據(jù)集加工成如下格式:
具體SQL實(shí)現(xiàn)
- SELECT
- customer_name,-- 客戶名稱
- customer_avg_money,-- 當(dāng)前客戶的平均消費(fèi)金額
- customer_frequency, -- 當(dāng)前客戶的消費(fèi)頻次
- total_frequency,-- 所有客戶的總消費(fèi)頻次
- total_avg_frequency, -- 所有客戶平均消費(fèi)頻次
- customer_recency_diff, -- 當(dāng)前客戶最近一次消費(fèi)日期與當(dāng)前日期差值
- total_recency, -- 所有客戶最近一次消費(fèi)日期與當(dāng)前日期差值的平均值
- monetary,-- 消費(fèi)金額向量化
- frequency, -- 消費(fèi)頻次向量化
- recency, -- 最近消費(fèi)向量化
- rfm, -- rfm
- CASE
- WHEN rfm = "111" THEN "重要價(jià)值客戶"
- WHEN rfm = "101" THEN "重要發(fā)展客戶"
- WHEN rfm = "011" THEN "重要保持客戶"
- WHEN rfm = "001" THEN "重要挽留客戶"
- WHEN rfm = "110" THEN "一般價(jià)值客戶"
- WHEN rfm = "100" THEN "一般發(fā)展客戶"
- WHEN rfm = "010" THEN "一般保持客戶"
- WHEN rfm = "000" THEN "一般挽留客戶"
- END AS rfm_text
- FROM
- (SELECT
- customer_name,-- 客戶名稱
- customer_avg_money,-- 當(dāng)前客戶的平均消費(fèi)金額
- customer_frequency, -- 當(dāng)前客戶的消費(fèi)頻次
- total_avg_money ,-- 所有客戶的平均消費(fèi)總額
- total_frequency,-- 所有客戶的總消費(fèi)頻次
- total_frequency / count(*) over() AS total_avg_frequency, -- 所有客戶平均消費(fèi)頻次
- customer_recency_diff, -- 當(dāng)前客戶最近一次消費(fèi)日期與當(dāng)前日期差值
- avg(customer_recency_diff) over() AS total_recency, -- 所有客戶最近一次消費(fèi)日期與當(dāng)前日期差值的平均值
- if(customer_avg_money > total_avg_money,1,0) AS monetary, -- 消費(fèi)金額向量化
- if(customer_frequency > total_frequency / count(*) over(),1,0) AS frequency, -- 消費(fèi)頻次向量化
- if(customer_recency_diff > avg(customer_recency_diff) over(),0,1) AS recency, -- 最近消費(fèi)向量化
- concat(if(customer_recency_diff > avg(customer_recency_diff) over(),0,1),if(customer_frequency > total_frequency / count(*) over(),1,0),if(customer_avg_money > total_avg_money,1,0)) AS rfm
- FROM
- (SELECT
- customer_name, -- 客戶名稱
- max(customer_avg_money) AS customer_avg_money , -- 當(dāng)前客戶的平均消費(fèi)金額
- max(customer_frequency) AS customer_frequency, -- 當(dāng)前客戶的消費(fèi)頻次
- max(total_avg_money) AS total_avg_money ,-- 所有客戶的平均消費(fèi)總額
- max(total_frequency) AS total_frequency,-- 所有客戶的總消費(fèi)頻次
- datediff(CURRENT_DATE,max(customer_recency)) AS customer_recency_diff -- 當(dāng)前客戶最近一次消費(fèi)日期與當(dāng)前日期差值
- FROM
- (SELECT
- customer_name, -- 客戶名稱
- avg(money) over(partition BY customer_name) AS customer_avg_money, -- 當(dāng)前客戶的平均消費(fèi)金額
- count(amount) over(partition BY customer_name) AS customer_frequency, -- 當(dāng)前客戶的消費(fèi)頻次
- avg(money) over() AS total_avg_money,-- 所有客戶的平均消費(fèi)總額
- count(amount) over() AS total_frequency, --所有客戶的總消費(fèi)頻次
- max(sale_date) over(partition BY customer_name) AS customer_recency -- 當(dāng)前客戶最近一次消費(fèi)日期
- FROM customer_sales) t1
- GROUP BY customer_name)t2) t3
通過上面的分析,可以為相對(duì)應(yīng)的客戶打上客戶特征標(biāo)簽,這樣就可以針對(duì)某類客戶指定不同的營(yíng)銷策略。
結(jié)論
- 如果一家公司「重要價(jià)值」的客戶不多,其他都是價(jià)值很低的「一般保持」客戶,表示客戶結(jié)構(gòu)很不健康,無法承受客戶流失的風(fēng)險(xiǎn)。
- 「重要保持客戶」是指最近一次的消費(fèi)時(shí)間離現(xiàn)在較久,但消費(fèi)頻率和金額都很高的客戶,企業(yè)要主動(dòng)和他們保持聯(lián)系。
- 「重要發(fā)展客戶」是最近一次消費(fèi)時(shí)間較近、消費(fèi)金額高,但頻率不高、忠誠(chéng)度不高的潛力客戶。企業(yè)必須嚴(yán)格檢視每一次服務(wù)體驗(yàn),是否讓客戶非常滿意。
- 「重要挽留客戶」則是最近一次消費(fèi)時(shí)間較遠(yuǎn)、消費(fèi)頻率不高,但消費(fèi)金額高的用戶。企業(yè)要主動(dòng)厘清久未光顧消費(fèi)的原因,避免失去這群客戶。
要減少重要挽留客戶,促活重要保持客戶,挖掘重要發(fā)展客戶,才能產(chǎn)生源源不絕的重要價(jià)值客戶。
總結(jié)
營(yíng)銷人員利用RFM分析能夠快速地將用戶細(xì)分成同類群組,并針對(duì)這些用戶采取不同的個(gè)性化營(yíng)銷策略,從而提高用戶的參與度和留存率。值得注意的是,不同的行業(yè)的數(shù)據(jù)特點(diǎn)和用戶行為特點(diǎn)是不盡相同的,所以在實(shí)際的操作過過程中,會(huì)制定符合自己公司業(yè)務(wù)特點(diǎn)的RFM規(guī)則,但是基本的思路都是一致的。