在JAGS中,随机节点如何工作?

问题描述 投票:0回答:1

...以及与y [I]〜dnorm(m [i],tau)vs y [I]

考虑两行代码:

`for(I in 1:length(y)) {
y[i] ~ dnorm(m[i],tau)  #---> Jags code (stochastic node)
m[i] = alpha + beta*(x[i] - x_bar)
.
.
}
y[i] <- dnorm(n,m[i],tau)?) ---> R`

在Jags中,由于未在dnorm函数中指定n值,将是n个值? (dnorm(m [i],tau))

对于每个i,dnorm函数是否相对于平均值m [I]计算每个y值的密度值,平均值m [I]具有由确定性节点和tau(precision)确定的线性关系?

总之,我想知道dnorm或任何其他密度函数将使用什么n值进行分布(dgamma或dbeta)。

...以及〜符号与y [I]〜dnorm(m [i],tau)vs y [I] ...]中的R相比是什么意思>

在这种特定情况下,y是您的响应变量,m是您的线性预测变量,tau是精度(方差的倒数)。使用~使关系随机。期待JAGS用户手册...

“关系可以有两种类型。随机关系(~)定义一个随机节点,代表模型中的随机变量。确定性关系(<-)定义一个确定性节点的值完全由其父节点的值确定。等号(=)可以代替左箭头(<-)用于确定性关系。“

因此,换言之,假设y中的值是从与mtau相关的正态分布中得出的。

R中的dnorm计算密度时,JAGS计算对数密度(根据用户手册)。实际上,这种随机关系使您可以使用yx来估计alphabetatau,在这种情况下,您可以通过对数据生成过程进行分布假设来使用dnorm

当然,由于这是贝叶斯分析,因此您需要先验参数。您也可以确定性地计算标准偏差而不是精度。完整的模型看起来像...

model{
# likelihood
for(I in 1:length(y)) {
y[i] ~ dnorm(m[i],tau) 
m[i] <- alpha + beta*(x[i] - x_bar)
}
# priors
tau ~ dgamma(0.001, 0.001)
sd <- 1/ sqrt(tau)
alpha ~ dnorm(0, 0.001)
beta ~ dnorm(0, 0.001)
}

r statistics modeling bayesian jags
1个回答
0
投票

在这种特定情况下,y是您的响应变量,m是您的线性预测变量,tau是精度(方差的倒数)。使用~使关系随机。期待JAGS用户手册...

© www.soinside.com 2019 - 2024. All rights reserved.