期望值命令 R 和 JAGS
Expected value command R and JAGS
假设这是我的贝叶斯模型,我如何计算威布尔分布的期望值?是否有用于在 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)
使用带有参数 v
和 lambda
的 moment of methods 的 Weibull 分布的均值或期望值是:
λ * 伽玛 (1 + 1/v)
JAGS 没有 Gamma 函数,但我们可以使用变通方法
函数确实有:logfact
。您可以将此行添加到代码中并跟踪派生参数 exp_weibull
.
exp_weibull <- lambda * exp(logfact(1/v))
Gamma 只是阶乘 (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))
我的理解是JAGS使用的威布尔分布的参数化与dweibull
在R中使用的不同。我相信JAGS版本使用形状,v 并评价 lambda,预期值为 lambda^{-1/v}*gamma(1+1/v)
。因此,我在 JAGS 中将预期值实现为 lambda^(-1/v)*exp(loggam(1+(1/v)))
。如果其他人不同意,我很感兴趣,诚然,我很难跟踪使用了哪些参数化以及如何制定预期值,特别是给出了一些用于不同公式中不同参数的符号的可互换性!
假设这是我的贝叶斯模型,我如何计算威布尔分布的期望值?是否有用于在 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)
使用带有参数 v
和 lambda
的 moment of methods 的 Weibull 分布的均值或期望值是:
λ * 伽玛 (1 + 1/v)
JAGS 没有 Gamma 函数,但我们可以使用变通方法
函数确实有:logfact
。您可以将此行添加到代码中并跟踪派生参数 exp_weibull
.
exp_weibull <- lambda * exp(logfact(1/v))
Gamma 只是阶乘 (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))
我的理解是JAGS使用的威布尔分布的参数化与dweibull
在R中使用的不同。我相信JAGS版本使用形状,v 并评价 lambda,预期值为 lambda^{-1/v}*gamma(1+1/v)
。因此,我在 JAGS 中将预期值实现为 lambda^(-1/v)*exp(loggam(1+(1/v)))
。如果其他人不同意,我很感兴趣,诚然,我很难跟踪使用了哪些参数化以及如何制定预期值,特别是给出了一些用于不同公式中不同参数的符号的可互换性!