Bootstrap có thể được xem như là một phương pháp chữa bệnh của Mt cho kích thước mẫu nhỏ không?


71

Câu hỏi này đã được kích hoạt bởi một cái gì đó tôi đọc trong sách giáo khoa thống kê cấp độ sau đại học và cũng (độc lập) nghe trong bài trình bày này tại một hội thảo thống kê. Trong cả hai trường hợp, câu lệnh đều nằm dọc theo dòng "vì kích thước mẫu khá nhỏ, chúng tôi quyết định thực hiện ước tính thông qua bootstrap thay vì (hoặc cùng với) phương thức tham số ".X

Họ không đi vào chi tiết, nhưng có lẽ lý do là như sau: Phương pháp giả định các dữ liệu theo một số tham số phân phối D . Trong thực tế, phân phối không chính xác là D , nhưng nó vẫn ổn miễn là cỡ mẫu đủ lớn. Vì trong trường hợp này, cỡ mẫu quá nhỏ, hãy chuyển sang bootstrap (không tham số) mà không đưa ra bất kỳ giả định phân phối nào. Vấn đề được giải quyết!XDD

Theo tôi, đó không phải là những gì bootstrap dành cho. Đây là cách tôi nhìn thấy: bootstrap có thể mang lại lợi thế khi ít nhiều rõ ràng rằng có đủ dữ liệu, nhưng không có giải pháp dạng đóng để nhận lỗi tiêu chuẩn, giá trị p và thống kê tương tự. Một ví dụ kinh điển là lấy CI cho hệ số tương quan được lấy một mẫu từ phân phối chuẩn bivariate: giải pháp dạng đóng tồn tại, nhưng nó rất phức tạp khi bootstrapping đơn giản hơn. Tuy nhiên, không có gì ngụ ý rằng bootstrap bằng cách nào đó có thể giúp một người thoát khỏi với một cỡ mẫu nhỏ.

Nhận thức của tôi có đúng không?

Nếu bạn thấy câu hỏi này thú vị, có một câu hỏi bootstrap cụ thể hơn, cụ thể hơn từ tôi:

Bootstrap: vấn đề quá mức

Tái bút: Tôi không thể giúp chia sẻ một ví dụ điển hình về cách tiếp cận bootstrap của LỚN. Tôi không tiết lộ tên của tác giả, nhưng anh ta là một trong những thế hệ cũ Quants phạm, người đã viết một cuốn sách về Tài chính định lượng năm 2004. Ví dụ được lấy từ đó.

Hãy xem xét vấn đề sau: giả sử bạn có 4 tài sản và 120 quan sát lợi nhuận hàng tháng cho mỗi tài sản. Mục tiêu là để xây dựng cdf 4 chiều chung của lợi nhuận hàng năm. Ngay cả đối với một tài sản duy nhất, nhiệm vụ dường như khó đạt được chỉ với 10 lần quan sát hàng năm, chứ chưa nói đến việc ước tính cdf 4 chiều. Nhưng đừng lo lắng, bộ khởi động trên máy tính xách tay sẽ giúp bạn giải quyết: lấy tất cả các quan sát 4 chiều có sẵn, lấy mẫu lại 12 với thay thế và kết hợp chúng để tạo ra một vectơ 4 chiều của Boot bootstraged một lần. Lặp lại 1000 lần đó và, lo và kìa, bạn đã có cho mình một mẫu bootstrap của Google với 1000 lợi nhuận hàng năm. Sử dụng mẫu này làm mẫu iid có kích thước 1000 cho mục đích ước tính cdf hoặc bất kỳ suy luận nào khác có thể được rút ra từ một lịch sử hàng nghìn.


18
Tôi nghe hoặc đọc những tình cảm tương tự như đoạn đầu tiên của bạn, nhưng tôi có xu hướng không đồng ý. Tôi thường không thấy bootstrapping là nhất thiết hữu ích trong các mẫu nhỏ. Sự biện minh của nó là không có triệu chứng / mẫu lớn, và trong nhiều trường hợp trong thực tế, hiệu suất mẫu nhỏ của nó có vấn đề; phạm vi bảo hiểm của các khoảng, ví dụ, thường khá khác với tỷ lệ danh nghĩa. Đó là một công cụ hữu ích khác nhưng giống như nhiều công cụ khác đã được báo trước trong nhiều năm qua, đó không phải là thuốc chữa bách bệnh mà một số người tưởng tượng ra. Tôi thực sự không nghĩ rằng đó là một giải pháp cho các mẫu rất nhỏ.
Glen_b

Trong cuốn sách của Simon Sheather (Hình 3.40) có một biểu đồ dòng hồi quy cho thấy bootstrap để suy luận khi kích thước mẫu không lớn và lỗi không được phân phối bình thường.
Tony Ladson

2
Câu trả lời cho câu hỏi trong đoạn thứ tư là có (hoặc ít nhất bạn sẽ nhận được tín dụng cho lập luận của mình nếu bạn đưa ra câu trả lời này trong bài kiểm tra trong lớp của tôi). Bạn đã kiểm tra cuộc thảo luận này ? Trong câu trả lời của tôi , tôi đã đưa ra một lời giải thích về các phép tính gần đúng mà bootstrap tạo ra và đưa ra một tham chiếu đến bài báo tâm trí mà mọi bootstrapper nên đọc để nhận thức được những hạn chế của phương thức. Thật tuyệt khi thấy các tài liệu tham khảo về sách / bài báo / bài thuyết trình đã kích hoạt câu hỏi của bạn
StasK

Không phải bootstrap chỉ cung cấp cho bạn một thuật ngữ bổ sung trong bản mở rộng edgeworth - giống như một xấp xỉ bình thường với một thuật ngữ điều chỉnh?
xác suất

Câu trả lời:


34

nn1nn

simfun <- function(n=5) {
    x <- rnorm(n)
    m.x <- mean(x)
    s.x <- sd(x)
    z <- m.x/(1/sqrt(n))
    t <- m.x/(s.x/sqrt(n))
    b <- replicate(10000, mean(sample(x, replace=TRUE)))
    c( t=abs(t) > qt(0.975,n-1), z=abs(z) > qnorm(0.975),
        z2 = abs(t) > qnorm(0.975), 
        b= (0 < quantile(b, 0.025)) | (0 > quantile(b, 0.975))
     )
}

out <- replicate(10000, simfun())
rowMeans(out)

Kết quả của tôi cho một lần chạy là:

     t      z     z2 b.2.5% 
0.0486 0.0493 0.1199 0.1631 

α


6
Câu cuối cùng của bạn làm tôi tò mò, vì vậy tôi đã thử điều này với ví dụ của bạn. Tôi đã sử dụng bootgói và nó cung cấp tất cả các khoảng thời gian có thể: khoảng xấp xỉ bình thường thứ tự đầu tiên, khoảng thời gian bootstrap cơ bản, khoảng thời gian bootstrap được sinh viên hóa, khoảng phần trăm bootstrap (mà mã của bạn đã cung cấp) và phần trăm bootstrap được điều chỉnh (BCa) khoảng thời gian. Các kết quả về cơ bản đều giống nhau (tỷ lệ loại bỏ khoảng 0,16 -17), ngoại trừ khoảng thời gian học sinh, có tỷ lệ loại bỏ danh nghĩa (0,05) (có ý nghĩa, vì nó giống như kiểm tra t tiêu chuẩn).
Wolfgang

2
@Wolfgang, cảm ơn vì đã thực hiện các mô phỏng bổ sung. Tôi hơi ngạc nhiên khi các khoảng thời gian khác không làm tốt hơn một chút, nhưng không ngạc nhiên khi chúng không đáp ứng mức 0,05.
Greg Snow

1
Vâng, tôi cũng hơi ngạc nhiên! Đôi khi trực giác của chúng ta thất bại. Đó là lý do tại sao thật tuyệt vời khi có thể viết một đoạn script nhỏ trong R trong vài phút, để nó chạy 10,000 \times 10,000lặp lại (mất vài phút để hoàn thành) và có thể kiểm tra mọi thứ. Và ví dụ của bạn cho thấy bootstrap có thể hoạt động khá tệ với các mẫu nhỏ ngay cả khi mọi thứ "đẹp" (nghĩa là dữ liệu trên thực tế là bình thường).
Wolfgang

Trên thực tế, vấn đề được thấy trong mô phỏng này chính xác là vấn đề tôi vừa hỏi ở đây và đã trả lời trong các bình luận của @whuber: stats.stackexchange.com/questions/323455/ . Do đó, tôi không nghĩ vấn đề là kích thước mẫu, nhưng vi phạm tính độc lập đối với suy luận tham số trong mỗi mẫu.
một nửa vượt qua

2
zt

14

Nếu bạn được cung cấp kích thước mẫu nhỏ (dưới dạng trung bình, "nhỏ" dường như phụ thuộc vào một số quy tắc thông thường cơ bản trong từng lĩnh vực nghiên cứu), sẽ không có bootstrap nào làm được điều kỳ diệu. Giả sử một cơ sở dữ liệu chứa ba quan sát cho mỗi trong hai biến đang được điều tra, không có suy luận sẽ có ý nghĩa. Theo kinh nghiệm của tôi, bootstrap không tham số (1.000 hoặc 10.000 lần lặp lại) hoạt động tốt trong việc thay thế kiểm tra t khi phân phối mẫu (ít nhất 10-15 quan sát mỗi lần) bị sai lệch và do đó các điều kiện tiên quyết cho kiểm tra t thông thường không được thỏa mãn. Ngoài ra, bất kể số lượng quan sát, bootstrap không tham số có thể là lựa chọn bắt buộc khi dữ liệu bị sai lệch tích cực, vì nó luôn xảy ra đối với chi phí chăm sóc sức khỏe.


1
bootstrap có thể là một lựa chọn bắt buộc khi dữ liệu bị sai lệch tích cực - tại sao không sử dụng phân phối lệch chuẩn hoặc tương tự thay thế? SAS và R có rất nhiều sự lựa chọn.
James

1
Câu trả lời của James đáng để xem xét. Tuy nhiên, vấn đề thông thường tôi gặp phải với dữ liệu chi phí ghi nhật ký là chuyển đổi ngược về số liệu ban đầu trước khi trình bày kết quả cho những người ra quyết định. Bạn có thể tránh vấn đề này với bootstrap không tham số.
Carlo Lazzaro

Carlo, vì bạn có kinh nghiệm về chuyển đổi nhật ký, bạn có thể muốn trả lời một câu hỏi khác của tôi (có tiền thưởng 50 điểm): stats.stackexchange.com/a/111932/54099
James

James, tôi đã đưa ra một câu trả lời hấp dẫn cho câu hỏi của bạn vài phút trước.
Carlo Lazzaro

tχ12

13

Các câu trả lời khác chỉ trích hiệu suất của khoảng tin cậy bootstrap , chứ không phải bootstrap. Đây là một vấn đề khác nhau.

Nếu ngữ cảnh của bạn thỏa mãn các điều kiện đều đặn cho sự hội tụ của phân phối bootstrap (hội tụ về số lượng mẫu bootstrap), thì phương thức sẽ hoạt động nếu bạn sử dụng một mẫu bootstrap đủ lớn.

Trong trường hợp bạn thực sự muốn tìm các vấn đề về việc sử dụng bootstrap không theo tỷ lệ, đây là hai vấn đề:

(1) Các vấn đề với việc lấy mẫu lại.

Một trong những vấn đề với bootstrap, cho các mẫu nhỏ hoặc lớn, là bước lấy mẫu lại. Không phải lúc nào cũng có thể lấy mẫu lại trong khi vẫn giữ cấu trúc (sự phụ thuộc, thời gian, ...) của mẫu. Một ví dụ về điều này là một quá trình chồng chất .

Giả sử rằng có một số nguồn độc lập tại mỗi sự kiện xảy ra theo thời gian. Khoảng thời gian giữa các sự kiện liên tiếp tại bất kỳ một nguồn nào được giả sử là các biến ngẫu nhiên độc lập tất cả có cùng phân phối, sao cho mỗi nguồn tạo thành một quy trình gia hạn của một loại quen thuộc. Đầu ra của các nguồn được kết hợp thành một đầu ra gộp.

Làm thế nào bạn sẽ lấy mẫu lại trong khi giữ cấu trúc phụ thuộc không xác định ?

(2) Các mẫu bootstrap hẹp và khoảng tin cậy của bootstrap cho các mẫu nhỏ .

Trong các mẫu nhỏ, tối thiểu và tối đa của các công cụ ước tính cho mỗi mẫu phụ có thể xác định một khoảng hẹp, khi đó điểm cuối bên phải và bên trái của bất kỳ khoảng tin cậy nào sẽ rất hẹp (trái với mẫu nhỏ!) Trong một số mô hình.

x1,x2Exp(λ)λ>0

set.seed(1)
x <- rexp(2,1)
# Maximum likelihood estimator
1/mean(x)

# Profile likelihood: provides a confidence interval with right-end point beyond the maximum inverse of the mean
Rp <- Vectorize(function(l) exp(sum(dexp(x,rate=l,log=T))-sum(dexp(x,rate=1/mean(x),log=T))))

curve(Rp,0,5)
lines(c(0,5),c(0.147,0.147),col="red")

λλ^=2/(x1+x2)

library(boot)
set.seed(1)
x <- rexp(2,1)
1/mean(x)
# Bootstrap interval: limited to the maximum inverse of the mean
f.boot <- function(data,ind) 1/mean(data[ind])
b.b <- boot(data=x, statistic=f.boot, R=100000)
boot.ci(b.b, conf = 0.95, type = "all")
hist(b.b$t)

x1x2


6

Bootstrap hoạt động tốt ở các cỡ mẫu nhỏ bằng cách đảm bảo tính chính xác của các thử nghiệm (ví dụ: mức ý nghĩa 0,05 danh nghĩa gần với kích thước thực tế của thử nghiệm), tuy nhiên bootstrap không cung cấp cho bạn thêm sức mạnh. Nếu bạn có một mẫu nhỏ, bạn có ít sức mạnh, kết thúc câu chuyện.

Các hồi quy tham số (mô hình tuyến tính) và bán đảo (GEE) có xu hướng có các tính chất mẫu nhỏ kém ... trước đây là kết quả của sự phụ thuộc lớn vào các giả định tham số, sau này do phóng đại các ước lượng lỗi tiêu chuẩn mạnh trong các mẫu nhỏ. Bootstrapping (và các thử nghiệm dựa trên việc lấy mẫu lại khác) thực hiện rất tốt trong những trường hợp đó.

Để dự đoán, bootstrapping sẽ cung cấp cho bạn các ước tính tốt hơn (trung thực hơn) về hiệu lực nội bộ so với xác nhận mẫu phân tách.

n


2
(ví dụ: mức ý nghĩa 0,05 danh nghĩa gần với kích thước thực tế của thử nghiệm), nhưng trong mã R ở trên chúng ta chỉ thấy rằng bootstrap không bảo toàn kích thước thử nghiệm, phải không?
James

Tôi thấy bạn đang đề cập đến câu trả lời được cung cấp bởi Greg Snow. Tôi đã rất ngạc nhiên với kết quả đó. Tôi sẽ cần phải kiểm tra lại sự thật của mình và chỉnh sửa câu trả lời của tôi. Cảm ơn.
AdamO
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.