Bối cảnh : Tôi có bằng tiến sĩ về tâm lý học xã hội, nơi thống kê lý thuyết và toán học hầu như không được đề cập trong các khóa học định lượng của tôi. Thông qua các sinh viên đại học và lớp, tôi đã được dạy (giống như nhiều bạn trong các ngành khoa học xã hội, có lẽ) thông qua khuôn khổ thường xuyên "cổ điển". Bây giờ, tôi cũng yêu R và sử dụng các phương thức mô phỏng để xác minh rằng các phương thức hoạt động theo cáchý nghĩa với tôi hơn là bằng chứng toán học (một lần nữa: nền tảng trong một khoa học xã hội định lượng, không phải là thống kê lý thuyết). Các phương pháp thường xuyên và phương pháp mô phỏng cùng nhau tạo ra rất nhiều ý nghĩa đối với tôi. Bởi vì những người thường xuyên xem xác suất là tỷ lệ cược dài hạn (ví dụ: Nếu tôi làm điều này với số lần lớn tùy ý và nó xảy ra 50% thời gian, thì có xác suất 50%). Chúng ta có thể mô phỏng quá trình dài này bằng các phương pháp Monte Carlo!
Biến chứng : Từ khi chưa tốt nghiệp, tôi đã rất biết về các phương pháp Bayes và luôn có những người trong cuộc gọi tôi đến bên Bayes, nói rằng kết quả dễ giải thích hơn, rằng chúng tôi có xác suất cho một giả thuyết thay vì dữ liệu đưa ra một giả thuyết, v.v. Tôi thực sự thích điều này và tham gia một lớp Bayes, đọc một số sách và giấy tờ của Bayes, và bây giờ tôi khá quen thuộc với Stan và các gói R liên quan của nó.
Vào Mayo : Sau khi nghĩ "Bayesian có lẽ là con đường của tương lai", tôi đọc suy luận thống kê của Deborah Mayo là Thử nghiệm nghiêm trọng . Cô ấy nói rằng cô ấy không chọn một bên ở đầu cuốn sách, nhưng cô ấy làm: Cô ấy là người thường xuyên, và rất nhiều cuốn sách đang bảo vệ các phương pháp thường xuyên. Tôi không nhất thiết muốn tham gia vào một cuộc thảo luận về việc liệu chúng ta có nghĩ rằng cách cô ấy thấy bằng chứng là hợp lệ hay không, nhưng điều này khiến tôi suy nghĩ: Bayes có thực sự là tất cả những gì nó được quảng cáo không? Ý tôi là, đám đông Bayes bị rạn nứt đến mức tôi thậm chí không biết cách "đúng" để phân tích dữ liệu trong khuôn khổ Bayes thường xuyên. Thông thường, tôi sẽ chỉ sử dụngrstanarm
và ước tính điểm hiện tại và khoảng tin cậy ... thường liên kết chặt chẽ với ước tính thường xuyên và khoảng tin cậy. Tôi có thể so sánh mô hình, nhưng tôi luôn sợ mô tả các yếu tố Bayes là so sánh xác suất sau, v.v.
Suy nghĩ nhiều hơn : Điều tôi vẫn nghĩ qua cuốn sách của Mayo là: Có một cách chúng ta có thể sử dụng máy tính để đảm bảo các phương pháp thường xuyên của chúng ta hoạt động, bởi vì xác suất là những gì chúng ta thấy trong thời gian dài và chúng ta có thể mô phỏng điều đó. Bayes thậm chí không thể đồng ý về xác suất thực sự là gì, dường như, tùy thuộc vào trường Bayes (mặc định, chủ quan, v.v.). Điều này dẫn tôi đến câu hỏi của tôi:
Câu hỏi : Làm thế nào để người Bayes xác minh rằng các phương pháp của họ xác định độ không đảm bảo đúng (nghĩa là tính các khoảng tin cậy hợp lệ và phân phối sau) bằng phương pháp mô phỏng Monte Carlo, nếu xác suất không được xác định là tỷ lệ trong thời gian dài?
Ví dụ : Tôi tạo một trình tạo dữ liệu. Đây chỉ là mô phỏng từ bản phân phối Bernoulli với xác suất 0,5:
set.seed(1839)
p <- .50
n <- 100
gen_dat <- function(n, p) {
rbinom(n, 1, p)
}
Bây giờ, giả sử tôi muốn đảm bảo rằng khoảng tin cậy trong hồi quy logistic thực sự hợp lệ. Tôi có thể mô phỏng hồi quy một số lượng lớn thời gian và đảm bảo rằng giá trị dân số thực tế nằm trong khoảng tin cậy 95% 95% thời gian. Đây là một mô hình chỉ đánh chặn, vì vậy tôi chỉ muốn đảm bảo rằng tôi đang ước tính p
chính xác:
set.seed(1839)
iter <- 10000
results <- sapply(seq_len(iter), function(zzz) {
mod <- glm(gen_dat(n, p) ~ 1, binomial)
conf <- suppressMessages(confint(mod))
log(p / (1 - p)) < max(conf) & log(p / (1 - p)) > min(conf)
})
mean(results)
Điều này mất một phút để chạy, nhưng chúng tôi kết thúc với mean(results)
cuộc gọi cho chúng tôi 0.9416
. Đây là khoảng 95% và tôi tự tin nói rằng glm
lệnh đang mô tả sự không chắc chắn một cách hợp lệ. Tôi chắc chắn rằng nó sẽ tiến gần hơn đến mũi ngay 95% nếu tôi bật lên iter
và muốn đợi ở đây với máy tính xách tay của tôi lâu hơn.
Mặt khác, hãy phù hợp với một mô hình Bayes cho cùng một điều:
library(rstanarm)
set.seed(1839)
dat <- data.frame(y = gen_dat(n, p))
stan_mod <- stan_glm(y ~ 1, binomial, dat)
summary(stan_mod)
Một phần, điều này mang lại cho tôi:
Estimates:
mean sd 2.5% 25% 50% 75% 97.5%
(Intercept) -0.1 0.2 -0.5 -0.2 -0.1 0.0 0.3
mean_PPD 0.5 0.1 0.3 0.4 0.5 0.5 0.6
log-posterior -73.0 0.7 -75.1 -73.1 -72.7 -72.5 -72.5
Vì Bayes không định nghĩa xác suất là những gì chúng ta thấy trong thời gian dài, làm thế nào tôi có thể sử dụng các phương pháp mô phỏng để xác minh hơn stan_glm
là nắm bắt chính xác sự không chắc chắn? Đó là, làm thế nào tôi có thể tin tưởng rằng những khoảng đáng tin cậy này là hợp lệ, bằng cách sử dụng các phương pháp mô phỏng? Và ngay bây giờ, tôi thậm chí còn không xác định một người đi trước làm thế nào để việc đưa các linh mục vào đây, vì điều đó sẽ ảnh hưởng đến các biện pháp không chắc chắn của chúng ta?
Khi tôi đang cố gắng viết hồi quy beta với thành phần mô hình rào cản trong Stan từ đầu, tôi đã có người khuyên tôi: "Mô phỏng dữ liệu. Làm rất nhiều lần và các ước tính thực sự phải nằm trong khoảng đáng tin cậy khoảng 95 % thời gian. " Nhưng với tôi, điều đó đi ngược lại với chính điều mà người Bayes tin vào! Điều đó phụ thuộc vào sự hiểu biết thường xuyên về xác suất! Vậy làm thế nào một Bayesian thuyết phục tôi rằng khoảng thời gian đáng tin cậy mà tôi nhận được từ summary()
cuộc gọi đến mô hình của tôi là mô tả chính xác sự không chắc chắn, sử dụng các phương pháp mô phỏng?
Mục đích của câu hỏi : Đây là một ví dụ tầm thường, nhưng nhiều lần khách hàng cung cấp cho tôi những vấn đề khó khăn. Và tôi thử những thứ mà tôi không quen thuộc, vì vậy tôi thường chạy một nghiên cứu mô phỏng để đảm bảo rằng những gì tôi đang làm là hợp lệ. Nếu tôi viết một mô hình tùy chỉnh ở Stan, làm sao tôi biết rằng những gì tôi đang làm là hợp pháp? Làm cách nào tôi có thể sử dụng các phương pháp mô phỏng để xác minh rằng những gì tôi đang làm ở Stan thực sự sẽ cho tôi biết những gì tôi muốn biết?