images
23/10/2020 03:23 am

Gấu Mèo học statistics với Python - Phần 1: Boxplot

Mặc dù ít thấy trong các báo cáo công ty, nhưng thực tế Boxplot rất phổ biến đối với dân phân tích dữ liệu. Vậy khi nhìn vào một biểu đồ boxplot thì chúng ta nhìn vào điều gì?

Gấu Mèo có một con chó máy tên là Obbi.

Hôm nay lười định không học gì, thì con Obbi lại sủa nhặng xị cả lên. Con này một khi đã bảo nó nhắc việc, không làm thì không yên được với nó. Thôi đành, ngồi viết tiếp vậy.

Hôm trước khi nghiên cứu về Churn Analysis, thấy có đoạn nói về Boxplot. Thế nên hôm nay Gấu Mèo sẽ viết về Boxplot.


Mặc dù ít thấy trong các báo cáo công ty, nhưng thực tế Boxplot rất phổ biến đối với dân phân tích dữ liệu. Vậy khi nhìn vào một biểu đồ boxplot thì chúng ta nhìn vào điều gì?

Chúng ta sẽ nhìn vào Hình 2:


Boxplot có 5 yếu tố:


- Median hay còn gọi là trung vị

Đây là giá trị ở giữa. Như trong hình, những khách hàng rời bỏ (màu cam) có trung vị tầm khoảng 80, nghĩa là 50% số khách hàng rời bỏ chi trả nhiều hơn 80$/ 1 tháng, 50% chi trả ít hơn 80$/ 1 tháng


- 2 hinges: 25% (Q1) và 75%(Q3) hay còn gọi là bách phân vị.


Nghe khó hiểu rồi phải không. Đơn giản thế này nhé:


Như hình trên, với khách hàng rời bỏ, thì Q1 tầm khoảng 60, nghĩa là có 25% số khách rời bỏ chi trả ít hơn 60$/ 1 tháng, Q3 tầm khoảng 95, nghĩa là có 75% số khách rời bỏ chi trả ít hơn 95$/ 1 tháng


- IQR interquartile range: Nó chính là cái khoảng từ Q1 tới Q3. Độ rộng dài của cái khoảng này sẽ cho ta biết liệu dữ liệu có biến động nhiều hay không. IQR càng lớn nghĩa là dữ liệu biến đổi càng nhiều.


- 2 whisker bao gồm minimum = Q1 - 1.5 * IQR và maximum = Q3 + 1.5 * IQR. Cái này không phải là minimum và maximum của toàn bộ data đâu nhé. Đây là minimum và maximum sau khi đã loại ra các điểm đặc biệt (quá lớn hoặc quá bé).


- Outliers: Các điểm dị biệt. Thực ra nói nghi ngờ dị biệt thì đúng hơn, vì trên thực tế sau khi xem lại thì có thể những dữ liệu này cũng không phải dị biệt, chẳng qua nó quá lớn hay quá bé nên chúng ta cho vào diện cần theo dõi thôi.


Ngoài ra người ta còn nhìn vào khoảng cách từ Median tới Q1 và Q3 để xem dữ liệu có bị lệch (skewed) hay không? (Người ta thường hay transform dữ liệu về dạng phân phối chuẩn, nên cần biết skewed như thế nào để chọn phương pháp transform dữ liệu phù hợp).


Để vẽ cái biểu đồ này bằng Python thì khá đơn giản, Gấu Mèo dùng thư viện seaborn:


import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns


telco = pd.read_csv('Telco-Customer-Churn.csv')

sns.boxplot(x='Churn', y='MonthlyCharges', data = telco)


Như đoạn code trên Gấu Mèo đã vẽ boxplot của khách hàng rời bỏ và không rời bỏ. Bạn nhìn biểu đồ trên (hình 2) có nhận xét gì không ?


À mà data Gấu Mèo lấy trên kaggle nhé bạn. Link này đây: https://www.kaggle.com/blastchar/telco-customer-churn 


Mời các bạn đọc thêm bài Gấu mèo đi làm Data Scientist: Outlier - Anomaly Detection - Part 1


- Tech Zone -


Thư giãn chút nào!!!

Bài viết liên quan