Ví dụ đơn giản cho thấy những lợi thế của Bayesian Model Averaging (BMA)


12

Tôi đang kết hợp cách tiếp cận Trung bình Mô hình Bayes (BMA) trong nghiên cứu của mình và sẽ sớm trình bày về công việc của tôi với các đồng nghiệp của tôi. Tuy nhiên, BMA không thực sự nổi tiếng trong lĩnh vực của tôi, vì vậy sau khi trình bày chúng với tất cả lý thuyết và trước khi thực sự áp dụng nó vào vấn đề của mình, tôi muốn trình bày một ví dụ đơn giản nhưng mang tính hướng dẫn về lý do tại sao BMA hoạt động.

Tôi đã suy nghĩ về một ví dụ đơn giản với hai mô hình mà người ta có thể chọn, nhưng mô hình tạo dữ liệu thực sự (DGM) nằm ở đâu đó ở giữa và bằng chứng không thực sự ủng hộ bất kỳ mô hình nào trong số đó. Vì vậy, nếu bạn chọn một và tiếp tục từ chúng, bạn sẽ bỏ qua sự không chắc chắn của mô hình và gây ra lỗi, nhưng BMA, mặc dù mô hình thực sự không phải là một phần của tập hợp mô hình, ít nhất là cho mật độ chính xác của tham số quan tâm. Chẳng hạn, có hai dự báo thời tiết mỗi ngày (A và B) và một người muốn dự đoán thời tiết tốt nhất, vì vậy, theo thống kê cổ điển, trước tiên bạn sẽ cố gắng tìm người dự báo tốt nhất giữa hai người, nhưng nếu sự thật nằm ở đâu đó ở giữa (nghĩa là đôi khi A đúng, đôi khi B). Nhưng tôi không thể chính thức hóa nó. Một cái gì đó như thế nhưng tôi rất cởi mở với các ý tưởng. Tôi hy vọng câu hỏi này là đủ cụ thể!

Trong tài liệu, tôi không tìm thấy bất kỳ ví dụ hay nào từ những gì tôi đã đọc cho đến nay:

  • Kruschke (2011) , trong khi giới thiệu tuyệt vời về thống kê Bayes, không thực sự tập trung vào BMA và ví dụ về việc tung đồng xu trong chương 4 là tuyệt vời để giới thiệu thống kê Bayes, nhưng thực sự không thuyết phục được một nhà nghiên cứu đồng nghiệp sử dụng BMA. ("Tại sao một lần nữa tôi lại có ba mô hình, một mô hình nói rằng đồng tiền là công bằng và hai mô hình nói rằng nó thiên vị theo một trong hai hướng?")
  • Tất cả những thứ khác tôi đọc ( Koop 2003 , Koop / Poirier / Tobias (2007) , Hoeting và cộng sự (1999) và hàng tấn người khác) là những tài liệu tham khảo tuyệt vời, nhưng tôi không tìm thấy một ví dụ đồ chơi đơn giản nào trong đó.

Nhưng có lẽ tôi chỉ bỏ lỡ một nguồn tốt ở đây.

Vì vậy, có ai có một ví dụ tốt mà anh ấy hoặc cô ấy sử dụng để giới thiệu BMA? Có thể bằng cách thậm chí cho thấy khả năng và hậu thế bởi vì tôi nghĩ rằng đó sẽ là khá hướng dẫn.


Một bản cập nhật ngắn: Tôi vừa xem qua bài thuyết trình này đề cập đến nghịch lý của Freedman trong phần 2. Có một ví dụ ngắn trong đó 39 đồng biến ngẫu nhiên được mô phỏng và nếu chỉ tìm mô hình tốt nhất, cuối cùng người ta sẽ tìm thấy các đồng biến quan trọng. Tính trung bình của mô hình là một cách chữa trị cho vấn đề đó. Tôi không đăng một giải pháp với mã ở đây bởi vì thật lòng mà nói, tôi không biết làm thế nào các số liệu có nguồn gốc.
Christoph_J

(Tiếp theo) Chính xác thì chúng trung bình là gì? Thông số tốt nhất? Tất cả các tham số (tôi nghĩ rằng sẽ chỉ có ý nghĩa trong ví dụ cụ thể này). Tuy nhiên, tôi nghĩ rằng các biểu đồ kết hợp với gợi ý về nghịch lý của Freedman là khá hữu ích. Có lẽ nó giúp một số.
Christoph_J

Câu trả lời:


8

Tôi đã làm một cái gì đó tương tự gần đây. Không quá cố gắng để thuyết phục người khác, nhưng thực hiện một dự án nhỏ cho phép tôi có được một chút hương vị của BMA. Những gì tôi đã làm là tạo ra một tập dữ liệu với phản hồi nhị phân, ba biến độc lập có ảnh hưởng đến phản hồi và bảy biến không có bất kỳ ảnh hưởng nào đến phản hồi. Sau đó, tôi đã so sánh các kết quả BMA với các ước tính thường xuyên trong hồi quy logistic. Tôi nghĩ rằng ít nhất trong trường hợp này phương pháp BMA có vẻ khá tốt. Nếu bạn muốn làm cho nó dễ truy cập hơn, bạn luôn có thể đặt tên cho các biến hoặc một cái gì đó thay vì gọi chúng là và .Xy

Mã R tôi sử dụng cho điều này được trình bày dưới đây. Hy vọng nó có thể truyền cảm hứng cho bạn!

# The sample size
n <- 100

# The 'true' coefficient vector
Beta <- cbind(c(-1.5, 0.45, -3))

# Generate the explanatory variables which have an effect on the outcome
set.seed(1)
X <- cbind(rnorm(n, 0, 1), rnorm(n, 4, 2), rnorm(n, 0.5, 1))

# Convert this into probabilities
prob <- 1/(1+exp(-X %*% Beta))

# Generate some uniform numbers. If the elements are smaller than the corresponding elements in the prob vector, then return 1.
set.seed(2)
runis <- runif(n, 0, 1)
y <- ifelse(runis < prob, 1, 0)

# Add the nonsense variables
X <- cbind(X, rpois(n, 3))        # Redundant variable 1 (x4)
X <- cbind(X, rexp(n, 10))        # Redundant variable 2 (x5)
X <- cbind(X, rbeta(n, 3, 10))    # Redundant variable 3 (x6)
X <- cbind(X, rbinom(n, 10, 0.5)) # Redundant variable 4 (x7)
X <- cbind(X, rpois(n, 40))       # Redundant variable 5 (x8)
X <- cbind(X, rgamma(n, 10, 20))  # Redundant variable 6 (x9)
X <- cbind(X, runif(n, 0, 1))     # Redundant variable 7 (x10)


# The BMA
library(BMA)
model <- bic.glm(X, y,  glm.family="binomial", factor.type=FALSE, thresProbne0 = 5, strict = FALSE)

# The frequentist model
model2 <- glm(y~X, family = "binomial")

old.par <- par()
par(mar=c(3,2,3,1.5))
plot(model, mfrow=c(2,5))
par(old.par)

summary(model)
summary(model2)

2
Đó là một ví dụ hay, vì vậy +1 cho nó. Tuy nhiên, như bạn đã chỉ ra, nó không thực sự giúp ích trong việc thuyết phục người khác sử dụng BMA. Trên thực tế, tôi chạy nó và thậm chí phải mất một thời gian để thuyết phục tôi rằng BMA ở đây tốt hơn phương pháp cổ điển: mô hình tốt nhất không phải là mô hình thực sự (mô hình tốt nhất chỉ bao gồm x2 và x3) và các tham số cho model2 không đó là nhiều, ít nhất là cho các tham số có liên quan. Tuy nhiên, nó cho thấy một số tham số quan trọng x5 và x6 không nên có và BMA thực hiện công việc tuyệt vời khi nói với bạn rằng điều này không đáng kể, vì vậy đây là điểm cộng cho BMA.
Christoph_J

2

Một nguồn tài nguyên tuyệt vời cho việc này là:
Mô hình Bayes Trung bình với BMS của Stefan Zeugner (2012)

Nó đang sử dụng BMS gói R , thông tin thêm có thể được tìm thấy ở đây:
http://bms.zeugner.eu/

Hai hướng dẫn thực hành để tái tạo các ví dụ trong thế giới thực với gói có thể được tìm thấy ở đây:

Giới thiệu động lực chung và hiện tại hơn về các phương pháp Bayes là bài báo sau:

Thời gian đã đến: Phương pháp phân tích dữ liệu Bayes trong khoa học tổ chức của John K. Kruschke, Herman Aguinis và Harry Joo


Cảm ơn các liên kết, nhưng chúng không thực sự là những gì tôi theo sau. Tôi thực sự đã biết và sử dụng gói trước đó (thật tuyệt) và tôi đồng ý rằng tài liệu của họ thực sự mang tính hướng dẫn. Nhưng một lần nữa, các tác giả dự định không thuyết phục ai đó (hy vọng trong vòng chưa đầy 5 phút) tại sao họ nên sử dụng BMA, nhưng cho rằng họ muốn sử dụng nó, làm thế nào để làm điều đó với gói của họ. Vì vậy, họ bắt đầu với attitudeví dụ và nếu bạn cuộn qua liên kết đầu tiên của mình, thực sự không có bất kỳ bảng hoặc hình nào mà bạn sẽ hét lên: "Geez, tôi rất vui khi đã sử dụng BMA!"
Christoph_J

Tiếp tục: Để rõ ràng, điều này tất nhiên không phải là một bài phê bình về tài liệu của họ: đó không phải là ý định của họ ở nơi đầu tiên. Có lẽ để đưa ra một ví dụ tôi sau. Giả sử bạn muốn giải thích vấn đề của các ngoại lệ trong hồi quy tuyến tính. Bạn có thể sẽ bắt đầu với đôi khi như các biểu đồ ở đây . Tất nhiên, vấn đề trong dữ liệu thực sẽ không bao giờ dễ dàng như vậy. Sẽ rất khó để bạn xác định một ngoại lệ, v.v. Nhưng với một biểu đồ như vậy, mọi người đều biết chuyện gì đang xảy ra.
Christoph_J

3
@Christoph_J: Bạn có biết bài viết này: indiana.edu/~kruschke/articles/KruschkeAJ2012.pdf - nó không phải là quá nhiều về BMA nhưng về thuyết phục một ai đó sử dụng phương pháp Bayesian ở nơi đầu tiên - có lẽ đây là cái gì đó hữu ích cho bạn :-)
vonjd

1
Tôi không biết rằng đó là một bài viết giới thiệu thực sự tốt về các phương pháp Bayes, vì vậy +1 cho liên kết. Cảm ơn.
Christoph_J

@Christoph_J: Tôi đã chỉnh sửa bài đăng phù hợp: +1 của bạn cho câu trả lời không hoạt động, nó vẫn là 0 (?!?) Vì vậy bạn có thể vui lòng làm lại không - Cảm ơn bạn :-)
vonjd
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.