Có, bạn có thể xấp xỉ bởi P ( ˉ X * n ≤ x ) nhưng nó không phải là tối ưu. Đây là một hình thức của bootstrap phần trăm. Tuy nhiên, bootstrap phần trăm không hoạt động tốt nếu bạn đang tìm cách suy luận về dân số trừ khi bạn có cỡ mẫu lớn. (Nó hoạt động tốt với nhiều vấn đề suy luận khác bao gồm khi kích thước mẫu nhỏ.) Tôi lấy kết luận này từ Thống kê hiện đại về khoa học xã hội và hành vi của Wilcox , CRC Press, 2012. Một bằng chứng lý thuyết nằm ngoài tôi tôi sợ .P ( X¯n≤ x )P ( X¯*n≤ x )
Một biến thể của phương pháp định tâm đi vào bước tiếp theo và chia tỷ lệ thống kê bootstrap trung tâm của bạn với độ lệch chuẩn và cỡ mẫu lại, tính toán theo cách tương tự như thống kê. Các lượng tử từ phân phối các thống kê t này có thể được sử dụng để xây dựng khoảng tin cậy hoặc thực hiện kiểm tra giả thuyết. Đây là phương pháp bootstrap-t và nó cho kết quả vượt trội khi suy luận về giá trị trung bình.
Đặt là độ lệch chuẩn mẫu lại dựa trên mẫu lại bootstrap, sử dụng n-1 làm mẫu số; và s là độ lệch chuẩn của mẫu ban đầu. Để choS*
T*= = X¯*n- X¯S*/ n√
Các 97.5th và 2.5th percentiles của sự phân bố mô phỏng của có thể làm cho một khoảng tin cậy cho μ theo:T*μ
X¯- T*0,975Sn√, X¯- T*0,025Sn√
Hãy xem xét các kết quả mô phỏng dưới đây, cho thấy rằng với phân phối hỗn hợp bị sai lệch, các khoảng tin cậy từ phương pháp này chứa giá trị thực thường xuyên hơn so với phương pháp bootstrap phần trăm hoặc phương pháp truyền thống của thống kê không có bootstrapping.
compare.boots <- function(samp, reps = 599){
# "samp" is the actual original observed sample
# "s" is a re-sample for bootstrap purposes
n <- length(samp)
boot.t <- numeric(reps)
boot.p <- numeric(reps)
for(i in 1:reps){
s <- sample(samp, replace=TRUE)
boot.t[i] <- (mean(s)-mean(samp)) / (sd(s)/sqrt(n))
boot.p[i] <- mean(s)
}
conf.t <- mean(samp)-quantile(boot.t, probs=c(0.975,0.025))*sd(samp)/sqrt(n)
conf.p <- quantile(boot.p, probs=c(0.025, 0.975))
return(rbind(conf.t, conf.p, "Trad T test"=t.test(samp)$conf.int))
}
# Tests below will be for case where sample size is 15
n <- 15
# Create a population that is normally distributed
set.seed(123)
pop <- rnorm(1000,10,1)
my.sample <- sample(pop,n)
# All three methods have similar results when normally distributed
compare.boots(my.sample)
Điều này đưa ra như sau (conf.t là phương thức bootstrap t; conf.p là phương thức bootstrap phần trăm).
97.5% 2.5%
conf.t 9.648824 10.98006
conf.p 9.808311 10.95964
Trad T test 9.681865 11.01644
Với một ví dụ duy nhất từ phân phối bị lệch:
# create a population that is a mixture of two normal and one gamma distribution
set.seed(123)
pop <- c(rnorm(1000,10,2),rgamma(3000,3,1)*4, rnorm(200,45,7))
my.sample <- sample(pop,n)
mean(pop)
compare.boots(my.sample)
Điều này cho sau đây. Lưu ý rằng "conf.t" - phiên bản bootstrap t - cho khoảng tin cậy rộng hơn so với hai phiên bản còn lại. Về cơ bản, nó là tốt hơn để đáp ứng với sự phân phối bất thường của dân số.
> mean(pop)
[1] 13.02341
> compare.boots(my.sample)
97.5% 2.5%
conf.t 10.432285 29.54331
conf.p 9.813542 19.67761
Trad T test 8.312949 20.24093
Cuối cùng, đây là một ngàn mô phỏng để xem phiên bản nào cung cấp khoảng tin cậy thường đúng nhất:
# simulation study
set.seed(123)
sims <- 1000
results <- matrix(FALSE, sims,3)
colnames(results) <- c("Bootstrap T", "Bootstrap percentile", "Trad T test")
for(i in 1:sims){
pop <- c(rnorm(1000,10,2),rgamma(3000,3,1)*4, rnorm(200,45,7))
my.sample <- sample(pop,n)
mu <- mean(pop)
x <- compare.boots(my.sample)
for(j in 1:3){
results[i,j] <- x[j,1] < mu & x[j,2] > mu
}
}
apply(results,2,sum)
Điều này đưa ra kết quả dưới đây - các con số là số lần trong số 1.000 mà khoảng tin cậy chứa giá trị thực của dân số mô phỏng. Lưu ý rằng tỷ lệ thành công thực sự của mọi phiên bản thấp hơn đáng kể 95%.
Bootstrap T Bootstrap percentile Trad T test
901 854 890