预期值命令R和JAGS

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

假设这是我的贝叶斯模型,我怎么能计算我Weibull分布的期望值?是否有发现在R和JAGS Weibull分布的预期值的指示?谢谢

model{  
#likelihood function  
for (i in 1:n)   
    {  
        t[i] ~ dweib(v,lambda)#MTBF    

        }    

#Prior for MTBF  
v ~ dgamma(0.0001, 0.0001)   
lambda ~ dgamma(0.0001, 0.0001)     
  }  

  #inits
list(v=1, lambda=1,mu=0,tau=1)

#Data
list(n=10, t=c(5.23333333,8.95,8.6,230.983333,1.55,85.1,193.033333,322.966667,306.716667,1077.8)
r jags
1个回答
1
投票

的平均值,或预期值,使用具有参数moment of methodsvlambda威布尔分布的,是:

拉姆达*伽玛(1 + 1 / V)

JAGS不具备伽玛功能,但我们可以围绕使用工作,一个函数,确实有:logfact。您可以将此行添加到您的代码和跟踪得到的参数exp_weibull

exp_weibull <- lambda * exp(logfact(1/v))

伽玛只是因子(X - 1),所以平均简化了一下。下面我举例说明一些R功能这个推导怎么是一样的。

lambda <- 5
v <- 2

mu_traditional <- lambda * gamma(1 + 1/v)
mu_logged <- lambda * exp(lfactorial(1/v))
identical(mu_traditional, mu_logged)
[1] TRUE

编辑:好像JAGS也有Gamma分布的日志,以及:loggam。因此,另一种解决方案将是

exp_weibull <- lambda * exp(loggam(1 + 1/v))

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