想不到吧?OpenBUGS 除了做统计还能这样用......
丁香园
我们大家都知道,OpenBUGS 是进行贝叶斯统计分析的得力工具,它不仅能做统计分析,详情请戳手把手教你用 OpenBUGS 做统计,还可以绘制疾病地图,下面告诉大家如何利用 OpenBUGS 绘制疾病地图。
需要准备的材料
1. 需要绘制的目标地区地图,一般从中国地理信息系统网站上可以下载到(.shp)格式的中国及各省份的地图。
2. 数据,需要目标地区各个行政区域上某种疾病的发病率或患病率,并能计算出疾病的期望发病或者期望死亡数据。
3. 需要在电脑客户端安装 OpenBUGS3.2.3 软件。
具体操作步骤
以西北五省(新疆、甘肃、青海、宁夏和陕西)某年腹泻患病率数据为例
1. 生成 GeoBUGS 格式的地图:目前分析用的地图普遍采用。shp 格式,而 GeoBUGS 只能识别自带的地图,因此将 .shp 格式的地图需要进行适当的转化才能应用到 GeoBUGS 中。可以通过 ArcInfo 或 R 软件来实现(具体方法可以在网上找到资源)。
如下图已经生成了 GeoBUGS 能够识别的 China. 西北五省地图如下图。
2. 生成空间邻接矩阵:在 OpenBUGS 窗口界面,点击「Map->Adjacency Tool」启动 Adjacency Tool 对话框,先在 map 标签中选择 China. 西北五省地图,点击 adj map 按钮以激活 adj matrix 按钮和 show region 按钮,然后点击 adj matrix 按钮生成邻接矩阵(注意生成的矩阵在第 3 步的数据加载中将会用到),如下图。
3. 进行模型指定,数据加载,迭代:具体过程参见(手把手教你用 OpenBUGS 做统计)该实例的模型如下:
4. 生成疾病地图:打开 Map Tool 对话框,如下图所示:
① 在 Map 标签的下拉菜单中选择中国地图;
② 在 Variable 标签的空白框中输入腹泻疾病患病相对危险度 RR(在第 3 步中通过 Gibbs 抽样获得);
③ 根据 Variable 中变量的类型,在 Quantity 下拉菜单中选择相应的值。如果变量是 data 类型(例如 SMR、期望值 E 或者协变量),则选择 Value;如果变量是 stochastic quantity 类型(如相对危险度 RR),我们可以选择 Quanntity 菜单中的任意一个;
5. 设置分割点:目的是将患病不同风险的地区用不同的颜色区分开。在 GeoBUGS 中有两种地图分割点,分别为绝对值分割点(abs value)和百分位数分割点(percentile),GeoBUGS 也允许用户自定义切割点的值。本例中笔者自定义分割点,按照腹泻在各个省份的患病相对危险度。值得注意的是,设置的切割点不同,显示的地图也不同。
6. 设置颜色:在 Palette 下拉菜单来编辑地图的颜色,也可以单击地图上注释的小方块来改变颜色。
7. 点击 plot 按钮去生成地图。如下图所示:
8. 如果改变了地图的颜色、切割点等 (比如我们改变切割点的值,则绘制的地图如下),我们可以通过 set cuts 按钮去更新目前选择的地图,也可以通过 plot 按钮去生成一个新的地图。
9. 地图的输出和保存:通过 GeoBUGS 工具生成的疾病地图,通过「File<-Save As」将其保存为 OpenBUGS能直接调用的 .odc 格式, 以便我们重新编辑地图的切割点和地图颜色。
至此,一个完整的基于贝叶斯分析工具 OpenBUGS 在疾病制图方面的应用介绍完毕。