📐 Trung bình, độ lệch và tỉ lệ phần trăm trên dữ liệu thật

By Better Wise

Bài trước ta đã đọc công thức MSE và thấy nó lấy trung bình của các bình phương sai số. Vậy "trung bình" chính xác là gì, và vì sao phải bình phương rồi mới lấy trung bình? Bài này trả lời bằng một bảng số liệu rất nhỏ, đúng kiểu bạn sẽ gặp khi nhìn vào kết quả của một model.

Sau bài này, bạn có thể:

  • Tính mean của một dãy số ngắn bằng tay.
  • Tính độ lệch từng giá trị so với mean và tính standard deviation.
  • Đổi một tỉ số thành tỉ lệ phần trăm, kể cả phần trăm thay đổi.
  • Diễn giải ba con số đó bằng một câu tiếng Việt bình thường.

Trung bình: một con số đại diện cho cả dãy

Năm bạn trong một nhóm ghi lại số giờ tự học mỗi ngày: 1, 2, 2, 3, 7. Ta muốn một con số duy nhất nói "nhóm này học khoảng bao nhiêu".

$$ \bar{x} = \frac{1}{n}\sum_{i=1}^{n} x_i = \frac{1+2+2+3+7}{5} = \frac{15}{5} = 3 $$

Ký hiệu $\sum$ quen thuộc từ module 1: nó chỉ là phép cộng viết gọn, còn $n = 5$ là số giá trị. Kết quả: trung bình mỗi bạn học 3 giờ mỗi ngày.

Điều đáng chú ý: không bạn nào học đúng 3 giờ. Mean không phải "giá trị điển hình", nó là điểm cân bằng. Bạn học 7 giờ kéo điểm cân bằng lên, nên mean 3 cao hơn 4 bạn còn lại. Khi đọc một con số trung bình, luôn tự hỏi: có giá trị nào quá lớn hoặc quá nhỏ đang kéo nó không?

Độ lệch và standard deviation: dữ liệu phân tán đến mức nào

Hai nhóm có thể cùng mean 3 nhưng rất khác nhau: nhóm A học đều 3, 3, 3, 3, 3; nhóm B học 1, 2, 2, 3, 7. Ta cần đo độ phân tán. Bước đầu là độ lệch của từng giá trị:

$$ d_i = x_i - \bar{x} $$

Giờ học $x_i$ Độ lệch $x_i - 3$ Bình phương
1 -2 4
2 -1 1
2 -1 1
3 0 0
7 4 16
Tổng: 15 Tổng: 0 Tổng: 22

Cột giữa cộng lại luôn bằng 0, với mọi bộ dữ liệu. Đó là lý do tổng mọi độ lệch luôn bằng 0, nên không thể lấy trung bình độ lệch để đo độ phân tán. Cách xử lý: bình phương trước, để các độ lệch không triệt tiêu nhau, rồi mới lấy trung bình.

flowchart TD
  A["📊<br/>Dữ liệu 1, 2, 2, 3, 7"] --> B["➕<br/>Mean = 3"]
  B --> C["📏<br/>Độ lệch x - mean"]
  C --> D["⬜<br/>Bình phương độ lệch"]
  D --> E["➗<br/>Chia cho n: variance = 4.4"]
  E --> F["✅<br/>Căn bậc hai: SD khoảng 2.10"]

$$ \sigma = \sqrt{\frac{1}{n}\sum_{i=1}^{n}(x_i - \bar{x})^2} = \sqrt{\frac{22}{5}} \approx 2.10 $$

Con số 4.4 gọi là variance (phương sai), đơn vị là giờ bình phương, nghe rất vô nghĩa. Lấy căn bậc hai thì đơn vị quay về giờ, nên ta đọc được: thường mỗi bạn lệch khoảng 2 giờ so với mức 3 giờ. Đó chính là standard deviation.

Note: Ở đây ta chia cho $n$. Nếu chia cho $n-1$ (cách tính cho một mẫu nhỏ), variance là $22/4 = 5.5$ và SD khoảng 2.35. Điều quan trọng không phải chọn công thức nào, mà là nói rõ mình đã chia cho gì.

Một cách so sánh hay dùng: chia SD cho mean để bỏ đơn vị. $2.10 / 3 \approx 0.70$, tức là độ lệch khoảng 70% so với mức trung bình, khá lớn. Nhóm học đều sẽ có tỉ số này gần 0.

Tỉ lệ phần trăm: quy mọi tỉ số về thang 100

Một lớp có 40 bạn, 12 bạn đi xe đạp. Tỉ lệ là $12/40 = 0.3$, đổi sang phần trăm là $0.3 \times 100 = 30%$. Công thức chỉ có vậy: chia phần cho toàn bộ, nhân 100.

Phần trăm thay đổi thì khác một chút, và đây là chỗ hay sai nhất. Mẫu số luôn là giá trị ban đầu:

  • Thời gian học tăng từ 20 giờ lên 25 giờ: $(25-20)/20 = 0.25$, tức tăng 25%.
  • Giảm từ 25 giờ về 20 giờ: $(20-25)/25 = -0.20$, tức chỉ giảm 20%.

Cùng một chênh lệch 5 giờ, nhưng phần trăm khác nhau vì điểm xuất phát khác nhau. Khi đọc một tin kiểu "tăng 25%", hãy tìm ngay con số gốc.

Ba phép tính, một câu diễn giải

Nhóm 5 bạn ở trên nằm trong một lớp 40 bạn, và 12 bạn trong lớp đi xe đạp.

  1. Mean số giờ tự học: 3 giờ/ngày.
  2. Standard deviation: khoảng 2.10 giờ.
  3. Tỉ lệ đi xe đạp: $12/40 = 30%$.

Diễn giải thành lời: "Lớp có 40 bạn, 30% đi xe đạp; trung bình mỗi bạn tự học 3 giờ mỗi ngày, nhưng mức học không đều, lệch khoảng 2 giờ so với trung bình."

Luyện tập nhanh, điền vào chỗ trống:

Trung bình của dãy 1, 2, 2, 3, 7 là _____. Tổng tất cả độ lệch so với mean luôn bằng _____. Standard deviation bằng căn bậc hai của _____. 12 trên 40 là _____ phần trăm. Đi từ 20 lên 25 là tăng _____ phần trăm.

Mẹo tính nhanh và lỗi hay gặp

  • Cộng thử cột độ lệch trước khi bình phương. Nếu tổng khác 0, bạn đã tính sai mean.
  • Thứ tự luôn là: bình phương, chia cho n, rồi mới căn. Đừng căn trước khi chia.
  • Giữ đơn vị trong lúc diễn giải. "2.10" vô nghĩa, "2.10 giờ" mới có nghĩa.
  • Trước khi tin một con số trung bình, hãy nhìn dữ liệu gốc. Một giá trị 7 giờ đã đủ kéo mean lên 3.
  • Với phần trăm thay đổi, luôn hỏi: mẫu số là giá trị nào? Tăng 25% rồi giảm 20% không đưa bạn về chỗ cũ trong mọi trường hợp.
  • Làm tròn 2 chữ số thập phân là đủ cho dữ liệu nhỏ, nhưng đừng làm tròn giữa chừng.

Mang gì sang bài checkpoint

Ba con số bạn vừa tính, mean, standard deviation và tỉ lệ phần trăm, chính là nguyên liệu của bài checkpoint: đọc một công thức ML, thay số vào, và nói xem kết quả nghĩa là gì. Bài tiếp theo sẽ kiểm tra toàn bộ module 2, gồm cả cách đọc công thức MSE mà ta đã học.

Front: Mean của dãy 1, 2, 2, 3, 7 bằng bao nhiêu? Back: 3, vì tổng là 15 và có 5 giá trị.

Front: Công thức tính mean? Back: Tổng tất cả giá trị chia cho số giá trị n.

Front: Độ lệch của một giá trị được tính thế nào? Back: Lấy giá trị đó trừ đi mean: x_i - x̄.

Front: Tổng tất cả độ lệch so với mean luôn bằng bao nhiêu? Back: Luôn bằng 0, nên không dùng trung bình độ lệch để đo độ phân tán.

Front: Vì sao phải bình phương độ lệch trước khi lấy trung bình? Back: Để các độ lệch âm và dương không triệt tiêu nhau.

Front: Variance của dãy 1, 2, 2, 3, 7 khi chia cho n? Back: 22/5 = 4.4.

Front: Standard deviation của dãy đó xấp xỉ bao nhiêu? Back: Căn bậc hai của 4.4, khoảng 2.10 giờ.

Front: Đơn vị của variance và standard deviation khác nhau thế nào? Back: Variance có đơn vị bình phương, standard deviation cùng đơn vị với dữ liệu.

Front: Hệ số độ lệch tương đối trong bài được tính thế nào? Back: Lấy SD chia cho mean, ở đây 2.10/3 khoảng 70%.

Front: 12 trên 40 là bao nhiêu phần trăm? Back: 30%.

Front: Đi từ 20 lên 25 là tăng bao nhiêu phần trăm? Back: 25%, vì lấy 5 chia cho giá trị gốc 20.

Front: Đi từ 25 xuống 20 là giảm bao nhiêu phần trăm? Back: 20%, vì lấy 5 chia cho giá trị gốc 25.

Front: Mean bị ảnh hưởng mạnh nhất bởi loại giá trị nào? Back: Giá trị ngoại lệ (outlier) quá lớn hoặc quá nhỏ.

Front: Chia cho n-1 thay vì n thì variance thay đổi ra sao? Back: Tăng lên: 22/4 = 5.5, SD khoảng 2.35.