🎯 Mục tiêu bài học
Sau bài học này, bạn sẽ:
✅ Hiểu và tính toán Mean, Median, Mode
✅ Biết khi nào sử dụng độ đo nào
✅ Phân biệt Population vs Sample Statistics
✅ Hiểu ảnh hưởng của Outliers lên các độ đo
Thời gian: 1 giờ | Độ khó: Beginner | Yêu cầu: Bài 01-02
📖 Bảng Thuật Ngữ Quan Trọng
| Thuật ngữ | Tiếng Việt | Mô tả |
|---|---|---|
| Mean | Trung bình cộng | Tổng giá trị chia cho số phần tử |
| Median | Trung vị | Giá trị ở vị trí giữa khi sắp xếp |
| Mode | Yếu vị | Giá trị xuất hiện nhiều nhất |
| Weighted Mean | Trung bình có trọng số | Mean tính theo trọng số |
| Outlier | Giá trị ngoại lai | Giá trị bất thường, khác biệt lớn |
| Skewness | Độ lệch | Mức độ bất đối xứng của phân phối |
| Nominal | Danh nghĩa | Dữ liệu phân loại không có thứ tự |
| Ordinal | Thứ bậc | Dữ liệu phân loại có thứ tự |
Checkpoint
Population Mean dùng ký hiệu μ (mu), Sample Mean dùng x̄ (x-bar). Bạn nhớ chưa?
📊 Các Loại Dữ Liệu
Phân loại dữ liệu
| Loại | Ví dụ | Độ đo phù hợp |
|---|---|---|
| Nominal | Màu sắc, Nhóm máu | Mode |
| Ordinal | Xếp hạng 1-5 sao | Median, Mode |
| Discrete | Số con, Số xe | Mean, Median, Mode |
| Continuous | Chiều cao, Thu nhập | Mean, Median |
📐 Mean (Trung bình cộng)
Công thức
Population Mean (Trung bình tổng thể):
Sample Mean (Trung bình mẫu):
- Population (N): Toàn bộ đối tượng nghiên cứu
- Sample (n): Một phần được chọn từ tổng thể
- Ký hiệu: μ (mu) cho population, x̄ (x-bar) cho sample
Ví dụ tính tay
Dữ liệu: Điểm thi của 8 học sinh: [7, 8, 6, 9, 7, 8, 10, 5]
Weighted Mean (Trung bình có trọng số)
Ví dụ: Tính điểm trung bình học phần
| Môn | Điểm (x) | Số tín chỉ (w) | w × x |
|---|---|---|---|
| Toán | 8 | 4 | 32 |
| Lý | 7 | 3 | 21 |
| Hóa | 9 | 2 | 18 |
| Tổng | - | 9 | 71 |
Code Python
1import numpy as np23# Dữ liệu4scores = [7, 8, 6, 9, 7, 8, 10, 5]56# Mean đơn giản7mean_score = np.mean(scores)8print(f"Mean: {mean_score}") # 7.5910# Weighted Mean11grades = [8, 7, 9]12credits = [4, 3, 2]13weighted_mean = np.average(grades, weights=credits)14print(f"Weighted Mean: {weighted_mean:.2f}") # 7.89Checkpoint
Tính Weighted Mean điểm học kỳ: Toán 8.5 (4 TC), Văn 7.0 (3 TC), Anh 9.0 (3 TC), TD 8.0 (2 TC).
📊 Median (Trung vị)
Định nghĩa
Median là giá trị ở vị trí giữa khi sắp xếp dữ liệu theo thứ tự.
Cách tính:
- Nếu n lẻ: Median = giá trị ở vị trí
- Nếu n chẵn: Median = trung bình của 2 giá trị giữa
Ví dụ tính tay
Ví dụ 1: n lẻ
Dữ liệu: [3, 7, 2, 9, 4]
Sắp xếp: [2, 3, 4, 7, 9]
Vị trí giữa: → Median = 4
Ví dụ 2: n chẵn
Dữ liệu: [3, 7, 2, 9, 4, 6]
Sắp xếp: [2, 3, 4, 6, 7, 9]
Hai giá trị giữa: 4 và 6 → Median = = 5
Code Python
1import numpy as np23# n lẻ4data_odd = [3, 7, 2, 9, 4]5print(f"Median (n lẻ): {np.median(data_odd)}") # 4.067# n chẵn8data_even = [3, 7, 2, 9, 4, 6]9print(f"Median (n chẵn): {np.median(data_even)}") # 5.0🔢 Mode (Yếu vị)
Định nghĩa
Mode là giá trị xuất hiện nhiều lần nhất trong tập dữ liệu.
- Unimodal: 1 mode
- Bimodal: 2 modes
- Multimodal: nhiều modes
- No mode: tất cả xuất hiện bằng nhau
Ví dụ
| Dữ liệu | Mode | Loại |
|---|---|---|
| [1, 2, 2, 3, 4] | 2 | Unimodal |
| [1, 1, 2, 2, 3] | 1, 2 | Bimodal |
| [1, 2, 3, 4, 5] | None | No mode |
Code Python
1from scipy import stats2import numpy as np34# Unimodal5data = [1, 2, 2, 3, 4]6mode_result = stats.mode(data, keepdims=True)7print(f"Mode: {mode_result.mode[0]}") # 28print(f"Count: {mode_result.count[0]}") # 2910# Sử dụng pandas cho multiple modes11import pandas as pd12data_bimodal = pd.Series([1, 1, 2, 2, 3])13print(f"Modes: {data_bimodal.mode().tolist()}") # [1, 2]Checkpoint
Dữ liệu: [5, 3, 5, 7, 3, 5, 8, 3]. Mode là gì? Unimodal hay Bimodal?
⚖️ So Sánh Mean, Median, Mode
Ảnh hưởng của Outliers
Ảnh hưởng của Outliers
Ví dụ: Thu nhập (triệu/tháng): [10, 12, 11, 13, 100]
| Độ đo | Giá trị | Nhận xét |
|---|---|---|
| Mean | 29.2 | Bị kéo lên bởi outlier 100 |
| Median | 12 | Không bị ảnh hưởng |
Khi nào dùng độ đo nào?
| Tình huống | Độ đo phù hợp |
|---|---|
| Dữ liệu đối xứng, không có outliers | Mean |
| Dữ liệu lệch (skewed) hoặc có outliers | Median |
| Dữ liệu categorical | Mode |
| Thu nhập, giá nhà | Median |
| Điểm số, chiều cao | Mean |
| Màu sắc yêu thích | Mode |
Skewness và vị trí các độ đo
Skewness và vị trí các độ đo
Code minh họa
1import numpy as np2import matplotlib.pyplot as plt3from scipy import stats45# Tạo dữ liệu với outlier6data_normal = [10, 12, 11, 13, 14, 12, 11, 13]7data_with_outlier = [10, 12, 11, 13, 14, 12, 11, 100]89# So sánh10print("=== Data without outlier ===")11print(f"Mean: {np.mean(data_normal):.2f}")12print(f"Median: {np.median(data_normal):.2f}")1314print("\n=== Data with outlier ===")15print(f"Mean: {np.mean(data_with_outlier):.2f}")16print(f"Median: {np.median(data_with_outlier):.2f}")1718# Visualization19fig, axes = plt.subplots(1, 2, figsize=(12, 4))2021# Normal data22axes[0].hist(data_normal, bins=10, edgecolor='black', alpha=0.7)23axes[0].axvline(np.mean(data_normal), color='red', linestyle='--', label=f'Mean: {np.mean(data_normal):.1f}')24axes[0].axvline(np.median(data_normal), color='green', linestyle='--', label=f'Median: {np.median(data_normal):.1f}')25axes[0].set_title('Without Outlier')26axes[0].legend()2728# Data with outlier29axes[1].hist(data_with_outlier, bins=10, edgecolor='black', alpha=0.7)30axes[1].axvline(np.mean(data_with_outlier), color='red', linestyle='--', label=f'Mean: {np.mean(data_with_outlier):.1f}')31axes[1].axvline(np.median(data_with_outlier), color='green', linestyle='--', label=f'Median: {np.median(data_with_outlier):.1f}')32axes[1].set_title('With Outlier')33axes[1].legend()3435plt.tight_layout()36plt.show()Checkpoint
Lương nhân viên (triệu/tháng): [15, 18, 16, 17, 19, 150]. Mean hay Median phản ánh thực tế hơn? Tại sao?
🧩 Bài Tập Thực Hành
Bài tập 1: Tính các độ đo
Cho dữ liệu điểm kiểm tra: [85, 90, 78, 92, 88, 85, 95, 85, 80, 75]
- Tính Mean
- Tính Median
- Tìm Mode
- Mean = 85.3
- Median = 85
- Mode = 85
Bài tập 2: Weighted Mean
Tính điểm trung bình học kỳ với:
- Toán: 8.5 (4 tín chỉ)
- Văn: 7.0 (3 tín chỉ)
- Anh: 9.0 (3 tín chỉ)
- Thể dục: 8.0 (2 tín chỉ)
Bài tập 3: Phân tích outlier
Cho dữ liệu lương nhân viên (triệu/tháng): [15, 18, 16, 17, 19, 150]
- Tính Mean và Median
- Độ đo nào phản ánh thực tế hơn?
- Giải thích tại sao
📝 Tổng Kết
| Độ đo | Công thức | Ưu điểm | Nhược điểm |
|---|---|---|---|
| Mean | Sử dụng tất cả dữ liệu | Nhạy với outliers | |
| Median | Giá trị giữa | Robust với outliers | Bỏ qua giá trị cực trị |
| Mode | Giá trị phổ biến nhất | Dùng cho categorical | Có thể không duy nhất |
Câu hỏi tự kiểm tra
- Khi nào nên sử dụng Median thay vì Mean để mô tả dữ liệu?
- Mode có thể áp dụng cho loại dữ liệu nào mà Mean và Median không phù hợp?
- Tại sao cần kiểm tra phân phối dữ liệu trước khi chọn độ đo xu hướng trung tâm?
- Nếu một tập dữ liệu có outliers lớn, Mean và Median sẽ khác nhau như thế nào?
- Mean phù hợp cho dữ liệu đối xứng
- Median robust hơn khi có outliers
- Mode dùng cho dữ liệu categorical
- Luôn kiểm tra distribution trước khi chọn độ đo
🎉 Tuyệt vời! Bạn đã hoàn thành bài học Đo lường xu hướng trung tâm!
Tiếp theo: Chúng ta sẽ tìm hiểu về các độ đo phân tán (Range, Variance, Standard Deviation) để hiểu dữ liệu trải rộng như thế nào.
