Bootstrapping là một phương pháp lấy mẫu lại để ước tính phân phối lấy mẫu của các hệ số hồi quy của bạn và do đó tính toán các lỗi tiêu chuẩn / khoảng tin cậy của các hệ số hồi quy của bạn. Bài này có một lời giải thích tốt đẹp. Để thảo luận về bao nhiêu bản sao bạn cần, xem bài viết này.
- nlần Vì vậy, bạn sẽ kết thúc với 10.000 hệ số hồi quy khác nhau. Các hệ số 10.000 này sau đó có thể được sử dụng để tính toán mức độ tin cậy của chúng. Khi trình tạo số giả ngẫu nhiên được sử dụng, bạn chỉ cần đặt hạt giống thành một số tùy ý để đảm bảo rằng bạn có kết quả chính xác giống nhau mỗi lần (xem ví dụ bên dưới). Để thực sự có ước tính ổn định, tôi sẽ đề xuất hơn 1000 lần lặp lại, có thể là 10.000. Bạn có thể chạy bootstrap nhiều lần và xem liệu các ước tính có thay đổi nhiều hay không dù bạn thực hiện sao chép 1000 hay 10.000. Trong tiếng Anh đơn giản: bạn nên thực hiện các bản sao cho đến khi bạn đạt được sự hội tụ. Nếu ước tính bootstrap của bạn khác nhau giữa các ước tính của bạn và mô hình đơn lẻ được quan sát, điều này có thể chỉ ra rằng mô hình quan sát không phản ánh đúng cấu trúc của mẫu của bạn.
boot
R
, ví dụ, đưa ra "độ lệch" là sự khác biệt giữa các hệ số hồi quy của mô hình đơn của bạn và giá trị trung bình của các mẫu bootstrap.
- Khi thực hiện bootstrap, bạn không quan tâm đến một mẫu bootstrap duy nhất, nhưng trong việc phân phối số liệu thống kê (ví dụ: hệ số hồi quy) qua, ví dụ, 10.000 mẫu bootstrap.
- Tôi muốn nói rằng 10.000 là tốt hơn 1000. Với các Máy tính hiện đại, điều này không gây ra vấn đề gì. Trong ví dụ dưới đây, PC của tôi mất khoảng 45 giây để vẽ 10.000 mẫu. Điều này thay đổi với kích thước mẫu của bạn trong khóa học. Cỡ mẫu của bạn càng lớn, số lần lặp càng cao để đảm bảo rằng mọi quan sát đều được tính đến.
- Bạn có ý nghĩa gì "kết quả thay đổi mỗi lần"? Hãy nhớ lại rằng trong mỗi bước bootstrap, các quan sát mới được rút ra với sự thay thế. Do đó, bạn có khả năng kết thúc với các hệ số hồi quy hơi khác nhau vì các quan sát của bạn khác nhau. Nhưng như tôi đã nói: bạn không thực sự quan tâm đến kết quả của một mẫu bootstrap duy nhất. Khi số lượng bản sao của bạn đủ cao, bootstrap sẽ mang lại khoảng tin cậy và ước tính điểm rất giống nhau mỗi lần.
Đây là một ví dụ trong R
:
library(boot)
mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")
head(mydata)
mydata$rank <- factor(mydata$rank)
my.mod <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
summary(my.mod)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.989979 1.139951 -3.500 0.000465 ***
gre 0.002264 0.001094 2.070 0.038465 *
gpa 0.804038 0.331819 2.423 0.015388 *
rank2 -0.675443 0.316490 -2.134 0.032829 *
rank3 -1.340204 0.345306 -3.881 0.000104 ***
rank4 -1.551464 0.417832 -3.713 0.000205 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# Set up the non-parametric bootstrap
logit.bootstrap <- function(data, indices) {
d <- data[indices, ]
fit <- glm(admit ~ gre + gpa + rank, data = d, family = "binomial")
return(coef(fit))
}
set.seed(12345) # seed for the RNG to ensure that you get exactly the same results as here
logit.boot <- boot(data=mydata, statistic=logit.bootstrap, R=10000) # 10'000 samples
logit.boot
Bootstrap Statistics :
original bias std. error
t1* -3.989979073 -7.217244e-02 1.165573039
t2* 0.002264426 4.054579e-05 0.001146039
t3* 0.804037549 1.440693e-02 0.354361032
t4* -0.675442928 -8.845389e-03 0.329099277
t5* -1.340203916 -1.977054e-02 0.359502576
t6* -1.551463677 -4.720579e-02 0.444998099
# Calculate confidence intervals (Bias corrected ="bca") for each coefficient
boot.ci(logit.boot, type="bca", index=1) # intercept
95% (-6.292, -1.738 )
boot.ci(logit.boot, type="bca", index=2) # gre
95% ( 0.0000, 0.0045 )
boot.ci(logit.boot, type="bca", index=3) # gpa
95% ( 0.1017, 1.4932 )
boot.ci(logit.boot, type="bca", index=4) # rank2
95% (-1.3170, -0.0369 )
boot.ci(logit.boot, type="bca", index=5) # rank3
95% (-2.040, -0.629 )
boot.ci(logit.boot, type="bca", index=6) # rank4
95% (-2.425, -0.698 )
Bootstrap-ouput hiển thị các hệ số hồi quy ban đầu ("gốc") và độ lệch của chúng, đó là sự khác biệt giữa các hệ số ban đầu và các hệ số khởi động. Nó cũng đưa ra các lỗi tiêu chuẩn. Lưu ý rằng chúng lớn hơn một chút so với các lỗi tiêu chuẩn ban đầu.
Từ các khoảng tin cậy, độ lệch được hiệu chỉnh ("bca") thường được ưu tiên. Nó cung cấp cho các khoảng tin cậy trên quy mô ban đầu. Đối với khoảng tin cậy cho tỷ lệ cược, chỉ cần lũy thừa giới hạn độ tin cậy.