Phân khúc khách hàng sử dụng phân tích RFM
(RFM Analysis for Customer Segmentation)
1.
Giới thiệu sơ lược về RFM
(Recency, Frequency, Monetary)
Phân tích RFM dùng để xác định các nhóm khách hàng dựa vào 3 yếu
tố Recency, Frequency, và Monetary:
· Recency (R): Khách
hàng nào mua hàng gần đây? Lần mua hàng gần đây nhất là khi nào (cách đây bao
nhiêu ngày)
· Frequency (F): Khách hàng nào mua hàng thường xuyên? Tần suất mua hàng (số đơn hàng) của khách hàng
· Monetary Value (M): Khách
hàng nào có tiền mua hàng lớn?
Về lý thuyết, mỗi yếu
tố được xếp loại theo 4 cấp độ (quartile) thường được gán giá trị từ 1
đến 4 (1 là tốt nhất). Một khách hàng có RFM =111 có nghĩa là (mua hàng gần đây, R=1), thường
xuyên mua hàng (F=1), tổng tiền mua hàng lớn (M=1). Dựa vào 3 biến R, F, M thì
ta có thể có 64 (=4x4x4) nhóm khách hàng khác nhau.
2. Qui
trình triển khai phân tích RFM
Bước #1.
Xác định nguồn dữ liệu phân tích
Bước #2.
Tính toán các giá trị R, F và M
Bước #3.
Nhóm các khách hàng vào các nhóm theo R, F và M
Bước #4.
Phân tích kết quả và đề xuất chiến lược (hành động) chăm sóc khách hàng phù hợp với từng nhóm khách
hàng.
3. Minh
họa phân tích RFM bằng Retail Dataset với Tableau
Step #1.
Nạp và tiền xử lý dữ liệu
Data
set: Online Retail.xlsx gồm hơn 500K dòng với các cột như sau: (Link download dataset: https://archive.ics.uci.edu/ml/datasets/online+retail#)
Một
số thao tác tiền xử lý dữ liệu
Loại
bỏ null value cột CustomerID, các đơn hàng có Quantity <0 và các dòng dữ liệu
trùng nhau (duplicate), lọc ra các đơn hàng ở UK (chiếm hơn 480K), Tính cột
Total Paid = UnitPrice * Quantity
Bước #2.
Tính thời gian mua hàng của các đơn hàng tới hiện tại (ngày mua hàng gần nhất
là 2010-12-09 nên giả sử ngày hiện tại là sau ngày mua hàng gần nhất 1 ngày tức
là 2010-12-10)
last_to_present:
DATEDIFF('day',[InvoiceDate], #2011-12-10#)
Step #3.
Sử dụng hàm gộp (Aggregate) nhóm các khách hàng theo CustomerID và tính các độ
đo như Tổng tiền hàng (Total Paid), đếm số đơn hàng (Invoice Count), Tổng số lượng
(Sum Quantity), Ngày mua hàng gần nhất Min(last_to_present)
Step #4.
Tính các giá trị cho RFM (Recency,
Frequency, Monetary)
R_quantile
IF
[last_to_present]>365 THEN 4
ELSEIF
[last_to_present]>180 THEN 3
ELSEIF
[last_to_present]>100 THEN 2
ELSE
1
END
F_quantile
IF
[InvoiceNo Count]>=99 THEN 1
ELSEIF
[InvoiceNo Count]>=41 THEN 2
ELSEIF
[InvoiceNo Count]>=17 THEN 3
ELSE
4
END
M_quantile
IF
[Total Paid]>1575 THEN 1
ELSEIF
[Total Paid]>=651 THEN 2
ELSEIF
[Total Paid]>=300 THEN 3
ELSE
4
END
FRM Score
str([R_quantile])+
str([F_quantile])+ str([M_quantile])
Step #5.
Dựa vào FRM Score phân nhóm khách hàng:
IF
[RFM Score]='111' THEN 'Best Customer'
ELSEIF
[RFM Score]='444' THEN 'Churn Customer'
ELSEIF
right([RFM Score],1)='1' then 'Highest Paying Customers'
ELSEIF
mid([RFM Score],2,1)='1' THEN 'Loyal Customer'
ELSEIF
LEFT([RFM Score],2)='14' THEN 'Newest Customers'
ELSEIF
LEFT([RFM Score],2)='44' THEN 'Once Loyal, Now Gone'
ELSE
'Normal'
END
Step #6.
Lưu và xem kết quả
Xem video hướng dẫn phân tích RFM với Retail Dataset ở Đây