Hi, I am

Ngô Tôn

I am a programmer.

Home / HCMUS / Probability and Statistics / Xây dựng khoảng tin cậy trong R

Xây dựng khoảng tin cậy trong R

1.  Xây dựng khoảng tin cậy cho tỉ lệ

Giả sử ta muốn khảo sát tỉ lệ giới tính trong một tổng thể (population) là tất cả cư dân của một thành phố. Từ tổng thể, ta thu thập được một mẫu dữ liệu ngẫu nhiên (random sample) gồm 100 người trong đó có 60 nữ và 40 nam. Dựa vào mẫu dữ liệu này, ta xây dựng khoảng tin cậy (confident interval) 95% cho tỉ lệ nữ của thành phố.

 

Các bước tính toán có thể thực hiện trong R như sau:

Hoặc có thể thực hiện nhanh bằng hàm prop.test như sau:

Lưu ý, vì prop.test dùng công thức khác (dựa trên phân phối Chi-bình phương) nên kết quả tính có khác chút xíu so với cách dùng công thức dựa trên phân phối chuẩn ở trên.

Xây dựng khoảng tin cậy bằng mô phỏng trong R:

Mô tả dữ liệu và thống kê tương ứng

Một mẫu bootstrap (bootstrap sample) là mẫu cùng cỡ được lấy có hoàn lại trên chính dữ liệu. Bằng cách lấy nhiều mẫu bootstrap và tính thống kê tương ứng, ta có tập kết quả thể hiện sự biến động của thống kê theo mẫu, gọi là phân phối bootstrap (bootstrap distribution). Kĩ thuật mô phỏng này được gọi là bootstrap (bootstrapping).

Chạy với số lượng mẫu bootstrap B đủ lớn thì phâp phối bootstrap có thể được dùng để “xấp xỉ” phân phối mẫu. Từ đó ta có thể lấy độ lệch chuẩn (standard deviation) của phân phối bootstrap để “xấp xỉ” cho sai số chuẩn của thống kê tương ứng và lấy khoảng phân vị (percentile) của phân phối bootstrap để “xấp xỉ” cho khoảng tin cậy của tham số tương ứng. Cũng lưu ý là mỗi lần chạy sẽ có kết quả khác nhau do ngẫu nhiên.

Chẳng hạn thử với B = 10000

Vậy sai số chuẩn xấp xỉ bằng bootstrap là 0.0488 và khoảng tin cậy 95% cho e dựa trên bootstrap là [0.50, 0.70]. Các kết quả này rất giống với các kết quả tính bằng công thức lý thuyết.

2.  Xây dựng khoảng tin cậy cho kì vọng

Giả sử ta muốn khảo sát chiều cao trung bình của một tổng thể là tất cả cư dân của một thành phố. Từ tổng thể, ta thu thập được một mẫu dữ liệu ngẫu nhiên gồm chiều cao của 40 người như bảng dưới. Dựa vào mẫu dữ liệu này, ta xây dựng khoảng tin cậy 95% cho chiều cao trung bình của tổng thể.

Bảng dữ liệu chiều cao 40 người (đơn vị mét)

1.56 1.47 1.59 1.65 1.62 1.78 1.69 1.49 1.92 1.55
1.65 1.52 1.65 1.60 1.71 1.48 1.69 1.65 1.59 1.74
1.70 1.61 1.58 1.65 1.75 1.65 1.46 1.53 1.59 1.62
1.60 1.55 1.57 1.46 1.57 1.63 1.46 1.68 1.53 1.48

 

Các bước tính toán có thể thực hiện trong R như sau:

data <- c(1.56, 1.47, 1.59, 1.65, 1.62, 1.78, 1.69, 1.49, 1.92, 1.55,
1.65, 1.52, 1.65, 1.60, 1.71, 1.48, 1.69, 1.65, 1.59, 1.74,
1.70, 1.61, 1.58, 1.65, 1.75, 1.65, 1.46, 1.53, 1.59, 1.62,
1.60, 1.55, 1.57, 1.46, 1.57, 1.63, 1.46, 1.68, 1.53, 1.48)
Hoặc có thể thực hiện nhanh bằng hàm t.test như sau:
Xây dựng khoảng tin cậy bằng mô phỏng trong R:

Với dữ liệu đã được nhập như trên, ta mô tả thêm thống kê tương ứng (ở đây là trung bình mẫu) và hàm thực hiện bootstrap như phần 1

Chạy thử với B = 10000

Vậy sai số chuẩn xấp xỉ bằng bootstrap là 0.0153 và khoảng tin cậy 95% cho µ dựa trên bootstrap là [1.58, 1.64]. Các kết quả này rất giống với các kết quả tính bằng công thức lý thuyết.

Lưu ý là code chạy mô phỏng trong phần 2 này hoàn toàn giống code chạy mô phỏng trong phần 1, chỉ khác hàm tính thống kê (ở đây là trung bình mẫu so với phần 1 là tỉ lệ mẫu).

3.  Xây dựng khoảng tin cậy cho trung vị

Giả sử cùng tổng thể và mẫu dữ liệu ở phần 2 nhưng ta muốn xây dựng khoảng tin cậy 95% cho trung vị (median) thay vì trung bình của chiều cao. Mặc dù trung bình thường được sử dụng như là con số mô tả trọng tâm của phân phối, nó lại rất nhạy cảm với ngoại lệ (outlier). Nghĩa là, trung bình thay đổi rất nhiều khi mẫu dữ liệu có ngoại lệ. Chẳng hạn trong mẫu dữ liệu ở phần 2 ta có một dữ liệu là 1.92, lớn hơn rất nhiều so với các dữ liệu còn lại. (Trong trường hợp này, đây có thể là chiều cao của một người nước ngoài, đã bị lấy mẫu nhầm:)).

Trong những trường hợp như thế này ta có thể dùng trung vị là một thống kê ít bị ảnh hưởng bởi ngoại lệ. Việc xây dựng khoảng tin cậy cho trung vị phức tạp hơn cho trung bình. Tuy nhiên, với phương pháp tổng quát và đơn giản như bootstrap, ta dễ dàng làm được điều này.

Với dữ liệu và đoạn mã bootstrap như phần 2, ta chỉ cần sửa lại thống kê tương ứng để tính trung vị của mẫu thay vì trung bình

Chạy thử với B = 10000

Vậy sai số chuẩn và khoảng tin  cậy 95% cho trung vị xấp  xỉ bằng bootstrap  là 0.0185  và    [1.57, 1.65]. Lưu ý là code chạy mô phỏng trong phần này hoàn toàn giống code chạy mô phỏng trong 2 phần trên, chỉ khác hàm tính thống kê (ở đây là trung vị mẫu).

 

About ngoton

Ngô Tôn is a programmer with passion for tailored software solutions. Comes with 7+ years of IT experience, to execute beautiful front-end experiences with secure and robust back-end solutions.

Leave a Reply

avatar
  Subscribe  
Notify of