Sử dụng lỗi tiêu chuẩn của phân phối bootstrap


19

(bỏ qua mã R nếu cần, vì câu hỏi chính của tôi là độc lập với ngôn ngữ)

Nếu tôi muốn xem xét tính biến thiên của một thống kê đơn giản (ví dụ: mean), tôi biết tôi có thể làm điều đó thông qua lý thuyết như:

x = rnorm(50)

# Estimate standard error from theory
summary(lm(x~1))
# same as...
sd(x) / sqrt(length(x))

hoặc với bootstrap như:

library(boot)

# Estimate standard error from bootstrap
(x.bs = boot(x, function(x, inds) mean(x[inds]), 1000))
# which is simply the standard *deviation* of the bootstrap distribution...
sd(x.bs$t)

Tuy nhiên, điều tôi băn khoăn là, nó có hữu ích / hợp lệ (?) Để xem xét lỗi tiêu chuẩn của phân phối bootstrap trong một số tình huống không? Tình huống tôi đang xử lý là một hàm phi tuyến tương đối ồn, chẳng hạn như:

# Simulate dataset
set.seed(12345)
n   = 100
x   = runif(n, 0, 20)
y   = SSasymp(x, 5, 1, -1) + rnorm(n, sd=2)
dat = data.frame(x, y)

Ở đây, mô hình thậm chí không hội tụ bằng cách sử dụng bộ dữ liệu gốc,

> (fit = nls(y ~ SSasymp(x, Asym, R0, lrc), dat))
Error in numericDeriv(form[[3L]], names(ind), env) : 
  Missing value or an infinity produced when evaluating the model

vì vậy các số liệu thống kê mà tôi quan tâm thay vào đó là các ước tính ổn định hơn về các tham số nls này - có lẽ là phương tiện của chúng trên một số bản sao bootstrap.

# Obtain mean bootstrap nls parameter estimates
fit.bs = boot(dat, function(dat, inds)
              tryCatch(coef(nls(y ~ SSasymp(x, Asym, R0, lrc), dat[inds, ])),
                       error=function(e) c(NA, NA, NA)), 100)
pars = colMeans(fit.bs$t, na.rm=T)

Thực tế, đây là những gì tôi đã sử dụng để mô phỏng dữ liệu gốc:

> pars
[1]  5.606190  1.859591 -1.390816

Một phiên bản âm mưu trông như:

# Plot
with(dat, plot(x, y))

newx = seq(min(x), max(x), len=100)
lines(newx, SSasymp(newx, pars[1], pars[2], pars[3]))

lines(newx, SSasymp(newx, 5, 1, -1), col='red')
legend('bottomright', c('Actual', 'Predicted'), bty='n', lty=1, col=2:1)

nhập mô tả hình ảnh ở đây

Bây giờ, nếu tôi muốn tính biến thiên của các ước tính tham số ổn định này , tôi nghĩ rằng tôi có thể, giả sử tính quy tắc của phân phối bootstrap này, chỉ cần tính toán các lỗi tiêu chuẩn của chúng:

> apply(fit.bs$t, 2, function(x) sd(x, na.rm=T) / sqrt(length(na.omit(x))))
[1] 0.08369921 0.17230957 0.08386824

Đây có phải là một cách tiếp cận hợp lý? Có một cách tiếp cận chung tốt hơn để suy luận về các tham số của các mô hình phi tuyến không ổn định như thế này? (Tôi cho rằng thay vào đó tôi có thể thực hiện một lớp thay đổi thứ hai ở đây, thay vì dựa vào lý thuyết cho bit cuối cùng, nhưng điều đó có thể mất rất nhiều thời gian tùy thuộc vào mô hình. sẽ hữu ích cho mọi thứ, vì chúng sẽ tiến tới 0 nếu tôi chỉ tăng số lần sao chép bootstrap.)

Rất cám ơn, và nhân tiện, tôi là một kỹ sư vì vậy xin hãy tha thứ cho tôi là một người mới làm quen ở đây.

Câu trả lời:


13

Có một số vấn đề trong câu hỏi này. Đầu tiên, có một câu hỏi là liệu trung bình bootstrapping sẽ là công cụ ước tính hợp lý ngay cả khi một số công cụ ước tính bootstrapping riêng lẻ không thể tính toán được (thiếu sự hội tụ, không tồn tại của các giải pháp). Thứ hai, cho rằng các công cụ ước tính bootstrapping là hợp lý, có một câu hỏi làm thế nào để có được khoảng tin cậy hoặc có lẽ chỉ là lỗi tiêu chuẩn cho các ước tính này.

--

Tuy nhiên, mục đích trong câu hỏi là để tạo ra các ước tính ngay cả trong trường hợp thuật toán tính toán các ước tính đôi khi có thể bị lỗi hoặc đôi khi công cụ ước tính đôi khi không được xác định. Như một cách tiếp cận chung, có một vấn đề:

  • Tính trung bình các ước tính bootstrapping trong khi vứt bỏ một cách mù quáng các mẫu bootstrapping mà các ước tính không thể tính toán được nói chung sẽ cho kết quả sai lệch.

Làm thế nào nghiêm trọng vấn đề chung là phụ thuộc vào một số điều. Chẳng hạn, mức độ thường xuyên của ước tính là không thể tính toán được và liệu phân phối có điều kiện của mẫu được đưa ra mà ước tính không thể tính toán được khác với phân phối có điều kiện của mẫu cho rằng ước tính có thể tính toán được. Tôi sẽ không đề nghị sử dụng phương pháp.

Xθ^θ^(X)Y

θ~(X)= =E(θ^(Y)|X,Một(X))
Một(X)Xθ^(Y)Quốc hội-XMột(X)θ~(X)

θ^(Y)XMột(X)θ~(X)

Một(X)θ~(X)

Chỉnh sửa :

Ước tính và độ chính xác của giấy rất đẹp sau khi lựa chọn mô hình của Efron đưa ra một phương pháp chung để ước tính lỗi tiêu chuẩn của công cụ ước tính đóng gói mà không sử dụng lớp bootstrapping thứ hai. Bài viết không giải quyết rõ ràng với các công cụ ước tính đôi khi không thể tính toán được.


Cảm ơn câu trả lời tuyệt vời. Điểm trên thiên vị là đặc biệt tốt. Bạn có thể tưởng tượng một trường hợp cực đoan trong đó đám mây điểm hoàn toàn đồng nhất, tiết kiệm cho một tập hợp các điểm xa phù hợp với mô hình rất độc đáo. Phần lớn các sự nlsphù hợp có thể thất bại, nhưng, trong số những điều phù hợp, sự thiên vị sẽ rất lớn và các lỗi tiêu chuẩn / CIs được dự đoán là nhỏ. nlsBootsử dụng một yêu cầu đặc biệt là 50% phù hợp thành công, nhưng tôi đồng ý với bạn rằng sự tương đồng (dis) của các bản phân phối có điều kiện cũng là một mối quan tâm không kém.
John Colby

(Tôi sẽ cố gắng cung cấp cho bạn phần thưởng vào ngày mai nếu trang web này cho phép tôi thích SO)
John Colby
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.