Có bao nhiêu mặt của một cái chết? Suy luận Bayes trong JAGS


9

Vấn đề

Tôi muốn thực hiện một số suy luận về một hệ thống tương tự để chết với một số mặt không xác định. Con súc sắc được lăn nhiều lần, sau đó tôi muốn suy ra phân phối xác suất trên một tham số tương ứng với số cạnh của con súc sắc, θ.

Trực giác

Nếu sau 40 cuộn bạn đã quan sát thấy 10 màu đỏ, 10 màu xanh lam, 10 màu xanh lá cây và 10 màu vàng, thì có vẻ như nên đạt cực đại ở mức 4 và độ lệch của mỗi bên là phân phối tập trung vào 1/4.

có giới hạn dưới tầm thường, là số lượng các mặt khác nhau được quan sát trong dữ liệu.

Giới hạn trên vẫn chưa được biết. Có thể có một mặt thứ năm có thể có độ lệch thấp. Càng nhiều dữ liệu bạn quan sát thiếu loại thứ năm, xác suất sau = 4 càng cao.

Tiếp cận

Tôi đã sử dụng JAGS cho các vấn đề tương tự (thông qua R và rjags) có vẻ phù hợp ở đây.

Đối với dữ liệu, hãy nói obs <- c(10, 10, 10, 10)tương ứng với các quan sát trong ví dụ trên.

Tôi nghĩ rằng các quan sát nên được mô hình hóa với một phân phối đa quốc gia obs ~ dmulti(p, n), ở đâu p ~ ddirch(alpha)n <- length(obs).

được liên kết với số lượng danh mục ngụ ý alpha, vậy làm cách nào tôi có thể mô hình hóa alphađể bao gồm số lượng danh mục khác nhau có thể?

Lựa chọn thay thế?

Tôi khá mới đối với các phân tích Bayes vì ​​vậy có thể hoàn toàn sủa sai cây, có mô hình thay thế nào có thể cung cấp những hiểu biết khác nhau về vấn đề này không?

Cảm ơn nhiều! David

Câu trả lời:


6

Đây là một vấn đề thú vị được gọi là "lấy mẫu loài", đã nhận được rất nhiều sự chú ý trong nhiều năm qua và bao gồm nhiều vấn đề ước tính khác (chẳng hạn như đánh dấu lại). Có thể nói, JAGS sẽ không giúp bạn trong trường hợp này - JAGS không thể xử lý chuỗi Markov với kích thước thay đổi qua các lần lặp. Người ta phải truy vấn sơ đồ MCMC được thiết kế cho các vấn đề như vậy, chẳng hạn như MCMC nhảy đảo ngược.

Đây là một cách tiếp cận phù hợp với mô hình cụ thể mà bạn đang mô tả, lần đầu tiên tôi bắt gặp trong tác phẩm của Jeff Miller (được tạo ra ).

Phần I (Câu hỏi gốc)

Một giả định tôi sẽ đưa ra là một quan sát cho một danh mục nhất định ngụ ý sự tồn tại của các danh mục có thứ hạng thấp hơn. Đó là, quan sát một cuộn chết ở bên 9 ngụ ý sự tồn tại của các bên 1-8. Nó không phải là theo cách này - các loại có thể tùy ý - nhưng tôi sẽ giả định như vậy trong ví dụ của tôi. Điều này có nghĩa là 0 giá trị có thể quan sát được, trái ngược với các vấn đề ước tính loài khác.

Giả sử chúng ta có một mẫu đa cực,

Y={y1,y2,,ym,ym+1,,yn}M({p1,p2,,pm,pm+1,,pn})

mn{ym+1,,yn}n[1,)

nP(λ),n>0

Một ưu tiên thuận tiện cho các xác suất đa quốc gia là Dirichlet,

P={p1,,pn}D({α1,,αn})

α1=α2==αn=α~

Để làm cho vấn đề trở nên dễ xử lý hơn, chúng tôi gạt ra các trọng số:

p(Y|α~,n)=Pp(Y|P,n)p(P|α~,n)dP

Mà trong trường hợp này dẫn đến phân phối Dirichlet-multinomial được nghiên cứu kỹ lưỡng . Mục tiêu là sau đó để ước tính hậu thế có điều kiện,

p(n|Y,α~,λ)=p(Y|n,α~)p(n|λ)p(Y|α~,λ)

α~λ

p(Y|α~,λ)=n=1p(Y|n,α~)p(n|λ)

p(Y|n,α~)=0n<m

p(Y|α~,λ)=1(eλ1)n=mΓ(nα~)i=1nΓ(yi+α~)Γ(nα~+i=1nyi)Γ(α~)nλnn!

Dẫn tới:

p(n|Y,α~,λ)=Γ(nα~)i=1nΓ(yi+α~)Γ(nα~+i=1nyi)Γ(α~)nλnn!(j=mΓ(jα~)i=1jΓ(yi+α~)Γ(jα~+i=1jyi)Γ(α~)jλjj!)1

[m,)

Đây là một ví dụ cẩu thả trong R:

logPosteriorN <- function(max, Y, lambda, alpha){
    m <- length(Y)
    sumy <- sum(Y)
    pp <- sapply(1:max, function(j){
        prior <- log(lambda)*j - log(exp(lambda)-1) - lgamma(j+1)
        posterior <- lgamma(alpha*j) + sum(lgamma(Y + alpha)) - j*lgamma(alpha) - lgamma(sumy + j*alpha)
        if( j > m ) { posterior <- posterior + (j-m)*lgamma(alpha) } 
        else if( j < m ) { posterior = -Inf }
        prior + posterior
        })
    evidence <- log(sum(exp(pp))) # there's no check that this converges
    pp - evidence
}

## with even representation of sides
Y <- c(10, 10, 10, 10)
post <- logPosteriorN(30, Y, 10, 1.2)
plot(1:30, exp(post), pch=19, type="b")

## with uneven representation of sides
Y <- c(1, 2, 1, 0, 0, 2, 1, 0, 1)
post <- logPosteriorN(30, Y, 10, 1.2)
plot(1:30, exp(post), pch=19, type="b")

α~nα~

Tất nhiên, đây là một cách tiếp cận để ước tính. Bạn sẽ dễ dàng tìm thấy những người khác (của hương vị Bayes và không Bayes) với một chút tìm kiếm.

Phần II (Trả lời nhận xét)

Y={y1,,ym,ym+1,,yn}Ω={ω1,,ωm,ωm+1,,ωn}

Pr(Y|Ω,n)=Γ(i=1nyi+1)i=1nΓ(yi+1)i=1nωiyi

yNy1ym>0ym+1yn=0nn

Pr(n|λ)=λn(exp{λ}1)n!, nZ+

Ωα~n

Pr(Ω|α~,n)=Γ(nα~)Γ(α~)ni=1nωiα~1

Pr(Y|α~,n)=Pr(Y|Ω,n)Pr(Ω|α~,n)=Γ(nα~)Γ(i=1nyi+nα~)Γ(α~)ni=1nΓ(yi+α~)

ni{1n}j<imnYnmP[Y]

n

Pr(P[Y]|α~,n)=n!(nm)!Pr(Y|α~,n)

n

Pr(P[Y]|α~,λ)=j=mPr(P[Y]|α~,n)Pr(n|λ)

Pr(n|P[Y],α~,λ)=Pr(P[Y]|n,α~)Pr(n|λ)Pr(P[Y]|α~,λ)

Chỉ cần cắm từ các định nghĩa ở trên. Một lần nữa, mẫu số là một chuỗi vô hạn sẽ hội tụ nhanh chóng: trong mô hình đơn giản này, không cần MCMC đưa ra một xấp xỉ đầy đủ.

Bằng cách sửa đổi mã R từ Phần I:

logPosteriorN_2 <- function(max, Y, lambda, alpha){
    m <- length(Y)
    sumy <- sum(Y)
    pp <- sapply(1:max, function(j){
        prior <- log(lambda)*j - log(exp(lambda)-1) - lgamma(j+1)
        likelihood <- lchoose(j, m) + lgamma(m + 1) + lgamma(alpha*j) + sum(lgamma(Y + alpha)) - j*lgamma(alpha) - lgamma(sumy + j*alpha)
        if( j > m ) { likelihood <- likelihood + (j-m)*lgamma(alpha) } 
        else if( j < m ) { likelihood = -Inf }
        prior + likelihood
        })
    evidence <- log(sum(exp(pp))) # there's no check that this converges
    pp - evidence
}

Y_1 <- rep(10, 15)
pos_1 <- logPosteriorN_2(50, Y_1, 6, 1)
plot(1:50, exp(pos_1))

Rất cám ơn câu trả lời rất đầy đủ của bạn. (Xin lỗi vì phản ứng rất chậm của tôi). Tôi đã trở lại với loại câu hỏi này và vẫn đang tiếp tục học toán. Trong hệ thống của tôi, các danh mục không phải là thứ tự, do đó, giả định rằng một quan sát cho một danh mục nhất định ngụ ý sự tồn tại của các danh mục có thứ hạng thấp hơn là không hợp lệ.
davipatti

@davipatti Đã trả lời trong phần thứ hai.
Giáo hoàng Nate
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.