📈 Thống kê Mô tả - Độ đo Tập trung
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
Tổng quan
1. Các loại dữ liệu
1.1 Phân 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 |
2. Mean (Trung bình cộng)
2.1 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
2.2 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]
2.3 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 |
2.4 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.893. Median (Trung vị)
3.1 Đị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
3.2 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
3.3 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.04. Mode (Yếu vị)
4.1 Đị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
4.2 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 |
4.3 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]5. So sánh Mean, Median, Mode
5.1 Ả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 |
5.2 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 |
5.3 Skewness và vị trí các độ đo
Skewness và vị trí các độ đo
5.4 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()6. 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óm tắ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 |
- 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
