Mẫu lạ trong ước tính khoảng tin cậy độ lệch chuẩn thông qua bootstrapping


8

Tôi muốn ước tính khoảng tin cậy cho độ lệch chuẩn cho một số dữ liệu. Mã R trông như sau:

library(boot)
sd_boot <- function (x, ind) {                
        res <- sd(x$ReadyChange[ind], na.rm = TRUE)
        return(res)            
}
data_boot <- boot::boot(data, statistic = sd_boot, R = 10000)
plot(data_boot)

Và tôi đã có cốt truyện tiếp theo: nhập mô tả hình ảnh ở đây

Tôi bị mắc kẹt với việc diễn giải biểu đồ bootstraps này một cách chính xác. Mỗi tập hợp dữ liệu tương tự khác cho thấy phân phối bình thường của ước tính bootstrap ... Nhưng không phải điều này. Nhân tiện, đây là dữ liệu thô thực tế:

> data$ReadyChange
 [1] 27.800000  8.985046 11.728021  8.830856  5.738600 12.028310  7.771528  9.208924 11.778611  6.024259  5.969931  6.063484  4.915764
[14] 12.027639  9.111146 13.898171 12.921377  6.916667 10.764479  6.875000 12.875000  7.017917  9.750000  7.921782 12.911551  6.000000

Bạn có thể vui lòng giúp tôi giải thích về mẫu bootstrap này không?


1
Tôi không thể sao chép kết quả của bạn ngay cả khi sao chép và dán mã. Tôi nhận được một biểu đồ phân phối rất bình thường.
jwimberley

1
@jwimberley, có một vectơ dữ liệu sai ... Cảm ơn bạn đã dành thời gian khám phá nó. Dữ liệu thực tế là trong bài dưới EDIT.
dùng

2
mẫu xác nhận cho dữ liệu mới. Tôi đoán là nó được gây ra bởi datapoint 27.800000, lớn hơn tất cả những cái khác.
psarka

2
@psarka Khẳng định điều đó. Loại bỏ điểm này giúp loại bỏ các hành vi kỳ quặc. Độ lệch chuẩn của sd không có điểm này là 3.02, nhưng 4.24 với điểm này. Điều đó giải thích các đỉnh ở 3.02 và 4.24 (điểm không bao gồm trong bootstrap; điểm được bao gồm trong bootstrap). Các cộng hưởng cao hơn là khi điểm này được bao gồm nhiều lần.
jwimberley

1
@mdewey Điều này dựa trên một quan sát của psarka mà tôi không muốn lấy tín dụng.
jwimberley

Câu trả lời:


21

Bạn có thể có một lỗi trong mã của mình hoặc thư viện bootstrap làm một việc khác ngoài mong đợi.

Biên tập:

Sau khi dữ liệu được sửa được cung cấp, rõ ràng là mẫu được gây ra bởi một ngoại lệ, với mỗi đỉnh tương ứng với số lần khác nhau mà ngoại lệ được chọn vào một mẫu.

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


1
Ditto in R: Sau khi tạo dữ liệu vectơ 21 phần tử theo cách rõ ràng, tạo một ma trận các chỉ số với inds <- matrix(sample(21,10000*21,replace=TRUE),10000,21)và sau đó tra cứu các phần tử dữ liệu từ mỗi cột và tìm độ lệch chuẩn với hist(apply(inds,1,function(ind){sd(data[ind])})). Không có nhiều đỉnh.
jwimberley

1
Câu trả lời này giải thích và minh họa vấn đề rất tốt, nhưng không cung cấp hướng dẫn hay lời khuyên nào về những gì cần làm trong thực tế.
amip

8

Tôi ngần ngại đặt câu hỏi này xuống như một câu trả lời, nhưng với tôi điều này dường như được gây ra bởi một lượng nhỏ các biểu dữ liệu mà bạn dựa vào bootstrap của bạn (21, sửa tôi nếu tôi sai).

Nói chính xác hơn, đối với tôi, dường như 21 giá trị cụ thể này , từ đó bạn lấy mẫu, chỉ có một vài độ lệch chuẩn thường xuyên có thể (các đỉnh trong biểu đồ của bạn). Nếu mẫu cơ sở lớn hơn và đa dạng hơn, biểu đồ kết quả sẽ mượt mà hơn nhiều (và có thể giống với phân phối bình thường hơn bạn mong đợi).

Trên một lưu ý chung và giả sử tôi ở ngay tại đây, đây là một ví dụ tốt để hiển thị bootstrapping không giải quyết được các vấn đề khi có một mẫu nhỏ.


3
Tôi thích giải thích như thế này, nhưng tôi không thể tái tạo kết quả!
Nick Cox

1
@NickCox Bạn hoàn toàn đúng khi chỉ ra điều đó. Tôi đã nhập câu trả lời này mà không cố gắng sao chép những kết quả này. Như có thể thấy trong câu trả lời của Psarka (mà tôi đã nêu lên ngay lập tức) chắc chắn đã có một số lỗi mã hóa. Do đó, tôi cũng đã học được điều gì đó (để thử và tái tạo một vấn đề như vậy).
IWS

Điều quan trọng nữa là bootstrap nhất thiết phải phụ thuộc vào dữ liệu gốc.
Nick Cox

Tất nhiên đó là, bạn đang làm gì?
IWS

1
Hỗ trợ bạn! Cụ thể, lập luận rằng các đồ tạo tác là có thể và sự cảnh giác là cần thiết.
Nick Cox
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.