大佬教程收集整理的这篇文章主要介绍了OpenBugs 模型;获取范围的问题,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 BUGS 和 R 的新手,但我正在 R 中使用 BRugs 库作为贝叶斯统计的大学单元。我在部分作业问题上遇到了问题。
我们假设长度为 5 的给定数据集来自二项式分布,并选择一个平坦的先验(我已经选择了 Beta(1,1))。随机变量是 Y_i,感兴趣的参数是 m_i 和 p_i。
它想让我找到 p_i 的范围;
r = max_{i=1,...,10} p_i - min_{i=1,10} p_i
但我不知道如何实现这个等式。这是我试过的:
model{
## likelihood
for(i in 1:N){
y[i] ~ dbin(p,m[i])
yy[i] ~ dbin(pp[i],mm[i])
}
## parameters of interest
pp_prev <- mean(pp[1])
for(i in 2:N){
pp_max <- max(pp_prev,mean(pp[i]))
pp_min <- min(pp_prev,mean(pp[i]))
pp_prev <- mean(pp[i])
}
r <- pp_max - pp_min
## prior
p ~ dbeta(1,1)
for(i in 1:N){
pp[i] ~ dbeta(1,1)
}
}
然后我运行命令:
```{r}
library(BRugs)
cat(readlines("model.BUG"),sep="\n")
modelCheck("model.BUG")
yi <- c(10,30,34,18,36)
mi <- c(35,440,450,70,200)
BUGsData(List(y=yi,yy=yi,m=mi,mm=mi,N=length(yi)),file="data.txt")
modelData("data.txt")
modelCompile(numChains=4)
```
给出输出:
Error in handleRes(res) : NA
我也尝试了一些变体,但它似乎不喜欢 for 循环。而且我也不能把它放在先验循环或似然循环中。
干杯
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的OpenBugs 模型;获取范围的问题全部内容,希望文章能够帮你解决OpenBugs 模型;获取范围的问题所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。