RFM Analysis คืออะไร?

RFM Analysis คือการวิเคราะห์ลูกค้าของธุรกิจโดยใช้เกณฑ์ 3 อย่างคือ

  1. Recency คือค่าที่บอกว่าลูกค้าซื้อล่าสุดเมื่อไหร่ อาจดูเป็นหลักชั่วโมง, วัน, สัปดาห์, เดือน ขึ้นอยู่กับ Transaction ของธุรกิจ
  2. Frequency คือความถี่ที่ลูกค้าซื้อสินค้าหรือบริการของธุรกิจในช่วงเวลาหนึ่ง เช่น ในช่วงปี 2021-2022  ลูกค้าคนหนึ่งมีการซื้อไปทั้งหมด 100 ครั้ง เป็นต้น
  3. Monetary คือจำนวนเงินที่ลูกค้าคนนั้นจ่ายเงินให้กับสินค้าหรือบริการของธุรกิจ

ซึ่งค่าเหล่านี้จะเป็นตัวชี้วัดได้ว่าลูกค้าคนไหนที่จัดเป็นลูกค้าประจำของธุรกิจหรือใครที่เป็นลูกค้าชั้นดี และยังสามารถนำค่าจาก RFM ไปใช้จัดกลุ่มลูกค้าได้อีกด้วย โดยจะใช้ K-Means Clustering หรือ Hierarchical Clustering ก็ได้เช่นกัน

RFM ต้องการข้อมูลอะไรบ้าง

การจะวิเคราะห์ค่าเหล่านี้นี้ได้จำเป็นจะต้องมีข้อมูลตามต่อไปนี้

  1. Customer ID หรือรหัสที่ระบุถึงตัวลูกค้าได้ (หรืออย่างอื่นที่เป็นค่า Unique ระบุถึงลูกค้าได้)
  2. Invoice Date หรือวันที่ในใบเสร็จ
  3. Invoice No หรือหมายเลขใบเสร็จที่เป็นค่า Unique
  4. Quantity หรือจำนวนสินค้าที่ขายได้ต่อใบเสร็จ และแยกตามชนิดสินค้า
  5. Unit Price หรือราคาต่อหน่วยของสินค้าชนิดนั้น ๆ
  6. 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 เสร็จสิ้นแล้วนั้นประโยชน์เบื้องต้นคือทำให้รู้จักพฤติกรรมการใช้จ่ายของลูกค้าเราดีขึ้น จัดอันดับลูกค้าชั้นดีได้ นอกเหนือจากนี้จะต้องนำไปวิเคราะห์หรือจัดกลุ่มต่อไปเพื่อให้เกิดประโยชน์สูงสุด

ติดตามบทความอื่น ๆ เพิ่มเติมได้ที่ SBC Blog

LINE OA: SUBBRAIN

Facebook: SUBBRAIN

Categories: Data&IT