Cohort Analysis

Hướng dẫn xây dựng Cohort Analysis trên Power BI

Ngày đăng: 04/09/2021

Cohort Analysis là gì

Cohort Analysis (Phân tích tổ hợp) là một kỹ thuật phân tích tập trung vào việc phân tích hành vi của một nhóm người dùng / khách hàng có chung một đặc điểm trong một khoảng thời gian nhất định.

Trong phân tích kinh doanh, New Customer được xem là một tiêu chí quan trọng để đánh giá tình hình kinh doanh của doanh nghiệp. Ở một góc nhìn khác, New Customer thể hiện hiệu quả của đội ngũ bán hàng và phần nào đó là hiệu quả trong Marketing. Một chỉ số không kém phần quan trọng là Retention Customer – chỉ số cho thấy khả năng giữ chân khách hàng của một dịch vụ. Retention Rate càng cao càng cho thấy mức độ trung thành của khách hàng đối với dịch vụ của doanh nghiệp. Một chỉ số ở chiều ý nghĩa ngược lại với retention là Churn Rate. Đây là 2 trong số những key metrics rất được quan tâm trong business. Định nghĩa về Retention hay Churn phụ thuộc vào cách mà mỗi business định nghĩa.  

Thông thường, người ta sử dụng Cohort Analysis để thể hiện chỉ số Retention Rate/Churn Rate.  

Trong bài này, Datapot giới thiệu đến người đọc cách xây dựng Cohort Analysis trên Power BI.  

Download file Power BI tại Tại đây

(Tham khảo Các thao tác đơn giản để tạo báo cáo trên Power BI cho người mới bắt đầu tại Các thao tác đơn giản để tạo báo cáo trên Power BI cho người mới bắt đầu – Datapot.vn )

Xây dựng Cohort Analysis trên Power BI

Giả sử chúng ta có một bảng dữ liệu có tên là “SalesTable” bao gồm 3 cột:  

  • Customerkey: Cột chứa key định danh cho mỗi khách hàng mua dịch vụ.  
  • OrderDate: Ngày ngày hàng có đặt hàng dịch vụ  
  • OrderMonth: Tháng mà khách hàng có đặt hàng dịch vụ  

Ngoài ra ta cũng có 1 bảng “Date”, có relationship với bảng “SalesTable”  thông qua cột Date và OrderDate 

Power BI
Bảng SalesTable
Relationship trong Power BI
Mối quan hệ giữa Bảng Date và Bảng SalesTable

No.Customer = DISTINCTCOUNT(‘SalesTable'[Customerkey]) 

Cohort Analysis
Số lượng khách hàng có order hằng tháng

Ở trên, chúng ta đang tính toán số lượng khách hàng có phát sinh giao dịch trong tháng. Vậy trong số những khách hàng có phát sinh giao dịch đó, có bao nhiêu là khách hàng mới hoàn toàn, chưa từng mua hàng trước đó.  

Logic tính toán sẽ là, nếu một khách hàng là khách hàng mới trong tháng xem xét thì ngày đầu tiên có giao dịch của khách hàng đó sẽ là ngày thuộc tháng đang xem xét. 

FirstOrderMonth =  

    CALCULATE( 

       MIN(SalesTable[OrderMonth]),  

       FILTER(SalesTable, SalesTable[Customerkey] = EARLIER(SalesTable[Customerkey]))) 

No.NewCustomer =  

    CALCULATE( 

     DISTINCTCOUNT(SalesTable[Customerkey]),  

     FILTER(SalesTable, SalesTable[FirstOrderMonth] = SalesTable[OrderMonth])) 

Power BI
Số lượng khách hàng và Số lượng khách hàng mới

Với ví dụ của chúng ta, nếu định nghĩa đơn giản, retention rate là tỉ lệ khách hàng cũ có mua hàng trong tháng mới trên tổng số khách hàng cũ.  

Mục tiêu là chúng ta muốn tạo 1 matrix như bên dưới, đây được gọi là 1 cohort. Cohort cho biết số lượng khách hàng mới và số lượng khách hàng có tiếp tục order ở các tháng tiếp theo.  

Trong cohort bên dưới, dòng là tháng bắt đầu có order, cột là các tháng sau đó. Để hiểu cách đọc cohort, ta hiểu ý nghĩa của các con số bên trong. Ví dụ 498 là số lượng khách hàng mới trong tháng 6/2018, sau đó, trong tháng 7/2019, chỉ có 3 khách hàng trong tổng số 498 khách hàng mới của tháng 6 là có order. Trong tháng 7/2019, chúng ta có 1506 khách hàng mới,  xem xét tại tháng 12/2019, chỉ có 89 trên 1506 khách hàng mới là có order.  

Cohort Analysis thể hiện retention rate
Cohort Analysis thể hiện retention rate

Sau khi hình dung được ý nghĩa của cohort, chúng ta tiếp tục phân tích xem để tạo được cohort như trên sẽ cần phải chuẩn bị những gì.  

Thứ nhất, chúng ta cần 1 trường thông tin thể hiện được tháng khách hàng bắt đầu có giao dịch. Đây chính là cột “FirstOrderMonth” mà chúng ta đã tạo ra ở phần trên.  

Thứ hai, chúng ta cần có 1 trường để kéo vào làm column cho cohort. Chúng ta tận dùng cột “Month”  trong bảng “Date”.  

Thứ ba, chúng ta cần viết 1 measure để kéo vào phần value trong cohort.  

Dựa trên dữ liệu đang sử dụng, để tạo được cohort như trên, ta làm theo các bước sau: 

FirstOrderMonth_1 = FORMAT(SalesTable[FirstOrderMonth], “yyyy mmm”) 

No.NewCustomer by Cohort =  

    CALCULATE( 

     DISTINCTCOUNT(SalesTable[Customerkey]),  

       filter(SalesTable, SalesTable[OrderDate] >= MIN(‘Date'[Date]) && SalesTable[OrderDate] <= MAX(‘Date'[Date]))) 

MIN(‘Date'[Date]) và MAX(‘Date'[Date]) tại mỗi cột sẽ trả về giá trị là ngày đầu tiên và ngày cuối cùng của tháng. Tức là nếu trong cột của matrix là tháng tháng 6 thì hàm min và max sẽ trả về ngày 1/6/2019 và ngày 30/6/2019. Tức là với đoạn code này filter(SalesTable, SalesTable[OrderDate] >= MIN(‘Date'[Date]) && SalesTable[OrderDate] <= MAX(‘Date'[Date])), tại mỗi cột trong matrix, chúng ta chỉ filter dữ liệu của bảng “SalesTable” trong tháng đang xem xét.  

Tạo matrix và kéo cột “FirstOrderMonth_1” trong bảng “SalesTable” vào Rows option. Cột “month” trong bảng “Date” vào Columns option. Measure No.NewCustomer by Cohort vào trong phần Values options. Ngoài ra có thể đổi lại tên “FirstOrderMonth_1” thành “First Order Month” để khi hiển thị trong matrix nó rõ ràng hơn. 

Matrix trong Cohort Analysis
Tạo Matrix
Format Cohort Analysis
Conditonal Formating cho matrix

Có thể thấy trong matrix kết quả, các dòng đang không theo thứ tự đúng do “FirstOrderMonth_1” là dạng text nên bị sort theo thứ tự a-z.  Trong bảng “SalesTable”, ta sort cột “FirstOrderMonth_1” theo cột “FirstOrderMonth”. Click vào cột cần sort, sau đó chọn tùy chọn Sort by column, click tiếp vào cột mà muốn “FirstOrderMonth_1” sort theo nó.  

Cohort Analysis trong Power BI
Sort lại cột “FirstOrderMonth_1” theo cột “FirstOrderMonth” 

Kết quả, ta được một cohort như ý muốn:  

Kết quả Cohort Analysis
Kết quả Cohort

Lưu ý: chúng ta sẽ cần một slicer Date để giới hạn số lượng cột xuất hiện trong Cohort.  

Trên đây là hướng dẫn làm 1 cohort dựa trên dữ liệu mẫu. Người đọc tham khảo để hiểu cách làm, từ đó có thể phát triển các cohort theo mong muốn.  

Ví dụ Cohort Analysis
Ví dụ Cohort
Phân tích Cohort
Ví dụ Cohort

Nếu bạn muốn thực hiện những Cohort Analysis phức tạp hơn, hãy tham khảo khóa học Power BI Advanced Data Modeling and Visualization. Với 6 buổi – 21 giờ học, khóa học sẽ giúp học viên xây dựng tư duy và kỹ năng sử dụng Power BI giải quyết các bài toán chuyên sâu của Doanh nghiệp. Cơ hội được mentor và thực hành phân tích bài toán kinh doanh theo các case study thực tế, sử dụng DAX nâng cao, Pareto Analysis, Scenario Analysis, Survival & Cohort Analysis, RFM Analysis…
Nắm bắt cơ hội trở thành Chuyên gia Power BI và thăng tiến sự nghiệp cùng khóa học Power BI nâng cao của Datapot ngay hôm nay.

đăng ký ngay!

Tham gia group ôn thi DA-100 tại: https://www.facebook.com/groups/da100vn
Chuỗi Video Hướng dẫn thực hành Lab và sử dụng các tài nguyên của Microsoft: https://www.youtube.com/c/Datapotvn/videos
Update tài nguyên từ Microsoft, DA-100 exam questions và exam topics tại Fanpage của Datapot: https://www.facebook.com/DatapotAnalytics/

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *