Posted on Leave a comment

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

Cohort Analysis

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
  • Tính số lượng khách hàng có order hằng tháng 

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

Cohort Analysis
Số lượng khách hàng có order hằng tháng
  • Tính số lượng khách hàng mới 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. 

  • Trong bảng SalesTable, tạo ra 1 calculated column có tên là “FirstOrderMonth” là tháng đầu tiên mà 1 khách hàng có order:  

FirstOrderMonth =  

    CALCULATE( 

       MIN(SalesTable[OrderMonth]),  

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

  • Tạo measure “No.NewCustomer” tính số lượng khách hàng mới  

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
  • Cohort Analysis thể hiện retention rate  

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: 

  • Bước 1 : Tạo thêm 1 cột là “FirstOrderMonth” bằng cách format lại cột “FirstOrderMonth” trong bảng “SalesTable” 

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

  • Bước 2: Viết measure để tính toán  

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.  

  • Bước 3: Tạo matrix 

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
  • Bước 4: Conditonal Formating cho matrix 

Format Cohort Analysis
Conditonal Formating cho matrix
  • Bước 5: Sort lại cột “FirstOrderMonth_1” theo cột “FirstOrderMonth” – Hoàn thành Cohort Analysis

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

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/

Khóa học Ôn thi DA-100
Combo khóa học dành cho các bạn Fresher
Posted on 1 Comment

HƯỚNG DẪN ĐĂNG KÝ THI CHỨNG CHỈ DA-100

DAA

Chứng chỉ DAA (Microsoft Data Analytics Certification) là một chứng chỉ cần thiết đối với các Data Analyst và cũng là tấm vé cho các bạn muốn bước chân vào ngành Khoa học Dữ liệu. Để có được chứng chỉ DAA, các bạn sẽ phải tham gia Bài thi DA-100, một data analysis test/ Power BI exam đến từ Microsoft. Nếu bạn có ý định dự thi DA-100 nhưng chưa biết làm sao để đăng ký  thì hãy theo dõi bài viết của Datapot để có thể làm thủ tục dự thi nhanh nhất và tránh những sự cố không đáng có nhé.

Tham khảo các Chủ đề trong bài thi DA-100 tại: KINH NGHIỆM THI DA-100: CÁC TOPICS TRONG BÀI THI DA-100 – Datapot.vn

data analyst certification microsoft

Những điều cần lưu ý

  • Điều kiện để đăng ký thi

Bạn cần đảm bảo rằng bạn đã có một Tài khoản Microsoft đã điền đầy đủ và chính xác thông tin cá nhân nha.

  • Địa điểm thi

Bạn có thể lựa chọn địa điểm thi tại nhà, cơ quan, địa chỉ lưu trú hoặc Trung tâm được ủy quyền bởi Microsoft. Nhưng lưu ý, nếu bạn lựa chọn thi tại cơ quan, hãy ưu tiên sử dụng máy tính cá nhân, tránh sử dụng máy tính tại văn phòng/máy tính nội bộ vì có thể gặp những hạn chế về cơ chế bảo mật, ảnh hưởng đến việc cài đặt các phần mềm giám sát bài thi sau này.

Cách thức đăng ký thi

  1. Truy cập vào link đăng ký chứng chỉ tại

https://docs.microsoft.com/en-us/learn/certifications/exams/da-100
Page đăng ký thi DA-100
Page đăng ký thi DA-100
  1. Chọn quốc gia:

 – Chọn quốc gia “Việt Nam”. Lưu ý lệ phí thi chứng chỉ sẽ khác nhau phụ thuộc vào từng quốc gia

 – Click “Schedule for USD15” để tiến hành điền thông tin và đặt lịch: Hiện tại Microsoft đang giảm lệ phí thi từ 80 – 15 USD trong thời gian Covid đến 31/12/2021). 

Schedule for USD15
Chọn Schedule for USD15
  1. Chọn “I Agree” để đồng ý với các điều khoản

Đồng ý với các điều khoản
  1. Điền các thông tin cá nhân cần thiết để đăng ký chứng chỉ

 Lưu ý: Nhập thông tin cá nhân chính xác như trên giấy tờ tùy thân, thông tin này sẽ được đối chiếu khi tham dự kỳ thi. Các thông tin hợp lệ phải khớp với giấy tờ tùy thân 

Điền thông tin cá nhân để đăng ký chứng chỉ
Điền thông tin cá nhân để đăng ký chứng chỉ
  • Điền các trường thông tin cần thiết
  • Tích chọn “I have read and agree the Terms of Use and Privacy & Cookies statement
  • Chọn “Save & Continue
  • Kiểm tra lại thông tin và chọn “Accept
thông tin cá nhân phải chính xác
Lưu ý thông tin cá nhân phải chính xác như trên giấy tờ tùy thân
  • Chọn “Schedule Exam” Để đăng ký lịch thi
Đăng ký lịch thi
Đăng ký lịch thi
  1. Đăng ký lịch thi

 – Sau khi Chọn “Schedule Exam” ở bước 4, có thể các bạn sẽ gặp 1 thông báo cần cấp quyền cho các App sau để Verified thông tin, chọn “Yes” để tiếp tục

Cấp quyền cho App để verify thông tin
Cấp quyền cho App để verify thông tin
  • Chọn “Schedule
  • Chọn thông tin để đăng ký lịch thi, bao gồm:
    • 1. Chọn ngôn ngữ bài thi
    • 2. Chọn quốc gia
    • 3. Chọn múi giờ
    • 4. Chọn ngày thi
    • 5. Chọn khung giờ thi
  • Sau khi hoàn thành, chọn “Continue” để tiếp tục
Chọn thông tin để đăng ký lịch thi
Chọn thông tin để đăng ký lịch thi
  • Kiểm tra lại thông tin khung thời gian bài thi, chọn “Continue” để xác nhận
Xác nhận lại khung thời gian thi
Xác nhận lại khung thời gian thi
  1. Thanh toán lệ phí thi

 Sau khi đặt lịch thi ở bước 5, bạn sẽ được chuyển sang giao diện để thanh toán lệ phí thi. Tích chọn và chọn “Pay Now” để tiếp tục

Payment DA-100
Giao diện thanh toán lệ phí thi
  • Điền thông tin tài khoản thanh toán
  • Tích Verification
  • Chọn “Pay Now

Lưu ý: Lịch đăng ký thi của bạn sẽ hết hạn sau 30 ngày nếu không được thanh toán lệ phí thành công

Payment
Hoàn tất thanh toán

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/

Khóa học Ôn thi DA-100
Combo khóa học dành cho các bạn Fresher

Posted on Leave a comment

Chuyện nghề Data #001

Một bài Post trên group Data Analytics and Business Intelligence Vietnam

Khi mới bước chân vào ngành dữ liệu, chúng ta thường không khỏi hoang mang, một là vì thiếu thông tin, chưa hiểu rõ về ngành, hai là vì có quá nhiều luồng thông tin, không biết nên tin bên nào.

Thấu hiểu sự băn khoăn này, Datapot cùng các bạn tháo gỡ mốt số lầm tưởng, thắc mắc khi bước vào ngành dữ liệu nhé!

Chia sẻ một chút về tác giả bài viết.

Context: Mình làm nhiều role trong cả vòng đời dữ liệu: Data Clerk, Data Analyst/BI, DBA, Solution Architect, Department Manager (Data Managment and Analytics), Consultant, Trainer…(Mình không nhảy việc nhiều, thay đổi theo quá trình phát triển công việc)

Mình note lại một số quan điểm của mình (mình đã từng lầm tưởng hoặc đang phổ biến):

1. Làm dữ liệu phải giỏi siêu nhân về toán, thần thánh về lập trình hoặc công cụ, hiểu rất sâu về business?

Sự thật là: Bạn code tốt hơn một ông thuần về business, hiểu về business hơn một ông dev bình thường, hiểu về toán tốt hơn cả 2 ông kia (cũng chưa biết đâu vì nhiều dev sịn mình biết học sư phạm toán với toán ứng dụng ra đấy :-s ). bạn viết truy vấn SQL có thể tốt hơn Dev vì bạn hiểu về business nhưng thử viết một stored produce xử lý một tác vụ của phần mềm xem có toang không đã nhé.

2. Bạn không cần học SQL, lập trình? Mấy cái đó chỉ dành cho các công ty nghèo không có tiền mua tool xịn như Power BI, Alteryx…. Còn làm gì có tool làm được hết rồi, cần thì request IT xử lý.

Sự thật là: Tool toy rất tiện và bản thân mình cũng ủng hộ tool nếu có thể. Tuy nhiên tool nào cũng có mặt hạn chế. Thử vào một doanh nghiệp và cần trích xuất dữ liệu trực tiếp với lượng dữ liệu từ vừa đến lớn với logic phức tạp thì SQL sẽ là cứu cánh để bạn triển khai được nhanh, gọn và mạch lạc hơn. Và mình học và làm việc sâu với SQL không phải vì mình “nghèo” mà vì tính phổ biến, khả năng tùy biến của ngôn ngữ và ưu điểm tuyệt đối của nó trong một số hoàn cảnh cụ thể. Ít nhất mình có quyền lựa chọn thay vì chết vì phụ thuộc tool toy.

3. Mình chỉ cần học về tư duy là đủ rồi, chứ công cụ không quan trọng?

Sự thật là:Việc đầu tiên khi người ta học làm bếp là học cầm con dao sơ chế miếng thịt, cá như thế nào. Với một chief có thể nấu được bữa ăn từ bất cứ những công cụ gì họ có trong tay. Họ làm được vì họ từng sử dụng qua rất nhiều công cụ chứ không phải họ chỉ ngồi học lý thuyết về ẩm thực. Trước đây mình đã từng viết 1 bài về Law of the Instrument: “if all you have is a hammer, everything looks like a nail”. Quá trình sử dụng công cụ để giải quyết vấn đề giúp bạn phát triển tư duy, nếu khả năng sử dụng công cụ của bạn bị giới hạn thì rất có thể bạn sẽ dẫn về số 2, phụ thuộc vào một công cụ nào đó vì không còn quyền lựa chọn. Khá hài hước khi tư tưởng coi thường công cụ nhưng xét mặt nào đó lại bị phụ thuộc vào công cụ. :))

4. Ngược lại với 3, mình cần phải giỏi công cụ X, master công cụ Y, công ty không tuyển mình vì mình không giỏi công cụ xyz.

Sự thật là:
 Thành thạo công cụ là một điểm cộng lớn khi bạn apply công việc, nhất là với các vị trí junior. Tuy nhiên, nếu như bạn đã thành thạo và tạo được sản phẩm bằng một công cụ nào đó, bạn hoàn toàn có thể học công cụ tương đương mà không mất nhiều thời gian. Các nguyên lý và cách sử dụng công cụ, ngôn ngữ lập trình đều tương tự nhau, nếu học hãy tập trung vào một số mảng và thực sự thành thạo nó thay vì đẽo cày giữa đường để gom key word ném vào CV.

5. Mình đã luyện xong 1001 đường tịch tà kiếm phổ, sẵn sàng trở thành siêu nhân trong ngành dữ liệu?

Sự thật là: Bạn có thể chỉ cần thuần Excel vẫn kiếm được công việc chính thức trong ngành dữ liệu với mức lương tính bằng nghìn USD (người thật việc thật). Nhưng đa phần các công việc trong ngành dữ liệu đều cần tìm hiểu thêm rất nhiều thứ khác, tech stack khác với dự án trước đây, domain khác với domain đã biết, nghiệp vụ hoặc luật lá thay đổi. Bạn sẽ tìm hiểu đủ thứ từ marketing đến UI-UX design, human heuristics…. Giữ tư duy mở và thái độ sẵn sàng học bất cứ cái gì công việc yêu cầu. Khả năng học và vận dụng nhanh mới giúp bạn sống sót và phát triển tốt trong ngành này.

6. Làm BI/DA là phải làm dashboard đẹp, kể được câu chuyện về dữ liệu, phải có 1001 nghiêm quy giới luật về information design cần tuân thủ?

Sự thật là: Bạn cần phải làm được những điều trên nhưng chỉ là một phần rất nhỏ trong công việc, nếu bạn tôn thờ nó quá thì nhiều khả năng bạn làm consultant hơn là làm in-house cho doanh nghiệp. Đào bới được dữ liệu xem nó nằm đâu trong hệ thống, thống nhất được với các đơn vị xem dữ liệu nào chính xác đã hộc máu rồi. Nhiều stakeholders chỉ cần một cái pivot table hay chart đơn giản là quá đủ cho nhu cầu của họ. Quan trọng là context và mục đích sử dụng và làm sao tối đa được giá trị cho stakeholders.

Tham khảo bài viết: 5 Lưu ý để trực quan hóa dữ liệu hiệu quả.

Tạm thế đã, các bạn ủng hộ đi rồi mình viết tiếp. :))

Posted on Leave a comment

DAX Cheat Sheet (Part 1)

Data Analysis Expressions (DAX) là một thư viện các hàm và phép tính mà có thể kết hợp với nhau để xây dựng các công thức, biểu thức trong Power BI và Power Pivot trong Excel.

Tìm hiểu về DAX là gì? Ví dụ về cách sử dụng, các bạn có thể tham khảo video này:

Trong bài viết này, Datapot sẽ chia sẻ với bạn nội dung DAX Cheat sheet về các hàm tính toán cơ bản và hàm MTD để bạn có thể tham khảo và áp dụng trong công việc nhé!

Month To Date Sales
• Month-to-date (MTD): là một khoảng thời gian bắt đầu từ đầu tháng và kết thúc ở ngày hiện tại trong tháng đó.
• Month-to-date được sử dụng trong nhiều trường hợp, điển hình là để tính kết quả của một hoạt động trong khoảng thời gian từ đầu tháng đến ngày hiện tại. Ví dụ: nếu ngày hôm nay là ngày 15, bạn được sếp yêu cầu tính sales trong tháng hiện tại, bạn sẽ tính tổng sales từ ngày 1 đến ngày 14 (ngày 15 chưa kết thúc).

Các bạn hãy tiếp tục theo dõi các bài viết tiếp theo của Datapot để tìm hiểu về Dax nhé!

Posted on Leave a comment

Tìm hiểu những gì để sử dụng Power BI như một Data Analyst?

Power BI không chỉ có những mẫu báo cáo bắt mắt. Để khai thác hết sức mạnh của tool BI này cũng như sử dụng Power BI một cách bài bản như một Data Analyst, hãy tìm hiểu những nội dung liên quan đến Data Model sau.

Star schema

Star Schema là một cách tiếp cận việc mô hình hóa dữ liệu được áp dụng rộng rãi cho các cơ sở dữ liệu quan hệ. Star Schema yêu cầu người dùng phân loại các bảng dữ liệu thành dimension hoặc fact.

Đây là một nội dung cốt lõi trong Data Modelling mà nếu các bạn không chú ý hoặc triển khai tốt thì sẽ gây ra nhiều rắc rối trong quá trình làm việc sau này.

Nếu bạn chưa bao giờ tìm hiểu về Star schema, tài liệu tham khảo dưới đây từ Power BI sẽ giúp bạn hiểu rõ về khái niệm cơ bản & vai trò của Star schema khi sử dụng Power BI.

https://docs.microsoft.com/vi-vn/power-bi/guidance/star-schema

Nếu bạn muốn tìm hiểu sâu hơn về Star Schema, tham khảo cuốn Star Schema A Complete Reference. https://amzn.to/35imkha

Data Model Size 

Sau khi đã bắt đầu với Star Schema, thì lượng dữ liệu của chúng ta ngày càng tăng lên, đến một mức nhất định, việc này sẽ ảnh hưởng đến quá trình vận hành. Hầu hết chúng ta đều muốn lưu càng nhiều dữ liệu càng tốt, với tâm lý biết đâu sẽ có lúc dùng đến. Tuy nhiên, chúng ta cần thành thật trả lời, những dữ liệu nào là thật sự cần thiết và dữ liệu nào không?

Dưới đây là một tài liệu về các kỹ thuật để giảm lượng dữ liệu nhập vào, từ đó giúp cho Mô hình dữ liệu của bạn gọn gàng và hiệu quả hơn.

https://docs.microsoft.com/vi-vn/power-bi/guidance/import-modeling-data-reduction

Khi thực hiện 1 dự án và sử dụng Tabular Editor, chúng tôi phát hiện ra có đến hơn 2000 cột dữ liệu không sử dụng đến trong Data Model. Hãy thử vào https://tabulareditor.com/ và tìm hiểu chức năng Best Practice Analyzer.

Direct Query

Mọi người thường sử dụng tính năng này vì sự tiện dụng. Tuy nhiên, Direct Query cũng gây ra những trục trặc trong quá trình sử dụng.

Tham khảo tài liệu hướng dẫn về Direct Query Model https://docs.microsoft.com/vi-vn/power-bi/guidance/directquery-model-guidance

Hãy đảm bảo mọi thứ gọn gàng và chỉ import những dữ liệu bạn thật sự cần. Nếu bạn chọn 1 bảng dữ liệu 1 triệu dòng, thì việc gặp lỗi phát sinh hay vận hành chậm không có gì là lạ.

DAX

Mội nội cơ bản bạn có thể tham khảo – Hướng dẫn sử dụng biến với DAX https://docs.microsoft.com/vi-vn/power-bi/guidance/dax-variables

(Hãy đọc thêm những nội dung hướng dẫn khác liên quan đến DAX từ Power BI vì chúng sẽ hữu ích trong công việc của bạn).

Bạn cũng có thể tham khảo sách Definitive Guide to DAX: https://amzn.to/3kgMyFf

Nguồn tham khảo: Guy In a Cube

Với các bạn mới bắt đầu tìm hiểu Power BI & mong muốn ứng dụng Power BI trong công việc, hãy tham khảo khóa học Power BI & Analytical Thinking từ Datapot.

Được thiết kế và giảng dạy bởi các chuyên gia giàu kinh nghiệm làm việc và đào tạo trong ngành dữ liệu, được triển khai tại các doanh nghiệp như Unilever, SHB, MB Life Ageas,.., khóa học sẽ mang đến cho bạn những kiến thức và kỹ năng thực tiễn nhất.

Posted on Leave a comment

Ví dụ về Tư duy phân tích & ứng dụng dữ liệu để trả lời câu hỏi

Đây là ví dụ tôi thường dùng để giúp mọi người bắt đầu với dữ liệu (với 1 cây bút, giấy và máy tính).

Ví dụ này sẽ không biến bạn trở thành chuyên gia về dữ liệu, tuy nhiên sẽ giúp bạn cảm thấy quen thuộc hơn với dữ liệu cũng thấy được những cơ hội từ việc phân tích dữ liệu.

Chúng ta sẽ bắt đầu với một hiện tượng – trễ giờ họp.

Xác định câu hỏi: Có phải các cuộc họp luôn diễn ra muộn hơn so với thời gian dự kiến. Điều này có đúng không?

Tiếp theo, hãy nghĩ đến các dữ liệu có thể giúp bạn trả lời câu hỏi này cũng như một kế hoạch để tìm ra chúng. Viết ra các định nghĩa và quy trình để thu thập dữ liệu. VD, định nghĩa về thời điểm cuộc họp bắt đầu. Đó là lúc có người nói “Chúng ta bắt đầu họp nào!” ? Và bạn có thể để ý, khi có thêm người mới (đặc biệt là lãnh đạo), cuộc họp gần như sẽ bắt đầu lại từ đầu. Vậy bạn nên chọn mốc thời gian nào?

Tiếp theo bạn có thể bắt đầu việc trình bày. Việc trình bày tốt giúp bạn hiểu rõ dữ liệu cũng như trao đổi, truyền đạt với mọi người dễ dàng hơn. Có nhiều công cụ nhưng trong ví dụ này tôi sẽ vẽ tay. Tôi có một biểu đồ như hình dưới với trục x là thời gian trong ngày (các ngày trong tuần) và trục y là số phút muộn họp. 

Chúng ta hãy trở lại với câu hỏi ban đầu và đưa ra một số nhận xét. Theo biểu đồ, trong vòng 2 tuần, 10% cuộc họp diễn ra đúng giờ, và số phút muộn trung bình là 12 phút. 

Bạn không nên dừng lại ở đây. Hãy tiếp tục đặt câu hỏi: Thì sao? Nếu như 2 tuần này là điển hình, thì tôi lãng phí 1 giờ mỗi tuần, điều này tiêu tốn của công ty 1 số tiền x mỗi năm.

Sự phân tích sẽ kết thúc nếu bạn không đặt thêm các câu hỏi. Nếu như 80% các cuộc họp diễn ra trong khoảng vài phút so với giờ hẹn ban đầu thì chúng ta có thể trả lời câu hỏi ban đầu rằng các cuộc họp diễn ra đúng giờ và dừng việc phân tích.

Nhưng trong trường hợp này, ta có thể phân tích thêm.

Cùng tìm hiểu về phương sai (variation). Theo như biểu đồ thì thời gian muộn từ 8 – 20 phút là điển hình. 1 số cuộc họp diễn ra đúng giờ, 1 số khác lại muộn đến 30 phút. Sẽ là lý tưởng nếu bạn có thể kết luận rằng nếu đi muộn 10 phút thì sẽ đúng lúc cuộc họp bắt đầu, tuy nhiên phương sai ở đây là quá lớn để kết luận như vậy.

Từ dữ liệu chúng ta còn có thể biết thêm gì nữa? Trong 6 cuộc họp diễn ra đúng giờ, nếu tìm hiểu kỹ hơn, có thể thấy 6 cuộc họp này đều do Phó giám đốc về tài chính phụ trách. Từ đây bạn có thể làm gì tiếp?

Ở mức độ cá nhân, để tiết kiệm thời gian, chúng ta có thể học tập phó giám đốc để tìm ra những cách giúp cuộc họp diễn ra đúng giờ.

Ở mức độ công ty, chúng ta chưa rõ kết quả này đã là điển hình hay chưa, liệu các lãnh đạo khác có giúp việc họp diễn ra đúng giờ như Phó giám đốc về tài chính hay không. Từ đó có thể đặt ra một số câu hỏi như: Kết quả có đồng nhất giữa người tổ chức họp hay không, có ngày cụ thể nào trong tuần ảnh hưởng đến việc họp muộn hay không. Hay xa hơn là nên họp qua video call hay họp trực tiếp? Hoặc có mỗi quan hệ giữa cấp bậc của người tổ chức họp và số phút muộn hay không?

Với mỗi hoặc 1 vài câu hỏi như thế này, bạn quay lại bước đầu, thực hiện lại các bước, từ đó tìm ra kết luận. Với dữ liệu, bạn có thể hiểu rõ hơn về hiện tượng trễ giờ họp, từ đó đưa ra một số hướng giải quyết.

Việc sử dụng Tư duy phân tích và phân tích dữ liệu không hề xa lạ, mà nếu được thực hiện hiệu quả, có thể giúp cải thiện hoạt động của tổ chức.

Nguồn: Thomas C. Redman – Havard Business Review Press

Posted on Leave a comment

Từ điển biểu diễn dữ liệu

Có rất nhiều cách biểu diễn dữ liệu, chúng ta nên chọn cách nào? Một gợi ý đó chính là dựa trên mối quan hệ của dữ liệu, chúng ta có thể lựa chọn biểu đồ phù hợp. Hãy cùng tìm hiểu 1 số mối quan hệ phổ biến dưới đây nhé.

Devitation (Độ lệch)

Nhấn mạnh sự biến đổi (tăng/giảm) từ một điểm tham chiếu cố định. Điểm tham chiếu thường sẽ là mức 0, trong một số trường hợp có thể là KPI hoặc giá trị trung bình. Cũng có thể thể hiện thái độ (tích cực, tiêu cực, trung lực) trong một số khảo sát.

Correlation (Tương quan)

Thể hiện mối quan hệ giữa 2 hoặc nhiều biến. Tuy nhiên, nếu không note rõ, người đọc thường nhầm lẫn thành mối quan hệ nhân quả (sự thay đổi của biến này tạo ra sự biến đổi của biến khác).

Ranking (Xếp hạng)

Được sử dụng khi vị trí/thứ hạng của một đối tượng trong một danh sách có trật tự quan trọng hơn giá trị tuyệt đối. Có thể highlight các thứ hạng quan trọng.

Distribution (Phân phối)

Thể hiện tần suất xuất hiện của các giá trị trong một dataset. Hình dạng của phân phối cũng giúp ta thấy được sự không đồng nhất của dữ liệu.

Change over time (Sự thay đổi theo thời gian)

Nhấn mạnh vào xu hướng. Đơn vị thời gian có thể là giờ trong ngày cho đến thập kỷ hay thế kỷ, chính vì vậy chọn khoảng thời gian và đơn vị thời gian phù hợp sẽ giúp người xem dễ dàng theo dõi.

Part-to-whole (Thành phần – Tổng thể)

Thể hiện 1 đối tượng có thể chia thành (bao gồm) những phần nào và tỉ lệ giữa các phần. Nếu chỉ quan tâm đến so sánh giá trị, có thể sử dụng các biểu đồ thể hiện độ lớn.

Magnitude (Độ lớn)

So sánh các giá trị, có thể là giá trị tuyệt đối (giá trị chính xác) hoặc tương đối (so sánh xem giá trị nào lớn hơn). Thường sẽ so sánh các giá trị đếm được (doanh thu, số người,…) hơn là giá trị phần trăm.

Bài viết được dịch từ nguồn Tài liệu tham khảo trong khóa học Power BI & Analytical Thinking.

Khóa học cung cấp các nội dung về ứng dụng tư duy phân tích trong lĩnh vực Data Analytics:

▪️ Tư duy phân tích và suy luận logic trong việc giải quyết các vấn đề, các bài toán của doanh nghiệp bằng dữ liệu.

▪️ Các kỹ năng về đặt câu hỏi, tìm kiếm nguyên nhân gốc rễ, phân tách các vấn đề khi gặp một yêu cầu.

▪️ Design thinking: các nguyên tắc cơ bản khi thiết kế dashboard chuyên nghiệp, lựa chọn biểu đồ, màu sắc và bố cục phù hợp với mục tiêu.

▪️ Ứng dụng phân tích với Power BI của Microsoft – công cụ BI hàng đầu được nhiều doanh nghiệp đang sử dụng (Unilever, Techcombank,…)

Posted on Leave a comment

Data Visualization: 5 lưu ý để trực quan hóa dữ liệu hiệu quả

1. Chọn đúng loại biểu đồ

Điều này có vẻ hiển nhiên, tuy nhiên chúng ta thường chọn biểu đồ theo thói quen hoặc cảm tính.

Chúng ta cần nhớ rằng “form follows function” (chức năng đi trước, trình bày đi sau) – mục đích của việc trực quan hóa luôn cần được cân nhắc đầu tiên.

Bạn có thể tự hỏi mục đích của bạn là so sánh các giá trị, thể hiện xu hướng, tìm hiểu về sự phân phối hay mối quan hệ giữa các biến? Từ đó bạn có thể chọn 1 hoặc 1 số biểu đồ phù hợp để thể hiện mục đích này.

Với ví dụ dưới đây ta có dataset về tỉ lệ lỗi của các loại sản phẩm. Chúng ta đang cần tìm ra loại sản phẩm có tỉ lệ lỗi cao (parts per million). Biểu đồ cột như hình bên phải là cách đơn giản và hiệu quả để biểu diễn điều này. Bên cạnh đó, tree maps và packed bubble charts như hình bên trái rối mắt và khiến người đọc gặp khó khăn trong việc so sánh.

Image for post
Chọn biểu đồ dựa trên mục đích biểu diễn & chức năng

2. Không phải tất cả các giá trị (data points) đều quan trọng như nhau

Bạn không nên ném toàn bộ dataset vào một biểu đồ, hãy phân tích trước để biểu diễn/ highlight những thông tin quan trọng sao cho người xem dễ nắm bắt.

Image for post

Biểu đồ này thể hiện chuỗi giá trị theo thời gian. với đường A A’, ta thấy được 1 thời điểm có sự thay đổi về chu kỳ và cường độ, liên quan đến sự sụt giảm mạnh vài chu kỳ sau đó. Bạn thấy biểu đồ nào giúp ta phát hiện điều này tốt hơn?

Biểu đồ phía trên chỉ đơn thuần trực quan hóa toàn bộ dataset, trong khi biểu đồ dưới giúp người xem dễ dàng phát hiện các điểm đặc biệt hơn.

Một ví dụ khác là khi muốn biểu diễn tổng doanh thu của năm theo ID dự án (với 41 dự án khác nhau). Biểu đồ bên trái biểu diễn tất cả 41 dự án nên khá lộn xộn, trong khi biểu đồ bên phải biểu diễn 5 dự án có doanh thu lớn nhất và gộp các dự án còn lại vào nhóm “others”, một cách gọn gàng và hợp lý hơn.

Tuy nhiên cách lọc này có thể khiến tổng không bằng 100% và gây hiểu nhầm. Nên cần đảm bảo khi nhóm các giá trị còn lại là tổng luôn bằng 100% hoặc giải thích rõ tại sao 1 số giá trị không được tính đến.

Image for post
Loại bỏ các giá trị gây nhiễu

3. Biểu đồ nói thật hay nói dối?

Việc trực quan hóa nên giúp biểu diễn thực tế về số liệu, thay vì làm sai lệch hoặc gây nhầm lẫn cho người xem. Việc trình bày biểu đồ rất quan trọng để tạo nên một khung tham chiếu cho người xem.

Trong ví dụ dưới đây, sản lượng của một quy trình tăng từ 56% lên 67% trong vòng 6 tháng. Biểu đồ phía bên trái đang cố tình phóng đại sự tăng trưởng này bằng cách để gốc của trục y ở giá trị 50%. Biểu đồ bên phải biểu diễn chính xác hơn khi trục y bắt đầu ở giá trị 0 và có kèm theo đường mục tiêu để so sánh.

Image for post
Tạo khung tham chiếu, không gây nhầm lẫn cho người xem

4. Sử dụng màu sắc hợp lý

Việc sử dụng màu sắc nên giúp thêm thông tin hoặc highlight những điểm quan trọng trong biểu đồ. Trong các trường hợp khác, màu sắc thường thừa thãi và gây rối mắt.

Image for post

5. Đơn giản và hiệu quả

Các công cụ trực quan hóa hiện nay giúp chúng ta tạo ra những biểu đồ đẹp mắt và phức tạp với chỉ vài cái click chuột. Tuy nhiên, quá nhiều yếu tố về thẩm mỹ có thể làm người xem sao nhãng khỏi thông điệp chính của biểu đồ. Less is more.

Image for post

Bên cạnh việc sử dụng công cụ, thì tư duy phân tích và thiết kế cũng rất quan trọng trong việc xây dựng báo cáo.

Nguồn: http://towardsdatascience.com/

Khóa học Power BI & Analytical Thinking mang đến các nội dung về ứng dụng Tư duy phân tích, thiết kế báo cáo cũng như ứng dụng Power BI. Khóa học đã được Datapot triển khai tại các doanh nghiệp như Unilever, SHB, MB Ageas Life.

Posted on Leave a comment

10 Nội dung về SQL bạn nên biết khi tham gia phỏng vấn trong ngành dữ liệu (Phần 2)

SQL ngày càng quan trọng trong doanh nghiệp với rất nhiều ứng dụng. Tuy nhiên, với các buổi phỏng vấn trong ngành dữ liệu, sẽ có một số nội dung quan trọng mà hầu hết các công ty đều kiểm tra. Dưới đây là 10 nội dung xuất hiện nhiều nhất vì có tính ứng dụng cao trong thực tế công việc.

Đây cũng là những nội dung bạn nên ôn tập để chuẩn bị cho buổi phỏng vấn sắp tới. (Xem phần 1 tại đây)

6. Subqueries

Subquery, hay inner query, là truy vấn nằm trong 1 truy vấn khác với mệnh đề WHERE. Subquery có thể ứng dụng theo nhiều cách khác nhau để giải quyết những vấn đề phức tạp.

Câu hỏi ví dụ: Suppose that a website contains two tables, the Customers table and the Orders table. Write a SQL query to find all customers who never order anything.

7. String Formatting

Các hàm về chuỗi ký tự rất quan trọng khi làm việc với dữ liệu chưa được làm sạch. Chính vì vậy, nhiều công ty sẽ có bài test liên quan đến dữ liệu chuỗi ký tự để đảm bảo bạn có thể xử lý dữ liệu hiệu quả.

Các nội dung cơ bản về chuỗi ký tự:

LEFT, RIGHT

TRIM

POSITION

SUBSTR

CONCAT

UPPER, LOWER

COALESCE

Follow Fanpage Datapot từ để cập nhật những nội dung liên quan như ảnh dưới đây nhé.

8. Date-time Manipulation

Một nội dung phổ biến trong các bài test tuyển dụng chính là các câu hỏi liên quan đến dữ liệu date-time. Bạn có thể được yêu cầu nhóm các dữ liệu theo tháng hoặc chuyển định dạng từ DD-MM-YYYY sang chỉ hiển thị tháng.

2 hàm bạn cần chú ý là:

EXTRACT

DATEDIFF

Câu hỏi ví dụ: Given a Weather table, write a SQL query to find all dates’ Ids with higher temperature compared to its previous (yesterday’s) dates.

9. Window functions 

Window functions cho phép bạn tính các giá trị gộp (sum, max, count,…) của tất cả các hàng, thay vì  một hàng (như khi sử dụng Group by). Window functions rất hữu ích trong việc xếp hạng, tính lũy kế,…

Câu hỏi ví dụ: Write a query to get the empno with the highest salary. Make sure your solution can handle ties!

10. UNION

Cuối cùng chính là UNION. Tuy không quá phổ biến như các nội dung trên, tuy nhiên bạn cũng có khả năng gặp câu hỏi về UNION và chuẩn bị không bao giờ là thừa. Nếu bạn muốn gộp 2 bảng có 1 số cột giống nhau, đây là lúc sử dụng UNION (Google thêm để tìm hiểu chi tiết về UNION nhé).

Nguồn tham khảo: Towardsdatascience.com

Bên cạnh chỉ học thuộc các câu lệnh, việc hiểu rõ logic đằng sau mỗi câu lệnh, và cách áp dụng chúng trong những trường hợp cụ thể là rất quan trọng. Đây chính là sự khác biệt giữa một người biết SQL và một người có thể sử dụng SQL trong công việc.

Với đội ngũ giảng viên được đào tạo bài bản, nhiều năm kinh nghiệm phân tích và xử lý dữ liệu ở cả môi trường doanh nghiệp trong và ngoài nước, Datapot hướng tới mục tiêu cung cấp những khóa học đơn giản, hiệu quả và gắn liền với thực tiễn nhất có thể.

Tham khảo khóa học SQL for Data Analytics khai giảng 23/11.

Posted on Leave a comment

Bắt đầu học Python như thế nào để ứng dụng trong phân tích dữ liệu?

Là ngôn ngữ lập trình phổ biến nhất trên thế giới, Python thường được giới thiệu đầu tiên cho các bạn muốn theo ngành dữ liệu. Với một rừng tư liệu miễn phí, đầu tư thời gian và nỗ lực học Python có thật sự là lựa chọn lý tưởng?

Bạn có nên học Python hay không? Nên học những gì? Lộ trình như thế nào để phục vụ cho việc theo đuổi ngành dữ liệu? Để trả lời những câu hỏi trên, hãy tham khảo bài viết này nhé!

Ứng dụng của Python trong lĩnh vực Data Science như thế nào?

Ví dụ flow làm việc với Python của một Data Scientist

  1. Sử dụng Python và SQL để truy vấn dữ liệu từ cơ sở dữ liệu của doanh nghiệp.
  2. Sử dụng thư viện pandas của Python để làm sạch dữ liệu, sắp xếp vào các bảng để sẵn sàng cho việc phân tích.
  3. Với các thư viện pandas và matplotlib, chúng ta bắt đầu phân tích, khám phá và visualize.
  4. Sử dụng thư viện scikit-learn để xây dựng các model dự đoán từ dữ liệu sẵn có.
  5. Sắp xếp kết quả phân tích và dự đoán thành với format phù hợp để chia sẻ với các thành viên trong công ty.

Vậy có phải cứ muốn theo đuổi ngành dữ liệu là nên học Python đầu tiên?

Nếu các bạn định hướng trở thành Data Scientist, bạn có thể lựa chọn giữa Python và R. Nhình chung thì Python đang là ngôn ngữ phổ biến hơn (R thường phổ biến trong học thuật và nghiên cứu).

Tuy nhiên, với các bạn định hướng trở thành Data Analyst, BI Analyst, thì như các bạn có thể tìm hiểu trên các tin tuyển dụng, Python sẽ là 1 điểm cộng, chứ không hẳn là công cụ bắt buộc. Nên tùy vào nhu cầu công việc, các bạn có thể lựa chọn học Python hay không.

Học Python như thế nào?

Bước 1: Học các nội dung căn bản về lập trình với Python

Nếu bạn chưa biết code, hoặc chưa sử dụng python bao giờ, bạn sẽ cần bắt đầu từ những khái niệm căn bản nhất như biến, vòng lặp, các câu lệnh cơ bản, logic trong ngôn ngữ lập trình và cách kết hợp chúng như thế nào để thực hiện được 1 tác vụ, giải một bài toán nào đó.

Bước 2: Học về Ứng dụng Python trong phân tích dữ liệu

Các ứng dụng có thể chia làm 4 nhóm chính

  1. Data collecting: Thu thập dữ liệu từ các nguồn khác nhau như file Excel, Database, crawl website,…
  2. Data manipulation: Phần lớn các dữ liệu trong thực tế đều cần xử lý, biến đổi trước khi đưa vào phân tích, nên đây sẽ là kỹ năng bạn cần thành thạo.
  3. Data visualization: Đây sẽ là thử thách cả về lập trình lẫn trình bày, thiết kế (tuy nhiên bạn cũng có thể sử dụng các tool khác chuyên về visualization để hỗ trợ).
  4. Machine Learning: Cần có các kiến thức về thống kê cũng như kinh nghiệm trong lĩnh vực cụ thể để ứng dụng.  

Các thư viện bạn có thể tìm hiểu: NumPy, pandas, Matplotlib, scikit-learn,…

Bước 3: Thực hành với các dự án thực tế

Bạn có thể thấy rằng từ tìm hiểu về tất cả các nội dung trên cho đến có thể thực hành thành thạo và ứng dụng trong công việc không phải là một con đường dễ dàng. Chính vì vậy, các bạn cần xác định rõ mục tiêu, nhu cầu của bản thân và lựa chọn lộ trình học phù hợp để có thể sử dụng Python hiệu quả nhất và không lãng phí thời gian của bản thân.

Với nhiều năm kinh nghiệm làm việc và đào tạo trong ngành dữ liệu, đội ngũ Datapot thiết kế khóa học Python for Data Analytics, tập trung vào ứng dụng Python cơ bản và thiết thực trong phân tích dữ liệu. 

Nguồn tham khảo: Dataquest