首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >期望值命令R和JAGS

期望值命令R和JAGS
EN

Stack Overflow用户
提问于 2019-02-03 04:53:14
回答 1查看 180关注 0票数 1

假设这是我的贝叶斯模型,我如何计算我的威布尔分布的期望值?是否有一个命令可以在R和JAGS中找到威布尔分布的期望值?谢谢

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-04 23:03:29

使用带有参数vlambdamoment of methods的威布尔分布的平均值或期望值为:

λ* Gamma(1 + 1/v)

JAGS没有Gamma函数,但我们可以使用一个确实具有的函数:logfact。您可以将此行添加到代码中并跟踪派生参数exp_weibull

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

Gamma只是阶乘(x- 1),所以平均值稍微简化了一点。下面我将用一些R函数来说明这个派生是如何相同的。

代码语言:javascript
复制
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也有伽马分布的日志:loggam。因此,另一种解决方案是

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54497407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档