Kiểm định giả thuyết thống kê python

Mở đầu

Kiểm định giả thuyết thống kê là một trong những phương pháp quan trọng nhằm đưa ra kết luận về tập hợp dữ liệu, dựa vào một mẫu dữ liệu nhỏ hơn lấy từ tập hợp đó.
Bài viết dưới đây sẽ đề cập đến 3 vấn đề chính:

  • Giới thiệu bài toán kiểm định giả thuyết thống kê, cộng với phương hướng giải.
  • Ví dụ bài toán, cách giải và code về kiểm định giả thuyết thống kê về tỷ lệ
  • Ví dụ bài toán, cách giải và code về kiểm định giả thuyết thống kê về trung bình.

Người đọc bài viết này nên có những kiến thức cơ bản về phân bố chuẩn, cách tính trung bình, độ lệch chuẩn, và lập trình Python

Kiểm định giả thuyết thống kê [Hypothesis Testing]

Bài toán

Một nhà thần kinh học muốn kiểm tra ảnh hưởng của một loại thuốc đến phản xạ của động vật. Trong thí nghiệm tiêm thuốc vào chuột, kích thích thần kinh, sau đó kiểm tra thời gian phản xạ của chuột.
Nhà thần kinh học tiêm thuốc vào 100 con chuột. Với thí nghiệm trướ,c ông biết rằng: Nếu không tiêm thuốc, thời gian trung bình của thời gian phản xạ của chuột là 1.2 giây. Với thí nghiệm mới, thời gian phản xạ trung bình của chuột được tiêm thuốc là 1.05 giây, và độ lệch chuẩn là 0.5 giây.
Nhà thần kinh học quyết định rằng : Thuốc có tác dụng nếu thời gian phản xạ của chuột thấp hơn so với bình thường.
Giả sử phản xạ của chuột không thay đổi khi tiêm hoặc không thuốc. Nếu khả năng thời gian phản xạ trung bình của chuột tiêm thuốc thấp hơn 5%, ông sẽ kết luận là thuốc có tác dụng.
Hỏi thuốc có tác dụng hay không?

Tạo giả thuyết

Để giải bài toán kiểm định giả thuyết thống kê, đầu tiên ta phải định nghĩa 2 giả thuyết:

  • "Giả thuyết không" [null hypothesis] là giả thuyết nói rằng số liệu thống kê giống với suy đoán trước, không có gì mới.
  • "Giả thuyết nghịch" [alternative hypothesis] được viết dựa theo giả thuyết là số liệu thống kê đã thay đổi. Nếu giả thuyết này được chấp nhận thì đó là thông tin mới.

Ví dụ ở bài toán này giả thuyết sẽ được định nghĩa như sau:

  • Giả thuyết không: Đây là điều nhà thần kinh đã biết. Nhà thần kinh biết thời gian phản xạ trung bình của chuột là 1.2 giây. Giả thuyết không là kể cả nếu tiêm thuốc thì phản xạ của chuột cũng không có gì thay đổi.Nói một cách khác:

H0:thời gian phản xạ trung bình chuột tiêm thuốc = 1.2 giây.

  • Giả thuyết nghịch: Nếu giả thuyết này được chấp nhận thì đây là điều mới đối với nhà thần kinh họ. Nếu tiêm thuốc thì thời gian phản xạ nhỏ hơn so với bình thường.

Ha:thời gian phản xạ trung bình chuột tiêm thuốc < 1.2 giây.

Dựa vào các tính toán sau đây về nghiên cứu và mức ý nghĩa thống kê, ta sẽ đưa ra 1 trong 2 kết luận về giả thuyết:

  1. Bác bỏ giả thuyết không và chấp nhận giả thuyết nghịch
  2. Chúng ta thất bại trong việc bác bỏ giả thuyết không.

Tính z-score [hoặc t-score]

Một trong số những số liệu toán thống kê ta phải tính là z-score [hoặc t-score]. Các bạn có thể tự tìm hiểu thêm về số liệu này.
Z-score là số liệu thống kê cho biết: giá trị ta muốn tìm hiểu cách trung bình của phân bố chuẩn bằng bao nhiêu độ lệch chuẩn. Ví dụ z-score = 1 có nghĩa là giá trị bây giờ hơn trung bình 1 độ lệch chuẩn.

Công thức được viết như ở dưới đây:

z-score càng lớn thì giá trị mẫu của ta càng xa trung bình. Điều đấy cũng có nghĩa là với phân bố từ giả thuyết không, xác xuất ta có một mẫu có giá trị trung bình cách xa giá trị trung bình từ giả thuyết không rất thấp. Một giả thuyết khác xảy ra, hợp lý hơn giả thuyết không.

Với bài toán trên ta muốn tìm khả năng ta lấy một mẫu chuật có phản xạ 2.6 sẽ bằng khả năng độ lệch chuẩn trong mẫu có z-score 2.6 sử dụng CDF:

Ta muốn tính khả năng giá trị có độ lệch chuẩn lớn hơn z_score, nên ta phải tính 1 - CDF[z_score]
p_one_way_value = 1 - stats.norm.cdf[z_score]

Bây giờ chúng ta tính khả năng số liệu mẫu có z-score > 2.609z-score < -2.609.

# " khả năng số liệu có z-score > 2.6" = "khả năng giá trị có z-score 

Chủ Đề