Lý thuyết
1 giờ
Bài 3/15

Thống kê Mô tả - Độ đo Tập trung

Mean, Median, Mode và các khái niệm cơ bản

📈 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

Độ đo tập trung


1. Các loại dữ liệu

1.1 Phân loại dữ liệu

Phân loại dữ liệu

📊Data Types
Categorical
Nominal (Màu sắc, Giới tính)
Ordinal (Xếp hạng, Mức độ)
Numerical
Discrete (Số học sinh)
Continuous (Chiều cao)
LoạiVí dụĐộ đo phù hợp
NominalMàu sắc, Nhóm máuMode
OrdinalXếp hạng 1-5 saoMedian, Mode
DiscreteSố con, Số xeMean, Median, Mode
ContinuousChiều cao, Thu nhậpMean, Median

2. Mean (Trung bình cộng)

2.1 Công thức

Population Mean (Trung bình tổng thể):

μ=1Ni=1Nxi=x1+x2+...+xNN\mu = \frac{1}{N}\sum_{i=1}^{N} x_i = \frac{x_1 + x_2 + ... + x_N}{N}

Sample Mean (Trung bình mẫu):

xˉ=1ni=1nxi=x1+x2+...+xnn\bar{x} = \frac{1}{n}\sum_{i=1}^{n} x_i = \frac{x_1 + x_2 + ... + x_n}{n}

Population vs Sample
  • 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]

xˉ=7+8+6+9+7+8+10+58=608=7.5\bar{x} = \frac{7 + 8 + 6 + 9 + 7 + 8 + 10 + 5}{8} = \frac{60}{8} = 7.5

2.3 Weighted Mean (Trung bình có trọng số)

xˉw=i=1nwixii=1nwi\bar{x}_w = \frac{\sum_{i=1}^{n} w_i x_i}{\sum_{i=1}^{n} w_i}

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án8432
7321
Hóa9218
Tổng-971

xˉw=32+21+184+3+2=719=7.89\bar{x}_w = \frac{32 + 21 + 18}{4 + 3 + 2} = \frac{71}{9} = 7.89

2.4 Code Python

Python
1import numpy as np
2
3# Dữ liệu
4scores = [7, 8, 6, 9, 7, 8, 10, 5]
5
6# Mean đơn giản
7mean_score = np.mean(scores)
8print(f"Mean: {mean_score}") # 7.5
9
10# Weighted Mean
11grades = [8, 7, 9]
12credits = [4, 3, 2]
13weighted_mean = np.average(grades, weights=credits)
14print(f"Weighted Mean: {weighted_mean:.2f}") # 7.89

3. 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+12\frac{n+1}{2}
  • 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: 5+12=3\frac{5+1}{2} = 3Median = 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 = 4+62\frac{4+6}{2} = 5

3.3 Code Python

Python
1import numpy as np
2
3# n lẻ
4data_odd = [3, 7, 2, 9, 4]
5print(f"Median (n lẻ): {np.median(data_odd)}") # 4.0
6
7# n chẵn
8data_even = [3, 7, 2, 9, 4, 6]
9print(f"Median (n chẵn): {np.median(data_even)}") # 5.0

4. 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ệuModeLoại
[1, 2, 2, 3, 4]2Unimodal
[1, 1, 2, 2, 3]1, 2Bimodal
[1, 2, 3, 4, 5]NoneNo mode

4.3 Code Python

Python
1from scipy import stats
2import numpy as np
3
4# Unimodal
5data = [1, 2, 2, 3, 4]
6mode_result = stats.mode(data, keepdims=True)
7print(f"Mode: {mode_result.mode[0]}") # 2
8print(f"Count: {mode_result.count[0]}") # 2
9
10# Sử dụng pandas cho multiple modes
11import pandas as pd
12data_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

📊Data với Outliers
⚠️Mean (Bị ảnh hưởng)
Median (Robust)
Mode (Tùy thuộc)

Ví dụ: Thu nhập (triệu/tháng): [10, 12, 11, 13, 100]

Độ đoGiá trịNhận xét
Mean29.2Bị kéo lên bởi outlier 100
Median12Khô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ó outliersMean
Dữ liệu lệch (skewed) hoặc có outliersMedian
Dữ liệu categoricalMode
Thu nhập, giá nhàMedian
Điểm số, chiều caoMean
Màu sắc yêu thíchMode

5.3 Skewness và vị trí các độ đo

Skewness

Skewness và vị trí các độ đo

🔴Left Skewed: Mean < Median < Mode
🟢Symmetric: Mean ≈ Median ≈ Mode
🔵Right Skewed: Mode < Median < Mean

5.4 Code minh họa

Python
1import numpy as np
2import matplotlib.pyplot as plt
3from scipy import stats
4
5# Tạo dữ liệu với outlier
6data_normal = [10, 12, 11, 13, 14, 12, 11, 13]
7data_with_outlier = [10, 12, 11, 13, 14, 12, 11, 100]
8
9# So sánh
10print("=== Data without outlier ===")
11print(f"Mean: {np.mean(data_normal):.2f}")
12print(f"Median: {np.median(data_normal):.2f}")
13
14print("\n=== Data with outlier ===")
15print(f"Mean: {np.mean(data_with_outlier):.2f}")
16print(f"Median: {np.median(data_with_outlier):.2f}")
17
18# Visualization
19fig, axes = plt.subplots(1, 2, figsize=(12, 4))
20
21# Normal data
22axes[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()
27
28# Data with outlier
29axes[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()
34
35plt.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]

  1. Tính Mean
  2. Tính Median
  3. Tìm Mode
Đáp án
  • 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]

  1. Tính Mean và Median
  2. Độ đo nào phản ánh thực tế hơn?
  3. Giải thích tại sao

Tóm tắt

Độ đoCông thứcƯu điểmNhược điểm
Meanxˉ=xin\bar{x} = \frac{\sum x_i}{n}Sử dụng tất cả dữ liệuNhạy với outliers
MedianGiá trị giữaRobust với outliersBỏ qua giá trị cực trị
ModeGiá trị phổ biến nhấtDùng cho categoricalCó thể không duy nhất
Key Takeaways
  1. Mean phù hợp cho dữ liệu đối xứng
  2. Median robust hơn khi có outliers
  3. Mode dùng cho dữ liệu categorical
  4. Luôn kiểm tra distribution trước khi chọn độ đo