Mở đầu

Bài blog này sẽ giải thích cách tính khoảng tin cậy (confidence interval) cho trung bình. Bài đề cập đến các khái niệm phân phối chuẩn và khoảng tin cậy cho tỷ lệ trong hai bài blog trước. Các bạn có thể đọc ở đây:

  1. Phân phối chuẩn và các giá trị thống kê
    https://blog.vietnamlab.vn/2019/12/20/cac-loai-phan-phoi-va-tinh-chat/
  2. Khoảng tin cậy cho tỉ lệ
    https://blog.vietnamlab.vn/2020/06/23/toan-thong-ke-2/

Công thức

Công thức tính khoảng tin cậy cho trung bình sử dụng độ lệch chuẩn của tổ hợp

Công thức tính khoảng tin cậy cho trung bình là như sau:
uc?id=1YW_KgCnNogdNZ5v3TbbcfWmGaiI7Qv__&export=download
Để tính khoảng tin cậy của trung bình cho một tập dữ liệu đầu tiên ta sẽ lấy một mẫu dữ liệu trước. Từ mẫu dữ liệu đó ta sẽ lấy trung bình cộng của mẫu dữ liệu.
Sau đó ta sẽ tính z-score dựa vào mức tin cậy. Ví dụ như hình dưới đây với mức tin cậy là 95% trong phân phối mẫu của trung bình mẫu, sẽ được thể hiện bằng diện tích màu đỏ giữa hai gạch đỏ.
uc?id=1V9cNLU64qxfcSCxXS6x-VEUpgcNVnD7g&export=download
Với phần lớn dữ liệu, nếu ta tập hợp thật nhiều mẫu, tính trung bình của các mẫu rồi vẽ phân phối của trung bình, ta sẽ vẽ được một phân phối như trong hình. Về lý thuyết, trung bình của phân phối mẫu sẽ bằng trung bình của tổ hợp. Mức tin cậy là khả năng trung bình của tập hợp nằm giữa hai giá trị trong phân phối của trung bình mẫu. Hai giá trị này, được thể hiện bằng hai đường gạch màu đỏ cắt với trục X, có cùng khoảng cách với trung bình. Mức tin cậy bằng 95% có nghĩa là ta phải tìm hai đường gạch đỏ (đối xứng tại trung bình) như thế nào để khả năng trung bình của tập hợp nằm giữa hai giá trị là 95% (diện tích dưới đường cong).
Ví dụ tìm z-score với mức tin cậy là 95%. Cách thứ nhất ta có thể dùng luật 68, 95, và 99.7 (có thể xem trên wiki). Vì diện tích dưới đường cong ở giữa là 95%, z-score là gần bằng -2 bên trái và 2 bên phải.
Một cách khác, ta có thể tìm diện tích dưới đường cong bên tay trái phân phối (diện tích màu xanh bên trái hình). Diện tích đó sẽ là: (100% - 95%)/2 = 2.5% = 0.025. Sử dụng z-table và z-score của diện tích bên trái sẽ cho kết quả -1.96, làm tròn thành -2. Z-score bên phải sẽ là giá trị tuyệt đối của -2 bằng 2. Cách sử dụng z-table có thể thấy như hình bên dưới.
uc?id=1m-e1kGMJxXw0L3VCyroCUmYw2F_-fHjf&export=download
uc?id=1R7zuMnornQIbBHrSVGURjmCXhA_48nTL&export=download
Cuối cùng ta sẽ tính độ lệch chuẩn của trung bình trong phân phối mẫu bằng độ lệch của tổ hợp dữ liệu chia cho căn bậc hai của số dữ liệu trong mẫu dữ liệu. Sau khi tính được các giá trị trên các bạn có thể cộng trừ nhân chia như công thức trên để tính khoảng tin cậy trong trường hợp ta biết độ lệch chuẩn của tổ hợp dữ liệu.

Công thức tính khoảng tin cậy cho trung bình sử dụng độ lệch chuẩn của mẫu

Điểm cần lưu ý là rất ít trường hợp chúng ta biết được độ lệch chuẩn của tổ hợp dữ liệu. Nên bình thường ta sẽ sử dụng độ lệch chuẩn của mẫu thay bằng độ lệch chuẩn của tổ hợp để đưa ra kết quả tương tự.
Công thức tính độ lệch chuẩn cho phân phối của trung bình mẫu sử dụng độ lệch chuẩn của mẫu:
uc?id=1pwPRGtNyqswJ7FASZ038EIzWlIowVko8&export=download
Tuy nhiên các nhà toán học qua thí nghiệm thống kê thấy, nếu sử dụng độ lệch chuẩn của mẫu để tính độ lệch chuẩn cho trung bình như ở trên, sẽ đưa ra khoảng tin cậy không chính xác. Họ thấy nếu sử dụng độ lệch chuẩn của mẫu thay bằng độ lệch chuẩn của tổ hợp, thì sử dụng t-score sẽ chính xác hơn so với z-score.
Ta sẽ có công thức ước lượng khoảng tin cậy sử dụng độ lệch chuẩn của dữ liệu mẫu:
uc?id=1zodaL6yhs_fflv0v7ed8pL0WQ7qwZmfz&export=download
Để nhớ lại. Z-score và T-score làm cùng nhiệm vụ: tìm khoảng cách từ một giá trị bất kỳ đến trung bình trong một phân phối. Điểm khác nhau là z-score sử dụng cho phân phối Z. T-score sử dụng cho phân phối T, là phân phối có đuôi phình hơn phân phối Z.
uc?id=1KkVUdnBZt2PbFB5diOjSN0bcW2fn5Adg&export=download
Một điểm cần lưu ý nữa. Để sử dụng t-score ta phải biết bậc tự do (degrees of freedom). Bậc tự do = số dữ liệu mẫu - 1. Ví dụ trong mẫu của chúng ta có 10 dữ liệu và ta muốn tìm t-score với mức tin cậy là 95%. Bậc tự do sẽ là 10 -1 = 9, diện tích dưới đường cong ở bên trái sẽ là (100% - 95%)/2 = 2.5% = 0.025. Bạn cũng có thể sử dụng trức tiếp mức tin cậy là 95% thay bằng diện tích dưới đường cong bên trái (0.025). Sử dụng t-table như bên dưới ta sẽ tìm được t-score là 2.262.
uc?id=11QDOQ62ZT5-TcFZvdyS-gB8d3G_nrC9A&export=download

Vậy khi tính giới hạn lỗi cho trung bình, ta có thể sử dụng z-score với dộ lệch chuẩn của tổ hợp, và t-score với độ lệch chuẩn của mẫu.

Bài toán

Sử dụng công thức ở trên, ta sẽ giải một bài toán về khoảng tin cậy sử dụng python.

Một nhà chuyên gia dinh dưỡng nghiên cứu về số ca-lo trong bánh mì kẹp thịt của chuỗi nhà hàng nổi tiếng. Nhà chuyên gia lấy một mẫu ngẫu nhiên gồm 14 bánh mì kẹp thịt và đo số ca-lo. Mẫu dữ liệu có phân bố gần đối xứng, giá trị trung bình là 700 ca-lo và độ lệch chuẩn là 50 ca-lo. Hỏi với mẫu dữ liệu này, với mức độ tin cậy là 95%, khoảng cách tin cậy cho trung bình số ca-lo của bánh mì kẹp thịt này là bao nhiêu?

Tập hợp lại các thông tin từ bài toán

    sample_mean = 700
    sample_stddev = 50
    n_size = 14
    confidence_level = 0.95

Tính các giá trị để tính t-value: bậc giá trị và diện tích đường cong bên tay trái

    # Tính bậc tự do
    degrees_of_freedom = n_size - 1
    # Tính xác xuất giá trị nằm bền trái t-value trong phân phối t (t-distribution)
    one_tailed_prob = (1 - 0.95)/2
    one_tailed_prob # 0.025

Sau đó chúng ta tính t-value.

    # Tính t-value 
    t_value = stats.t.ppf(1 - one_tailed_prob, degrees_of_freedom)
    t_value # 2.1603686564610127

Tính độ lệch chuẩn cho phân phối mẫu của trung bình mẫu

    from math import sqrt
    sampling_dist_mean_stddev = sample_stddev/sqrt(n_size)
    sampling_dist_mean_stddev # 13.363062095621219

Tính khoảng tin cậy

    confidence_interval_1 =  sample_mean - (t_value*sampling_dist_mean_stddev)
    confidence_interval_2 =  sample_mean + (t_value*sampling_dist_mean_stddev)
    confidence_intervals = (confidence_interval_1, confidence_interval_2)
    confidence_intervals # (671.1308594942777, 728.8691405057223)

Tính khoảng tin cậy bằng function có sẵn trong scipy. Lưu ý là chúng ta sử dụng độ lệch chuẩn của phân phối mẫu trong trung bình mẫu (sampling_dist_mean_stddev), không phải độ lệch chuẩn của mẫu (sample_stddev).

    from scipy.stats import t
    check_confidence_intervals = t.interval(alpha=confidence_level, df=degrees_of_freedom, loc=sample_mean, scale=sampling_dist_mean_stddev)
    check_confidence_intervals # (671.1308594942777, 728.8691405057223)

Có thể thấy là chúng ta tính đúng vì kết quả ở trên giống với kết quả này. Vậy khoảng tin cậy trung bình sẽ gần bằng (671, 729)

Phân tích kết quả
Với mức tin cậy là 95%, khoảng tin cậy cho trung bình chúng ta tìm được là (671, 729). Điều này có nghĩa là ta có thể tự tin 95% là trung bình calo trong toàn bộ bánh mì kẹp thịt của cửa hàng này sẽ nằm trong khoảng từ 671 và 729 calo

Kết luận

Hi vọng với bài blog này các bạn hiểu được cách tính và phân tích khoảng tin cậy cho trung bình. Chúc các bạn may mắn trong việc áp dụng vào dự án.