资源描述:
《快速学会使用WinBUGS做贝叶斯统计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、快速学会使用WinBUGS做贝叶斯统计1.运行WinBugs,开启(1)新的程序编辑窗口,功能列表:File-New,或者(2)已存在的程序功能表列:File-Open2.撰写程序,程序包含下列三部份:(1)Model:贝氏统计模式,设定各参数的priordistribution及各参数间的关系等。(2)Data:list指令开始,列出各参数的样本观察值及样本个数(N=)。(3)Initialvalues:同样采用list指令,列出各参数的初始值。注:上述三大部份的程序撰写顺序并不会影响程序执行结果。以WinBugs的Examp
2、les中Eyes为例,新建文件,输入:#Modelmodel{for(iin1:N){y[i]~dnorm(mu[i],tau)mu[i]<-lambda[T[i]]T[i]~dcat(P[])}P[1:2]~ddirch(alpha[])theta~dnorm(0.0,1.0E-6)I(0.0,)lambda[2]<-lambda[1]+thetalambda[1]~dnorm(0.0,1.0E-6)tau~dgamma(0.001,0.001)sigma<-1/sqrt(tau)}#Datalist(y=c(529.0,53
3、0.0,532.0,533.1,533.4,533.6,533.7,534.1,534.8,535.3,535.4,535.9,536.1,536.3,536.4,536.6,537.0,537.4,537.5,538.3,538.5,538.6,539.4,539.6,540.4,540.8,542.0,542.8,543.0,543.5,543.8,543.9,545.3,546.2,548.8,548.7,548.9,549.0,549.4,549.9,550.6,551.2,551.4,551.5,551.6,552.8
4、,552.9,553.2),N=48,alpha=c(1,1),T=c(1,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,2))#InitialValueslist(lambda=c(535,NA),theta=5,tau=0.1)输入完后,在功能表列选取File→Saveas,即可将程序保存于指定的文
5、件夹内。3.执行程序Step1在功能表列中选择:Model→Specification,开启SpecificationTool窗口。Step2Checkmodel:选取Model部分中的关键字"model",按下SpecificationTool窗口的checkmodel键,若此部份程序的语法及定义无误,则:(1)SpecificationTool窗口的compile及loaddata键将会浮现;(2)WinBugs左下角的状态列将会显示'modelissyntacticallycorrect'。Step3Loaddata:选取
6、Data部分中的关键字"list",按下SpecificationTool窗口的loaddata键;若资料型式无误,则WinBugs左下角的状态列将会显示'dataloaded'。可选择一次simulate数个chains。Step4CompileModel:直接按下SpecificationTool窗口的compile键,若程序无误,则WinBugs左下角的状态列将会显示'modelcompiled'。Step5Loadinitialvalues:选取Initialvalues部分中的关键字"list",按下loadinits
7、键,若WinBugs,左下角的状态列显示:(1)'initialvaluesloaded:modelinitialized'表示资料型式无误,继续Step6。(2)'initialvaluesloaded:modelcontainsuninitializednodes'若程序没有缺漏,会出现这样的消息,则有两种可能:(Ⅰ)当只simulate一个chain时,出现上述的消息表示程序中尚有一些参数还未定义起始值,会发生这样的状况,有时是因为未提供起始值之参数(如此例子中:sigma)与其他参数间(如:tau)具有函数对应关系(如:
8、sigma<-1/sqrt(tau));在此情况下,须再按下geninits键,让WinBugs依参数间的对应关系,自动为剩余未定义起始值的参数生成一个起始值,执行后,WinBugs左下角的状态列将会显示'initialvaluesgenerated:model