gpt4 book ai didi

r - JAGS 中的柯西先验

转载 作者:行者123 更新时间:2023-12-02 14:19:20 26 4
gpt4 key购买 nike

我正在使用 rJAGS 构建多级贝叶斯模型,并且我想为我的几个参数指定柯西先验。有没有办法在 JAGS 中做到这一点,或者我需要切换到 STAN 吗?我的 JAGS 模型如下。我想用柯西分布替换 dnorm 分布,但 JAGS 找不到标准的 R 柯西分布,例如dcauchypcauchy

model_string <- "model{
for (i in 1:n){
y[i] ~ dbin(mu[i], 1)
p.bound[i] <- max(0, min(1, mu[i])) #381 gelman
logit(mu[i]) <- a[dc[i]] + b1*x1[i] + b2*x2[i]
}

b1 ~ dnorm(0,.001)
b2 ~ dnorm(0,.001)

for (j in 1: n.dc ){
a[j] ~ dnorm(g0, tau.a) #not goj, g1j
}

g0 ~ dnorm(0,.001)
tau.a <- pow(sigma.a , -2)
sigma.a ~ dnorm(0,.001)
}"

最佳答案

柯西分布是 t 分布的特例,具有 1 个自由度 ( Wikipedia link )。虽然 JAGS 没有柯西分布,但它有 t 分布。

dt(mu, tau, k)

只需将 k 设置为 1,即可获得柯西先验

dt(mu, tau, 1)

我不会将你的方差设置为正态或柯西先验,因为考虑到方差始终为正(而正态或柯西不是)。尝试使用 Gamma 分布之类的方法来提高精度。

tau.a ~ dgamma(0.001,0.001) # vague precision parameter
sigma.a <- 1/sqrt(tau.a)

关于r - JAGS 中的柯西先验,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34935606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com