Model 贝叶斯模型:求mu的最小值

Model 贝叶斯模型:求mu的最小值,model,bayesian,winbugs,Model,Bayesian,Winbugs,我一直试图用贝叶斯方法解决一个问题,但我不知道如何编写模型 我试图找到mu的值,这样x=mu+Error,Error~Gamma(a,b)(或其他分布) 基本上我想说的是: for(i in 1:N) { x[i] <- mu + tau[i] tau[i] ~ dgamma(0.001, 0.001) } mu ~ dunif(0.0, 1000) for(1:N中的i){ x[i]如果我理解正确,我认为您应该导出BUGS之外x值的最小值(mu),并将其作为数据的一部分传递,或

我一直试图用贝叶斯方法解决一个问题,但我不知道如何编写模型

我试图找到mu的值,这样x=mu+Error,Error~Gamma(a,b)(或其他分布)

基本上我想说的是:

for(i in 1:N) {
  x[i] <- mu + tau[i]
  tau[i] ~ dgamma(0.001, 0.001)
}
mu ~ dunif(0.0, 1000)
for(1:N中的i){

x[i]如果我理解正确,我认为您应该导出BUGS之外x值的最小值(mu),并将其作为数据的一部分传递,或者直接给出tau。这是必要的,因为BUGS中的min函数不会对整个向量起作用。也许像这样的模型(和数据)是合适的:

#BUGS model
model{
    #data manipulations
    for(i in 1:N){
        tau[i] <- x[i]-mu
    }

    #model
    for(i  in 1:N){
        y[i] ~ dlnorm(tau[i], y.tol)
        log.y[i] <- log(y[i])
    }

    #prior
    y.tol ~ dunif(0,1000)
}

#data
list(x=c(5,3,8,9,3,6,8,2,4,11), N=10, mu=2)
#错误模型
模型{
#数据操作
for(1:N中的i){

tau[i]如果我理解正确,我认为您应该导出Bug之外x值的最小值(mu),并将其作为数据的一部分传递,或者直接给出tau。这是必要的,因为Bug中的min函数不会对整个向量起作用。也许像这样的模型(和数据)是合适的:

#BUGS model
model{
    #data manipulations
    for(i in 1:N){
        tau[i] <- x[i]-mu
    }

    #model
    for(i  in 1:N){
        y[i] ~ dlnorm(tau[i], y.tol)
        log.y[i] <- log(y[i])
    }

    #prior
    y.tol ~ dunif(0,1000)
}

#data
list(x=c(5,3,8,9,3,6,8,2,4,11), N=10, mu=2)
#错误模型
模型{
#数据操作
for(1:N中的i){

tau[i]你能澄清你的数据来自何处吗?也许给出完整的模型或说明x如何连接到数据吗?嗨@gjabel,x是一些特定活动的时间记录,因此会有一些“最短”时间可以完成,这是我感兴趣的。当然,数据(x)将分布在该值之上,类似于从该值(μ)开始的伽马分布或对数正态分布,大多数值略高于并逐渐减少。我一直在网上四处寻找,但没有找到类似的东西。你能澄清一下你的数据来自何处吗?也许给出完整的模型或说明x与数据的连接方式吗?嗨@gjabel,x是一些特定活动的时间记录,所以会有一些“最短”的时间ne in,这是我感兴趣的。当然,数据(x)将分布在这个值之上,类似于从这个值(mu)开始的伽马分布或对数正态分布,大多数值略高于并逐渐变小。我一直在网上搜索,但没有找到类似的内容。谢谢@gjabel,这很有用。这对估计“x”的“最小”可能值没有帮助,但我会试着摆弄它,看看它能给我带来什么。谢谢@gjabel,这很有帮助。对估计“x”的“最小”可能值,但我会尝试摆弄它,看看它能给我带来什么。