原文链接:http://tecdat.cn/?p=11974

原文出处:拓端数据部落公众号


R2WinBUGS软件包提供了从R调用WinBUGS的便捷功能。它自动以WinBUGS可读的格式写入数据和脚本,以进行批处理(自1.4版开始)。WinBUGS流程完成后,可以通过程序包本身将结果数据读取到R中(这提供了推断和收敛诊断的紧凑图形摘要),也可以使用coda程序包的功能对输出进行进一步分析。

WinBUGS软件可从http://www.mrc-bsu.cam.ac.uk/bugs/免费获得。

R是一种“用于数据分析和图形处理的语言”,是一种实现该语言的开放源代码和免费提供的统计软件包,请参见http://www.R-project.org/。  R和R2WinBUGS可从CRAN 获得,即http://CRAN.R-Project.org或其镜像之一。 如果可以使用Internet连接,则可以在R命令提示符下键入install.packages(“ R2WinBUGS”)来安装R2WinBUGS。别忘了用library(R2WinBUGS)

例子

学校数据

学术能力测验(SAT)衡量高中生的能力,来帮助大学做出入学决定。 我们的数据来自1970年代后期进行的一项实验,来自八所高中的SAT-V(学业能力测试语言)。SAT-V是由教育测试服务局管理的标准多项选择测试。该服务对所选学校中每所学校的教练计划的效果很感兴趣。

实现

R2WinBUGS软件包的实现非常简单。 main“函数bugs() 由用户调用。原则上,它是对 其中逐步调用的其他几个函数的包,如下:
1. bugs.data.inits()写入数据文件' data.txt”和“ inits1.txt”,“ inits2.txt” ...进入 工作目录。 
2. bugs.script()写入WinBUGS用于批处理的文件“ script.txt”。
3. bugs.run()更新WinBUGS注册表 ,调用WinBUGS,并使用 'script.txt' 以批处理模式运行它。
4. bugs.sims()如果参数codaPkg已设置为false(默认值)才调用。
否则,bugs()返回存储数据的文件名。例如,这些可以通过打包的coda 导入,该软件包提供了收敛诊断,蒙特卡洛估计的计算,迹线图等功能。
bugs.sims()函数将WinBUGS中的模拟读取到R中,将其格式化,监视收敛,执行收敛检查并计算中位数和分位数。它还为bugs()本身准备输出。
这些功能不由用户直接调用。参数将从bugs()传递给其他函数。

例子

我们将 R2WinBUGS提供的功能应用于示例数据并分析输出。

学校数据

示例数据 :

> schools


为了对这些数据进行建模,我们使用了Gelman等人提出的层次模型。 我们假设每所学校的观测估计值具有正态分布,且均值theta 和方差tau.y,逆方差为1 =σ.y2,其先验分布在(0,1000)上是均匀的。对于均值theta,我们采用另一个正态分布 平均为mu.theta和逆方差为tau.theta。有关其先验分布,请参见以下WinBUGS代码:

model {
for (j in 1:J)
{
y[j] ~ dnorm (theta[j], tau.y[j])
theta[j] ~ dnorm (mu.theta, tau.theta)
tau.y[j] <- pow(sigma.y[j], -2)
}
mu.theta ~ dnorm (0.0, 1.0E-6)
tau.theta <- pow(sigma.theta, -2)
sigma.theta ~ dunif (0, 1000)
}

此模型必须存储在单独的文件中,例如'schools.bug'2,在适当的目录中,例如c:/ schools /。在R中,用户必须准备bugs()函数所需的数据输入。这可以是包含每个数据向量名称的列表,例如

> J <- nrow(schools)

使用这些数据和模型文件,我们可以运行MCMC模拟以获取theta, mu.theta和sigma.theta的估计值。在运行之前,用户必须确定要运行多少个链 (n.chain = 3)和迭代次数(n.iter = 1000)。另外,用户必须指定链的初始值,例如通过编写函数:

> inits <- function(){
+ list(theta = rnorm(J, 0, 100), mu.theta = rnorm(1, 0, 100),
+ sigma.theta = runif(1, 0, 100))
+ }

可以开始MCMC模拟,R中的参数bugs.directory必须指向WinBUGS的安装目录。可以通过print(schools.sim)方便地输出school.sim对象中的结果。 
对于此示例,将获得类似的结果

Inference for Bugs model at "c:/schools/schools.bug"
3 chains, each with 1000 iterations (first 500 discarded)
n.sims = 1500 iterations saved
mean sd 2.5% 25% 50% 75% 97.5% Rhat n.eff
theta[1] 11.1 9.1 -3.0 5.0 10.0 16.0 31.8 1.1 39
theta[2] 7.6 6.6 -4.7 3.3 7.8 11.6 21.1 1.1 42
theta[3] 5.7 8.4 -12.5 0.6 6.1 10.8 21.8 1.0 150
theta[4] 7.1 7.0 -6.6 2.7 7.2 11.5 21.0 1.1 42
theta[5] 5.1 6.8 -9.5 0.7 5.2 9.7 18.1 1.0 83
theta[6] 5.7 7.3 -9.7 1.0 6.2 10.2 20.0 1.0 56
theta[7] 10.4 7.3 -2.1 5.3 9.8 15.3 25.5 1.1 27
theta[8] 8.3 8.4 -6.6 2.8 8.1 12.7 26.2 1.0 64
mu.theta 7.6 5.9 -3.0 3.7 8.0 11.0 19.5 1.1 35
sigma.theta 6.7 5.6 0.3 2.8 5.1 9.2 21.2 1.1 46
deviance 60.8 2.5 57.0 59.1 60.2 62.1 66.6 1.0 170
pD = 3 and DIC = 63.8 (using the rule, pD = var(deviance)/2)
For each parameter, n.eff is a crude measure of effective sample size,
and Rhat is the potential scale reduction factor (at convergence, Rhat=1).
DIC is an estimate of expected predictive error (lower deviance is better).

此外,用户可以通过输入plot(schools.sim)生成结果图。 结果图如图所示。在该图中,左列显示了以下内容的快速摘要:
推论和收敛(所有参数的Rb都接近1.0,表明三个链的良好混合,因此近似收敛);右列显示每组参数的推论。从右栏中可以看到,R2WinBUGS使用 WinBUGS中的参数名称将输出构造为标量,向量和参数数组。


最受欢迎的见解

1.matlab使用贝叶斯优化的深度学习

2.matlab贝叶斯隐马尔可夫hmm模型实现

3.R语言Gibbs抽样的贝叶斯简单线性回归仿真

4.R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

5.R语言中的Stan概率编程MCMC采样的贝叶斯模型

6.Python用PyMC3实现贝叶斯线性回归模型

7.R语言使用贝叶斯 层次模型进行空间数据分析

8.R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型

9.matlab贝叶斯隐马尔可夫hmm模型实现

拓端tecdat|R语言用WinBUGS 软件对学术能力测验(SAT)建立层次(分层)贝叶斯模型相关推荐

  1. R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

    全文下载链接:http://tecdat.cn/?p=11974 R2WinBUGS软件包提供了从R调用WinBUGS的便捷功能.它自动以WinBUGS可读的格式写入数据和脚本,以进行批处理(自1.4 ...

  2. R语言用WinBUGS 软件对学术能力测验(SAT)建立分层模型

    原文链接:http://tecdat.cn/?p=11974 R2WinBUGS软件包提供了从R调用WinBUGS的便捷功能.它自动以WinBUGS可读的格式写入数据和脚本,以进行批处理(自1.4版开 ...

  3. R语言用WinBUGS 软件对学术能力测验(SAT)建立层次(分层)贝叶斯模型

    R2WinBUGS软件包提供了从R调用WinBUGS的便捷功能.它自动以WinBUGS可读的格式写入数据和脚本,以进行批处理(自1.4版开始).WinBUGS流程完成后,可以通过程序包本身将结果数据读 ...

  4. 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险

    最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...

  5. 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系

    最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...

  6. 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测

    最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...

  7. 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例

    最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...

  8. R语言实战应用精讲50篇(二十三)-贝叶斯理论重要概念: 可信度Credibility, 模型Models, 和参数Parameters

    本章的目标是介绍贝叶斯数据分析的概念框架.贝叶斯数据分析有两个基本思想: 第一个想法是贝叶斯推理是在可能性之间重新分配可信度. 第二个基本思想是,我们分配可信度的可能性是有意义的数学模型中的参数值. ...

  9. R语言用贝叶斯线性回归、贝叶斯模型平均 (BMA)来预测工人工资

    最近我们被客户要求撰写关于贝叶斯线性回归的研究报告,包括一些图形和统计输出. 视频:线性回归中的贝叶斯推断与R语言预测工人工资数据案例 贝叶斯推断线性回归与R语言预测工人工资数据 ,时长09:58 背 ...

  10. 拓端tecdat荣获掘金社区入驻新人奖

    2021年7月,由掘金发起了"入驻成长礼"颁奖活动.本次活动邀请到知名开发者.服务机构代表等业界人士. 据了解,掘金社区"新入驻创作者礼"主要对已经积累了一定历 ...

最新文章

  1. 权力的游戏登录显示服务器上限,权力与纷争登录不了怎么办_权力与纷争服务器连不上解决办法_玩游戏网...
  2. 如何制作并更改项目icon文件
  3. 比特币现金被3.1万多家餐厅接受
  4. 百度web前端面试题之求两个数的最大公约数和最小公倍数
  5. poj2182 Lost Cows-线段树
  6. html网页设如何置访问密码,利用JS给单页html加上简单访问密码,需要密码才能访问!...
  7. vbox 按照增强工具 centos7
  8. 惊呆了,竟然可以用这种方式秒建 Redis 集群?
  9. 王大珩追悼会举行 上千人雨中送别“光学之父”
  10. Servlet 快速开始 表单中文字段
  11. uniapp 如何配置MySQL_uniapp后台api设计(微信user表)
  12. win10关闭触摸板自动开启
  13. 关于Spring面试问答
  14. 京东商品详情接口,京东详情页接口,宝贝详情页接口,商品属性接口,商品信息查询,商品详细信息接口,h5详情,京东APP详情,京东api接口,京东历史价格数据接口代码对接分享
  15. bequeath_conn
  16. spring-advisor-advised
  17. 游狼html鼠标,《速评13》65g极轻FPS鼠标游狼SK
  18. java cpu 占用率高_java实战CPU占用过高问题的排查及解决
  19. 5张图,看懂数据分析体系
  20. 【金融项目】尚融宝项目(六)

热门文章

  1. 《http权威指南》读书笔记 六
  2. 在vpc 2007上安装 ubuntu8.04-desktop(多图解)(转)
  3. ACID, BASE和CAP
  4. 【鱼眼镜头6】[鱼眼畸变模型]:统一相机模型标定
  5. java Sting类函数
  6. DNN深度神经网络、RBM受限玻尔兹曼机、DBN深度置信网络
  7. Crush Crouse 心理学笔记
  8. 一个传统的前端框架的布局
  9. 功率 dbm 和 mw 的换算
  10. 设计模式学习笔记—策略模式