RFM Analysis คืออะไร?
RFM Analysis คือการวิเคราะห์ลูกค้าของธุรกิจโดยใช้เกณฑ์ 3 อย่างคือ
- Recency คือค่าที่บอกว่าลูกค้าซื้อล่าสุดเมื่อไหร่ อาจดูเป็นหลักชั่วโมง, วัน, สัปดาห์, เดือน ขึ้นอยู่กับ Transaction ของธุรกิจ
- Frequency คือความถี่ที่ลูกค้าซื้อสินค้าหรือบริการของธุรกิจในช่วงเวลาหนึ่ง เช่น ในช่วงปี 2021-2022 ลูกค้าคนหนึ่งมีการซื้อไปทั้งหมด 100 ครั้ง เป็นต้น
- Monetary คือจำนวนเงินที่ลูกค้าคนนั้นจ่ายเงินให้กับสินค้าหรือบริการของธุรกิจ
ซึ่งค่าเหล่านี้จะเป็นตัวชี้วัดได้ว่าลูกค้าคนไหนที่จัดเป็นลูกค้าประจำของธุรกิจหรือใครที่เป็นลูกค้าชั้นดี และยังสามารถนำค่าจาก RFM ไปใช้จัดกลุ่มลูกค้าได้อีกด้วย โดยจะใช้ K-Means Clustering หรือ Hierarchical Clustering ก็ได้เช่นกัน
RFM ต้องการข้อมูลอะไรบ้าง
การจะวิเคราะห์ค่าเหล่านี้นี้ได้จำเป็นจะต้องมีข้อมูลตามต่อไปนี้
- Customer ID หรือรหัสที่ระบุถึงตัวลูกค้าได้ (หรืออย่างอื่นที่เป็นค่า Unique ระบุถึงลูกค้าได้)
- Invoice Date หรือวันที่ในใบเสร็จ
- Invoice No หรือหมายเลขใบเสร็จที่เป็นค่า Unique
- Quantity หรือจำนวนสินค้าที่ขายได้ต่อใบเสร็จ และแยกตามชนิดสินค้า
- Unit Price หรือราคาต่อหน่วยของสินค้าชนิดนั้น ๆ
- Stock Code หรือรหัสสินค้า
ข้อมูลที่ควรมีจะเป็นดังตัวอย่าง
- Invoice No: 212224236
- Invoice Date: 2022-12-25
- Customer ID: 13571113
- Stock Code: A555 (สมมุติว่าเป็นไข่ไก่)
- Quantity: จำนวน 1 หน่วย
- Unit Price: 150 (หน่วยบาท)
โดยจะต้องมีบันทึกของ Transaction ลักษณะนี้เก็บไว้ให้ครบถ้วนเพื่อที่จะนำข้อมูลมาวิเคราะห์ได้
วิธีการคำนวณ Recency, Frequency, Monetary
ในตัวอย่างนี้จะยกตัวอย่างโดยใช้การเขียนโปรแกรม Python สำหรับวิเคราะห์ แต่หลักการสำคัญคือวิธีคิดคำนวณที่ใช้ ผู้อ่านจะนำไปใช้กับ Excel ก็ได้เช่นกัน (แต่ส่วนใหญ่ Transaction ของธุรกิจจะเยอะมากซึ่ง Excel จะประมวลผลไม่ไหว) โดยมาเริ่มต้นกันที่ชุดข้อมูล
ชุดข้อมูลที่ใช้คือ ข้อมูลการขายออนไลน์ของเว็บค้าปลีกแห่งหนึ่ง โดยมีฟีเจอร์ทั้งหมด 8 อย่าง และมีสิ่งที่เราต้องการครบถ้วน ซึ่ง Transaction ทั้งหมดอยู่ที่ 541,909 ค่า
สิ่งที่ต้องตรวจดูเสมอคือค่าที่ขาดหายไปของชุดข้อมูล โดยข้อมูลชุดนี้มี Missing Values อยู่ที่ 25.195%
ซึ่งส่วนใหญ่เป็นค่า CustomerID
และสำหรับฟีเจอร์ที่เป็น Numeric Columns จากค่าทางสถิติเบื้องต้นจะเห็นว่าค่าต่ำสุดของจำนวนสินค้านั้นติดลบ รวมถึงราคาต่อหน่วยเองก็มีติดลบเช่นกัน ฉะนั้นในที่นี้เราจะทำการ Drop ค่าที่ติดลบออกทั้งหมด
(ทั้งนี้อยู่ที่ธุรกิจของคุณว่าทำ Transaction อย่างไร)
เมื่อสำรวจเบื้องต้นเสร็จสิ้น ให้ Drop ค่าที่ขาดหายออกไป ข้อมูลจะเหลืออยู่ 406,829 ค่า
และ Drop ค่าที่ติดลบออก ข้อมูลจะเหลืออยู่ 397,924 ค่า
ข้อมูลชุดนี้จะมี Transaction อยู่ในช่วง 373 วัน (ข้อมูลปี 2010-2011)
คำนวณ Recency
หลักการสำคัญคือนำวันล่าสุดในบันทึกของ Transaction ตั้ง แล้วลบด้วยวันที่ของ Transaction นั้น ๆ จะทำให้ทราบว่าธุรกรรมนั้นเกิดขึ้นแล้วกี่วัน (ยิ่งน้อยก็คือยิ่งใหม่) และจากนั้นจึงจัดกลุ่มตาม Customer ID
เริ่มที่การแปลงประเภทข้อมูลของ InvoiceDate ให้เป็น datetime และกำหนดรูปแบบเป็น ปี-เดือน-วัน ชั่วโมง:นาที:วินาที และหาวันสุดท้ายในชุดข้อมูล เพื่อตั้งไว้เป็นวันล่าสุดที่เราทำการเก็บข้อมูลมา จากนั้นคำนวณความต่างของวันและเวลาระหว่าง วันและเวลาที่บันทึกในแต่ละ Transaction กับ วันล่าสุดที่เก็บข้อมูล เราะได้ว่าแต่ละ Transaction เกิดขึ้นไปแล้วกี่วันกี่ชั่วโมง
จัดกลุ่มข้อมูลตาม CustomerID และเลือกวันล่าสุดที่ลูกค้าคนนั้นทำธุรกรรมกับธุรกิจของเรา (ในที่นี้เราคำนวณหาผลต่างของวันล่าสุด ลบ วันที่ทำธุรกรรม ดังนั้นจึงต้องเลือกค่า Minimum จึงจะสื่อว่าเพิ่งซื้อไปเมื่อไม่นานนี้) และเลือกแค่ระดับวันมาใช้งาน ทีนี้เราจะได้ว่าลูกค้าคนนั้น ๆ ทำธุรกรรมกับเราล่าสุดเมื่อไหร่ เช่น CustomerID 12346 ซื้อสินค้าล่าสุดเมื่อ 325 วันที่แล้ว เป็นต้น
คำนวณ Frequency
ความถี่ในการซื้อสินค้าบริการ คำนวณได้ง่าย ๆ เพียงแค่นับว่าลูกค้าคนนั้นมีทั้งหมดกี่ใบเสร็จ หลักการเดิมคือจัดกลุ่มข้อมูลตาม CustomerID และนับจำนวน InvoiceNo
จะได้ว่า CustomerID 12347 มีการทำธุรกรรมทั้งหมด 182 ครั้งเป็นต้น
คำนวณ Monetary
ปริมาณการใช้จ่ายของลูกค้าแต่ละคน คำนวณได้จากการนำจำนวนสินค้าที่ขายได้ คูณด้วยราคาขายต่อหน่วย และจัดกลุ่มตาม CustomerID จากนั้นจึงหาผลรวมของทุกธุรกรรมของลูกค้าคนนั้น (ในที่นี้เราแยกตามแต่ละใบเสร็จด้วยอยู่แล้ว หากบันทึกเป็นรูปแบบอื่นอาจจะดูจากยอดรวมต่อใบเสร็จเลยก็ได้เช่นกัน)
จะได้ว่า CustomerID 12346 มีการใช้จ่าย (Monetary) รวม 77,183 USD
วิเคราะห์ผลลัพธ์
ขั้นแรกต้องตรวจสอบการกระจายตัวของข้อมูลก่อน โดยผลลัพธ์มีดังนี้
Recency และ Frequncy ข้อมูลจะค่อนข้างเป็นกลุ่มในช่วงเดียวกัน ส่วน Monetary จะมีค่าต่างกันออกไป (ถือเป็นปกติเพราะคนใช้จ่ายแตกต่างกันมากอยู่แล้ว)
10 อันดับลูกค้าที่มีการใช้จ่ายถี่ที่สุด อันดับ 1 คือ Customer ID 17841 ซื้ออยู่ที่ 7,847 ครั้งใน 373 วัน
คิดเป็นมูลค่า 40,991.57 USD และซื้อล่าสุดเมื่อ 1 วันก่อน
(หากต้องการดูว่าลูกค้าคนนี้ซื้ออะไรบ้างก็ Filter เลือกเอาได้)
10 อันดับลูกค้าที่จ่ายเงินให้กับธุรกิจสูงสุด อันดับ 1 คือ Customer ID 14646 โดยซื้อล่าสุดเมื่อ 1 วันก่อน ซื้อไปทั้งหมด 2,080 ครั้งใน 373 วัน และคิดเป็นมูลค่า 280,206 USD
Conclusion
เมื่อคำนวณ RFM เสร็จสิ้นแล้วนั้นประโยชน์เบื้องต้นคือทำให้รู้จักพฤติกรรมการใช้จ่ายของลูกค้าเราดีขึ้น จัดอันดับลูกค้าชั้นดีได้ นอกเหนือจากนี้จะต้องนำไปวิเคราะห์หรือจัดกลุ่มต่อไปเพื่อให้เกิดประโยชน์สูงสุด