[DA & DS Blog #58] Thống Kê Mô Tả Căn Bản Dành Cho Người Làm Dữ Liệu: Mean, Median, Mode, Độ Lệch Chuẩn, Z-Score & Cách Đọc Hiểu Biểu Đồ Boxplot
![[DA & DS Blog #58] Thống Kê Mô Tả Căn Bản Dành Cho Người Làm Dữ Liệu: Mean, Median, Mode, Độ Lệch Chuẩn, Z-Score & Cách Đọc Hiểu Biểu Đồ Boxplot](/uploads/ai-images/cover-thong-ke-mo-ta.png)
1. Bối cảnh thực tế (Context & Problem Statement)
Trong giới dữ liệu có một câu chuyện đùa kinh điển:
“Nếu tỷ phú Bill Gates bước vào một quán bar có 50 người đang uống bia, thì trung bình thu nhập của mỗi người trong quán bar ngay lập tức vọt lên thành... hàng trăm triệu USD/năm!”
Câu chuyện vui này phản ánh một cạm bẫy thực tế rất phổ biến:
- Khi một công ty công bố: "Mức lương trung bình của nhân viên là 30 triệu đồng/tháng".
- Nhưng thực tế: nhân viên chỉ nhận lương , trong khi chỉ có 1 vài Giám đốc nhận lương . Con số lương cực cao của các sếp đã kéo lệch hoàn toàn giá trị trung bình cộng.
Nếu người làm dữ liệu (Data Analyst, Data Engineer hay Data Scientist) chỉ biết tính hàm AVERAGE() hoặc mean(), bạn sẽ rất dễ đưa ra những kết luận sai lầm gây hại cho doanh nghiệp. Để hiểu thực chất dữ liệu đang nói gì, ta cần bộ công cụ Thống kê mô tả căn bản (Descriptive Statistics).
2. Các Khái Niệm & Cơ Chế Cốt Lõi
2.1. Thước Đo Xu Hướng Tập Trung (Measures of Central Tendency)
Dùng để trả lời câu hỏi: "Các điểm dữ liệu có xu hướng tụ tập quanh giá trị nào?"
- Mean (Giá trị trung bình cộng):
- Lấy tổng tất cả các giá trị chia cho số lượng phần tử: .
- Điểm yếu chí mạng: Cực kỳ nhạy cảm với các giá trị dị biệt (Outliers). Chỉ cần 1 con số cực lớn hoặc cực nhỏ sẽ làm hỏng con số trung bình.
- Median (Giá trị trung vị - Con số đứng giữa):
- Sắp xếp dãy số theo thứ tự từ bé đến lớn. Median chính là giá trị nằm ngay chính giữa danh sách.
- Nếu số phần tử là lẻ: Lấy đúng số ở giữa.
- Nếu số phần tử là chẵn: Lấy trung bình cộng của 2 số ở giữa.
- Ưu điểm tuyệt đối: Hoàn toàn không bị ảnh hưởng bởi Outliers (Dù Bill Gates có tài sản bước vào, Median thu nhập của quán bar vẫn giữ nguyên ở mức ).
- Sắp xếp dãy số theo thứ tự từ bé đến lớn. Median chính là giá trị nằm ngay chính giữa danh sách.
- Mode (Giá trị yếu vị - Con số xuất hiện nhiều nhất):
- Giá trị có tần suất xuất hiện lặp lại nhiều nhất trong tập dữ liệu.
- Ứng dụng thực tế: Phù hợp nhất cho dữ liệu danh mục (ví dụ: size áo bán chạy nhất là size
L, phương thức thanh toán phổ biến nhất làMoMo).
2.2. Thước Đo Độ Phân Tán: Phương Sai & Độ Lệch Chuẩn (Standard Deviation)
Chỉ biết con số trung bình là chưa đủ. Ta cần biết: "Dữ liệu có phân tán rải rác hay tập trung dày đặc quanh con số trung bình?"
- Ví dụ so sánh 2 lớp học:
- Lớp A: Điểm thi toàn bộ học sinh là
[5, 5, 5, 5, 5]Điểm trung bình . - Lớp B: Điểm thi học sinh là
[0, 0, 5, 10, 10]Điểm trung bình cũng . - Rõ ràng trình độ học sinh của 2 lớp này hoàn toàn khác nhau! Lớp B có độ phân tán cực kỳ lớn.
- Lớp A: Điểm thi toàn bộ học sinh là
- Phương sai (Variance - hoặc ): Trung bình của bình phương khoảng cách từ mỗi điểm dữ liệu tới giá trị trung bình: (Lý do phải bình phương: Để triệt tiêu dấu âm, không cho các khoảng cách âm dương triệt tiêu lẫn nhau).
- Độ lệch chuẩn (Standard Deviation - hoặc ): Lấy căn bậc hai của phương sai:
- Ý nghĩa thực tế: Đưa độ phân tán trở về cùng đơn vị đo với dữ liệu gốc (ví dụ: lương lệch trung bình ).
- Độ lệch chuẩn càng nhỏ: Dữ liệu càng đồng đều và ổn định.
- Độ lệch chuẩn càng lớn: Dữ liệu càng chênh lệch và biến động mạnh.
2.3. Phân Phối Chuẩn (Normal Distribution) & Quy Tắc Thực Nghiệm 68 - 95 - 99.7
Phân phối chuẩn (đồ thị hình quả chuông đối xứng - Bell Curve) là dạng phân phối phổ biến nhất trong tự nhiên và kinh doanh (Chiều cao con người, Điểm thi đại học, Sai số đo lường).
PHÂN PHỐI CHUẨN (BELL CURVE)
|
/ \
/ \
/ | \
/ | \
/ | \
--------------------+----------+----------+--------------------
μ-3σ μ μ+3σ
| <--------------- 68% (trong khoảng μ ± 1σ) -------------> |
| <------------------------- 95% (trong khoảng μ ± 2σ) ------------------> |
| <------------------- 99.7% (trong khoảng μ ± 3σ) ---------------------> |
- Quy tắc 68 - 95 - 99.7 (The Empirical Rule):
- Khoảng dữ liệu nằm trong phạm vi: (Trung bình độ lệch chuẩn).
- Khoảng dữ liệu nằm trong phạm vi: .
- Khoảng dữ liệu nằm trong phạm vi: .
- Bất kỳ điểm dữ liệu nào nằm ngoài khoảng (chỉ chiếm xác suất) đều được coi là một Giá trị ngoại lai bất thường (Outlier)!
2.4. Điểm Chuẩn Hóa Z-Score
Dùng để đo lường: "Một điểm dữ liệu cụ thể đang cách giá trị trung bình bao nhiêu lần độ lệch chuẩn?"
- : Giá trị đúng bằng mức trung bình.
- : Giá trị cao hơn trung bình độ lệch chuẩn (thuộc nhóm Top cao nhất).
- hoặc : Dấu hiệu cảnh báo Outlier cần kiểm tra ngay!
2.5. Phân Vị (Percentiles) & Cách Đọc Biểu Đồ Hộp (Boxplot)
Khi dữ liệu bị lệch nặng (không tuân theo phân phối chuẩn), Z-Score không còn hiệu quả. Ta sử dụng Khoảng tứ phân vị (IQR - Interquartile Range):
- Sắp xếp dãy số và chia làm 4 phần bằng nhau ( mỗi phần):
- (Phân vị thứ 25): số phần tử nhỏ hơn giá trị này.
- (Phân vị thứ 50): Chính là Median (Trung vị).
- (Phân vị thứ 75): số phần tử nhỏ hơn giá trị này.
- Độ trải giữa (IQR): (Đại diện cho dữ liệu nằm ở vùng trung tâm).
CẤU TRÚC BIỂU ĐỒ HỘP (BOXPLOT):
+-----+-----+
o (Outlier) |--------------| | |--------------| o o (Outliers)
| +-----+-----+ |
Min Bound Q1 Median Q3 Max Bound
(Q1 - 1.5*IQR) (Q3 + 1.5*IQR)
- Quy tắc 1.5 IQR để tìm Outliers:
- Ngưỡng dưới (Lower Fence): .
- Ngưỡng trên (Upper Fence): .
- Mọi điểm nằm ngoài 2 ngưỡng này được vẽ thành các dấu chấm tròn rời rạc (Chắc chắn là Outlier).
3. Các Bảng Markdown So Sánh Chi Tiết
📊 Bảng 1: So Sánh Mean vs. Median vs. Mode
| Tiêu chí | Mean (Trung bình cộng) | Median (Trung vị) | Mode (Yếu vị) |
|---|---|---|---|
| Định nghĩa đơn giản | Tổng chia cho số lượng | Giá trị đứng ở chính giữa danh sách | Giá trị xuất hiện nhiều lần nhất |
| Độ nhạy với Outliers | Rất nhạy cảm (Dễ bị kéo lệch) | Hoàn toàn KHÔNG bị ảnh hưởng | Không bị ảnh hưởng |
| Loại dữ liệu áp dụng | Dữ liệu số liên tục (Numeric) | Dữ liệu số (Numeric) hoặc Thứ bậc (Ordinal) | Cả Dữ liệu số LẪN Dữ liệu chữ (Categorical) |
| Trường hợp tối ưu | Dữ liệu đối xứng, phân phối chuẩn | Dữ liệu bị lệch (Thu nhập, Giá nhà, Thời gian) | Tìm mặt hàng bán chạy nhất, lỗi phổ biến nhất |
| Ví dụ thực tế | Chiều cao trung bình người Việt Nam | Thu nhập người dân, Thời gian xử lý đơn hàng | Size giày bán chạy nhất (Size 41) |
📊 Bảng 2: So Sánh 2 Phương Pháp Phát Hiện Outliers Căn Bản
| Phương pháp | Z-Score Method | IQR Method (Boxplot) |
|---|---|---|
| Giả định dữ liệu | Bắt buộc dữ liệu phải có phân phối chuẩn (Hình chuông đối xứng) | Không cần giả định phân phối (Áp dụng cho mọi loại dữ liệu) |
| Công thức xác định Outlier | Điểm có $ | Z |
| Mức độ ảnh hưởng bởi Outlier | Bị ảnh hưởng (vì chính công thức tính có chứa Mean và Std) | Hoàn toàn không bị ảnh hưởng (Do dùng các điểm phân vị) |
| Khuyến nghị sử dụng thực tế | Khi chắc chắn dữ liệu phân phối chuẩn (Điểm thi chuẩn hóa, Sai số cảm biến) | Chuẩn mặc định cho mọi phân tích khám phá dữ liệu (EDA) |
📊 Bảng 3: Dấu Hiệu Nhận Biết Dữ Liệu Bị Lệch (Skewness) Qua Mean và Median
| Dạng phân phối | Mối quan hệ giữa Mean và Median | Hình dạng đồ thị | Ví dụ thực tế đời thường |
|---|---|---|---|
| Đối xứng (Symmetric) | Chuông cân đối 2 bên | Chiều cao, Cân nặng, Huyết áp người trưởng thành | |
| Lệch Phải (Right-Skewed / Positively Skewed) | (Mean bị kéo sang phải) | Đuôi dài kéo dài về phía bên phải (Giá trị lớn) | Thu nhập người dân, Giá nhà đất, Lượt xem video Youtube |
| Lệch Trái (Left-Skewed / Negatively Skewed) | (Mean bị kéo sang trái) | Đuôi dài kéo dài về phía bên trái (Giá trị nhỏ) | Độ tuổi tử vong tự nhiên, Điểm thi tốt nghiệp đề dễ |
4. Best Practices & Thực Hành Code Python Căn Bản (Pro-Tips)
💡 Code Python Phân Tích Thống Kê Mô Tả Đầy Đủ Bằng Pandas
import pandas as pd
import numpy as np
# 1. Tạo tập dữ liệu mẫu về mức lương (đơn vị: triệu đồng/tháng):
# Có 1 vị Giám đốc lương 250 triệu kéo lệch dữ liệu:
salaries = [10, 11, 12, 12, 13, 14, 15, 15, 16, 18, 20, 250]
df = pd.DataFrame({'salary': salaries})
# 2. Tính các đại lượng thống kê cơ bản:
mean_val = df['salary'].mean() # Kết quả: ~33.8 triệu (Bị lệch quá cao!)
median_val = df['salary'].median() # Kết quả: 14.5 triệu (Phản ánh rất đúng thực tế)
mode_val = df['salary'].mode()[0] # Kết quả: 12 triệu (Mức lương xuất hiện nhiều nhất)
std_val = df['salary'].std() # Độ lệch chuẩn: ~68.1 triệu
print(f"Mean: {mean_val:.1f} | Median: {median_val:.1f} | Mode: {mode_val} | Std: {std_val:.1f}")
# 3. Phát hiện Outlier bằng phương pháp IQR:
Q1 = df['salary'].quantile(0.25) # Phân vị 25% (12.0)
Q3 = df['salary'].quantile(0.75) # Phân vị 75% (16.5)
IQR = Q3 - Q1 # 16.5 - 12.0 = 4.5
lower_bound = Q1 - 1.5 * IQR # 12.0 - 6.75 = 5.25
upper_bound = Q3 + 1.5 * IQR # 16.5 + 6.75 = 23.25
# Lọc ra các dòng Outlier:
outliers = df[(df['salary'] < lower_bound) | (df['salary'] > upper_bound)]
print("Danh sách các giá trị bất thường (Outliers):")
print(outliers) # Bắt chính xác mức lương 250 triệu!
5. Góc Ôn Luyện Phỏng Vấn (Interview Corner)
❓ Câu hỏi 1: Khi nào bạn nên sử dụng Median (Trung vị) thay vì Mean (Trung bình cộng) để báo cáo cho ban giám đốc? Cho một ví dụ cụ thể trong công việc thực tế.
- Gợi ý trả lời ngắn gọn, tự tin:
- Nguyên tắc lựa chọn:
- Sử dụng Mean khi tập dữ liệu có phân phối tương đối đối xứng và không có các giá trị ngoại lai dị biệt.
- Sử dụng Median khi tập dữ liệu bị lệch (Skewed Distribution) hoặc có chứa các giá trị ngoại lai cực lớn/cực nhỏ (Outliers).
- Ví dụ thực tế:
- Trong đo lường Thời gian xử lý đơn hàng (Order Delivery Time) của sàn E-commerce: Đa số đơn hàng giao thành công trong vòng . Nhưng có một vài đơn hàng bị thất lạc hoặc người mua hẹn lại sau mới nhận.
- Nếu dùng Mean, thời gian giao hàng trung bình sẽ bị đội lên thành , khiến ban giám đốc hiểu nhầm rằng chất lượng dịch vụ vận chuyển đang rất kém.
- Nếu dùng Median, con số hiển thị chuẩn xác là , phản ánh đúng trải nghiệm của hơn khách hàng thông thường.
- Nguyên tắc lựa chọn:
❓ Câu hỏi 2: Độ lệch chuẩn (Standard Deviation) đo lường điều gì? Hãy giải thích ý nghĩa của quy tắc 68-95-99.7 bằng một hình ảnh ví dụ dễ hiểu.
- Gợi ý trả lời:
- Bản chất của Độ lệch chuẩn:
- Độ lệch chuẩn đo lường mức độ biến thiên hoặc độ phân tán của các điểm dữ liệu xung quanh giá trị trung bình. Nó cho biết các con số thực tế đang nằm co cụm sát mức trung bình hay đang tản mác ra rất xa.
- Giải thích quy tắc 68-95-99.7 (Trong phân phối chuẩn):
- Ví dụ: Điểm thi kết thúc môn của sinh viên có phân phối chuẩn với Điểm trung bình và Độ lệch chuẩn :
- Khoảng sinh viên sẽ có điểm thi nằm trong khoảng từ đến (tức ).
- Khoảng sinh viên sẽ có điểm thi nằm trong khoảng từ đến (tức ).
- Khoảng sinh viên sẽ có điểm thi nằm trong khoảng từ đến (tức ).
- Nếu có một sinh viên bị điểm (nằm ngoài khoảng ), đây là trường hợp cực kỳ cá biệt (chỉ có xác suất xảy ra ).
- Ví dụ: Điểm thi kết thúc môn của sinh viên có phân phối chuẩn với Điểm trung bình và Độ lệch chuẩn :
- Bản chất của Độ lệch chuẩn:
❓ Câu hỏi 3: Biểu đồ Boxplot gồm những thành phần nào và phương pháp IQR xác định một điểm là Outlier như thế nào?
- Gợi ý trả lời:
- 5 Thành phần của biểu đồ Boxplot (Five-number summary):
- Min Bound (Râu dưới): .
- Q1 (Tứ phân vị thứ nhất): Mốc dữ liệu.
- Median (Đường kẻ ở giữa hộp): Mốc dữ liệu.
- Q3 (Tứ phân vị thứ ba): Mốc dữ liệu.
- Max Bound (Râu trên): .
- Quy tắc xác định Outlier:
- Đoạn thân hộp chính là khoảng tứ phân vị: , đại diện cho số lượng dữ liệu ổn định ở vùng giữa.
- Bất kỳ điểm dữ liệu nào nằm vượt ra ngoài phạm vi đều được thuật toán coi là giá trị ngoại lai bất thường (Outlier) và được biểu diễn bằng các chấm tròn nằm ngoài râu hộp.
- 5 Thành phần của biểu đồ Boxplot (Five-number summary):
6. Tóm Tắt Ghi Nhớ Nhanh (Key Takeaways)
- Mean bị kéo lệch bởi Outliers; Median là "tấm khiên" phản ánh trung thực nhất dữ liệu bị lệch (Lương bổng, Giá nhà).
- Độ lệch chuẩn () đo lường độ phân tán; giá trị càng nhỏ dữ liệu càng đồng đều và ổn định.
- Quy tắc 68-95-99.7 chỉ áp dụng cho Phân phối chuẩn (Bell Curve).
- Z-Score đo số lần độ lệch chuẩn cách xa mức trung bình; điểm thường là Outlier.
- Phương pháp IQR (Boxplot) là công cụ chuẩn mực số 1 để tìm kiếm Outliers cho mọi loại dữ liệu thực tế.