-
[
例
]
(
引自于
W
inBUGS
软件帮助手册中的
Volum I) :
George et al (1993)
讨论了分层模型的贝
叶斯分析
(Bayesian analysis of hierarchical
mod
2
els)
。其中
,
第一层采用了共轭先验分布。该例
考虑了相关的
10
个发电站的水泵
,
假设发生故障的水泵个数服从
Poisson
分布
p>
,
即
x
i
~
Poisson
(
θ
i
t
i
) , i
= 1
,
2
,
?
10.
其中
,
θ
i
表示水泵
i
的发生故障率
, t
i
表示水泵运行时间的长度
(
单位
:
千小时
) ,
数据见下表
:
故障率的共轭先验分布假设为
θ
i
~
Gamma
(
α
,
β
)
, i = 1, 2,
?
10.
George et al (1993)
对超参数
α
和
β
先验假设为
p>
α
~
Exponential (1.
0)
β
~
Gamma (0. 1, 1.
0)
他们给出了
β
的后验分布
,
但
β
的标准后验分布
无法给出。因而
,
他们使用
Gibbs
samp ler
模拟
得到
α
的后验密度。以上表达式可用贝叶斯图建模方法表示成如下有向关系图
(
图
1) ,
在
WinBUGS
中称作
Doodle
模
型。
(
注意
:
α
用
alpha
表示
< br>,
x
i
用
x [ i ]
表示
,
λ
i
用
lambda
[ i ]
表示
,<
/p>
其余类
似。
启动
W inBUGS14,
会出现两
个窗口
,
关闭其中一个
(L
icence Agreement
窗口
) ,
你会看到如下
Win
2
BUG
S
主窗口
(
图
2)
:
窗口简单明了
,W
inBUGS
主窗口和
W
indows
常用窗口结构类似
,
关闭、
最小化等基本操作相同。
WinBUGS
主窗口最上面一行为标题栏
( heading line ) ,
下一行是菜单
栏
(menuheadi
ng line )
———有
File, Tools,
Edit, Attributes,Info, Model, Inference, Op tions,
Doodle,
Map,Window, Help
———<
/p>
12
个菜单
,
最
下面一行是状态栏
( status line)
。
步骤
1:
Doodle
模型的建立和检验
[
1 ]
建立
Doodle
模型
在
W
inBUG
S
的使用中
,Doodle
模型非常特
别
,
它以节点
(
nodes)
、箭头
(
edges)
和平板
(
p
lates)
等图形方式出现
p>
(
对应图
1:
包含
alpha
的小椭圆形和包含
t[
i
]
的小矩形都为节点
;
箭头分
实线箭头和双线空心箭头
< br>;
右侧和下侧边线较粗的大矩形称为“平板”
) ,<
/p>
可以用图形的方式
来构建模型。模型的每个节点
< br>,
都含有特定的属性
,
如名称、
类型、分布或逻辑函数的定义等
( name, type,
distribution, orlogical function definition)
。
以下我们按照图
< br>1
的形状
,
以从上到下、从左至
右的顺序
,
利用
Doodle
菜单构建
Doodle
模型。
< br>
(1)
打开
Doodle
菜单
,
选择
p>
New (
新建
)
命令
,
可以打开一个名为
“
New Doodle
”
的对话框。
键入
200
、
150
和
20,
作为编辑窗口的显示宽度、显示高度
和节点的宽度。这三个选项控制编辑窗口和节
点的大小
,
输入数值的大小应与模型相适合。点击
OK,
一个无标题名
( untitled1)
的
DoodleBUGS
编辑窗口就产生了。
(
注
:
可以按默认值打开
,<
/p>
窗口大小可以按调节
windows
窗口
的一般方法调
节
)
。
(2)
在
此
DoodleBUGS
编辑窗口
(
untitled1)
中的空白处单击
(
左键
,
下同
)
鼠标
,
会自动产生一个椭
圆形节点<
/p>
( node) (
注
:
在此窗口中
,
不能按习惯任意点击
,
因为一点就会出现一个节点。
多余节点
< br>删除与一般删除不同
,
先用鼠标将需删除的节点点击选中
,
然后按住
Ctrl
键不放
,
再按下
delete
键或
backspace
键删除
) ,
窗口左上方也会同时出现七个蓝色的标题
,
分别为
p>
name (
名称
) , type
(
类型
) ,density
(
密度
) , mean
(
均值
) , precision
(
精度
) ,lower bound
(
下界
) , upper bound
(
上界
)
,
光
标在第一个名称栏
( name)
内闪烁
,
节点可以用鼠标点中后随意拖
动。在名称栏
( name)
内
,
p>
输入
“
alpha
”
(
表示
)
作
为此节点的名称。然后
,
name
右侧的是类型栏
( type)
,
单击
( type)
不放它
会自
动出现下拉菜单
,
菜单中有三个选项
:
随机、
逻辑和常量
( stochastic,logical, and constant) ,
p>
第一项
是默认值。由于
alpha
是随机变量
,
故选择默认值
;
再往右是密度栏
( density) ,
单击此栏会出现
16
种分布的下拉菜单栏
(
默认值是正态分布
dnorm)
。因为假设
alpha
服从
Exponential
指数分布
,
所
以选择
dexp (
表示
Exponential
分布
)
密度。接下来
,
在
scale
p>
框中输入数
值
1. 0
(
α
~
Exponential (
1. 0) )
。
对于下界和上界
(
lower bound and upper bound)
栏
,
不用输入数
值
,
< br>因为不需要对此节点的数值范围加以限制
。这样
,
就完成了对模型中参数
α
的节点属性定
义。在窗口中的其它位置重新再点击鼠标
,
生
成一个新的节点
,
命名为
beta
(
表示
β
)
。这个新
的节点的颜色相比会显得“高亮”
(
highlighted) ,
称之为选中状态。
(
注
:
节点只有处于选中状
态时
,
才能对节点的属性进行修改和编辑
)
。参照以上方法对此节点按假设条件
(
< br>β
~
Gamma
(0. 1,
1. 0)
)
进行属性设置。
类型栏
( type
)
中默认
stochastic,
在密
度
( densi
2
ty)
类型中按要求选择
dgamma
分布
,
在形状参数框
(
shape)
中输入
0.
1,
在尺度参数框
(
scale)
中输入
1. 0
。
创建一个新的
节点
theta[ i ] ,
name
后输入
theta[ i ] ,
type
中默认
stochastic , density<
/p>
中按要求选择
dgamma
分布。
注意
,
对于此节点
,
shape
和
scale
中不用输入值
,
因为
按假设它们分别为
alpha
和
beta(
θ
i
~
Gamma
(
α
,
β
)
) ,
通过下面箭头关系的操作
,
程序
会自动生成
shape
和
scale<
/p>
中的值。保持节点
theta [ i ]
处于选中状态
,
按住
Ctrl
键不放
,
点击
alp
ha
节点
(
内部
) ,
这时会在两个节点之间产生一
个实线箭头
(
表示随机节点到随机节点
)
,
箭头的方向从
alpha
节点指向
theta [ i ]
节点
———将
父节点与子节点进行连接———这时
,
在形状框
( shape)
中就会自动出现
alpha
。
同样操作
,
建立
从
beta
节点指向
theta[ i ]
节点的实线箭头
,
这时
,
在尺度框
( scale)
中就会自动出现
beta
p>
。
[
为了以
后的应
用
,
先将怎样进行箭头移动和删除的方法进行说明
,
想移动箭头
,
不要去点击
箭头
,
通过
移动节点
< br>,
箭头会随着自动调整。要想删除箭头
,
先选中子节点
(
箭头所指
)
,
然后按住
Ctrl
键不
放
,
再次点击父节点
(
p>
箭尾
) ,
箭头删除要注意次序
,
否则会加上一个新箭头
]
。
按照以上方式继续进行下去
,<
/p>
创建节点
t [ i
]
。对这个节点
,
选择它的类型
( type )
为常数
( constant) ,
这
时
,
你会发现节点
t [ i ]
p>
的形状会变成矩形。
(
注意
:
属性栏也随之发生变化
)
。接
着创建并定义一个新的节点
,
命名
为
lambda[ i ]
,
选择它的类型
( type)
为逻辑
logical,
在
value
栏
中
,
输入逻辑表达
式
theta[ i ]
*
t[
i ]
。按前述方法创建从父节点
theta [ i
]
到子节点
lambda[ i ]
的
箭头
,
注意
,
这次显示的箭头与以前有区别
,
呈双线
空心箭头
,
这种箭头表示随机变量到逻辑变
量之间的联系
,
区别于两个随机变量之间联系的实线箭头。
同理
,
也可建立从父节点
t[ i
]
到子
节点
lambda [ i ]
的双线空心箭头。
最后
,
根据条件
x
i
~
poisson
(
θ
i
t
i
) ,
创建节点
x[ i ] , d
ensity
中
选择密度为
dpois
(
表示
poisson
分布
)
,
创建从父节点
lambda [ i ]
到它的箭头
,
父节点的名称
lam
bda[ i]
会自动出现在
mean
栏中。
(3)
建立矩形“平板”
(p lat
es)
。按下
Ctrl
键不放
,
在
Doodle
窗口
内的空白处点击鼠标
,
就可创建
一个矩
形“平板”。用鼠标点击“平板”右侧或下侧较粗的边线
,
就可
选中激活它
,
并且可以
对它进行移动。
想对
“平板”
的大小进行调整
,
将鼠标点击
“平板”
的右下角顶点进行拖动
(
如