【原创】R语言使用贝叶斯 层次模型进行空间数据分析报告论文(附代码数据)

【原创】R语言使用贝叶斯 层次模型进行空间数据分析报告论文(附代码数据)
【原创】R语言使用贝叶斯 层次模型进行空间数据分析报告论文(附代码数据)

咨询QQ:3025393450

有问题百度搜索“”就可以了

欢迎登陆官网:https://www.360docs.net/doc/b017561476.html,/datablog

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

介绍

在本节中,我将重点介绍使用集成嵌套拉普拉斯近似方法的贝叶斯推理。

可以估计贝叶斯层次模型的后边缘分布。鉴于模型类型非常广泛,我们将重点关注用于分析晶格数据的空间模型。

数据集:纽约州北部的白血病

为了说明如何与空间模型拟合,将使用纽约白血病数据集。该数据集记录了普查区纽约州北部的许多白血病病例。数据集中的一些变量是:

?Cases:1978-1982年期间的白血病病例数。

?POP8:1980年人口。

?PCTOWNHOME:拥有房屋的人口比例。

?PCTAGE65P:65岁以上的人口比例。

?AVGIDIST:到最近的三氯乙烯(TCE)站点的平均反距离。

可以按以下方式加载数据集:

library(spdep)

library(DClusterm)

咨询QQ:3025393450

有问题百度搜索“”就可以了

欢迎登陆官网:https://www.360docs.net/doc/b017561476.html,/datablog

data(NY8)

鉴于有兴趣研究纽约州北部的白血病风险,因此首先要计算预期的病例数。这是通过计算总死亡率(总病例数除以总人口数)并将其乘以总人口数得出的:

rate <- sum(NY8$Cases) / sum(NY8$POP8)

NY8$Expected <- NY8$POP8 * rate

一旦获得了预期的病例数,就可以使用标准化死亡率(SMR)来获得原始的风险估计,该标准是将观察到的病例数除以预期的病例数得出的:

NY8$SMR <- NY8$Cases / NY8$Expected

疾病作图

在流行病学中,重要的是制作地图以显示相对风险的空间分布。在此示例中,我们将重点放在锡拉库扎市以减少生成地图的计算时间。因此,我们用锡拉丘兹市的区域创建索引:

# Subset Syracuse city

syracuse <- which(NY8$AREANAME == "Syracuse city")

可以使用函数spplot(在包中sp)简单地创建疾病图:

library(viridis)

## Loading required package: viridisLite

spplot(NY8[syracuse, ], "SMR", #at = c(0.6, 0.9801, 1.055, 1.087, 1.125, 13), col.regions = rev(magma(16))) #gray.colors(16, 0.9, 0.4))

咨询QQ:3025393450

有问题百度搜索“”就可以了

欢迎登陆官网:https://www.360docs.net/doc/b017561476.html,/datablog

## Loading required package: viridisLite

可以使用以下tmap软件包轻松创建交互式地图:

library(tmap)

tmap_mode("view")

SMR_map <- tm_shape(NY8[syracuse, ]) +

tm_fill(col = "SMR", alpha = 0.35) +

tm_borders() +

tm_shape(TCE) + tm_dots(col = "red") # Add TCE sites widgetframe::frameWidget(print(SMR_map))

咨询QQ:3025393450

有问题百度搜索“”就可以了

欢迎登陆官网:https://www.360docs.net/doc/b017561476.html,/datablog

请注意,先前的地图还包括11个受TCE污染的站点的位置,可以通过缩小看到它。

混合效应模型

泊松回归

我们将考虑的第一个模型是没有潜在随机效应的Poisson模型,因为这将提供与其他模型进行比较的基准。

模型:

library(INLA)

m1 <- inla(Cases ~ 1 + AVGIDIST,

data = as.data.frame(NY8),

family = "poisson",

E = NY8$Expected, control.predictor = list(compute = TRUE),

https://www.360docs.net/doc/b017561476.html,pute = list(dic = TRUE, waic = TRUE))

请注意,它的glm功能类似于该功能。在此,参数E用于预期的案例数。或设置了其他参数来计算模型参数的边际

(使用control.predictor)并计算一些模型选择标准(使用https://www.360docs.net/doc/b017561476.html,pute)。

接下来,可以获得模型的摘要:

summary(m1)

##

咨询QQ:3025393450

有问题百度搜索“”就可以了

欢迎登陆官网:https://www.360docs.net/doc/b017561476.html,/datablog

## Call:

## c("inla(formula = Cases ~ 1 + AVGIDIST, family = \"poisson\", data

## = as.data.frame(NY8), ", " E = NY8$Expected, https://www.360docs.net/doc/b017561476.html,pute =

## list(dic = TRUE, waic = TRUE), ", " control.predictor =

## list(compute = TRUE))")

## Time used:

## Pre = 0.368, Running = 0.0968, Post = 0.0587, Total = 0.524

## Fixed effects:

## mean sd 0.025quant 0.5quant 0.975quant mode kld

## (Intercept) -0.065 0.045 -0.155 -0.065 0.023 -0.064 0

## AVGIDIST 0.320 0.078 0.160 0.322 0.465 0.327 0

##

## Expected number of effective parameters(stdev): 2.00(0.00)

## Number of equivalent replicates : 140.25

##

## Deviance Information Criterion (DIC) ...............: 948.12

## Deviance Information Criterion (DIC, saturated) ....: 418.75

## Effective number of parameters .....................: 2.00

##

## Watanabe-Akaike information criterion (WAIC) ...: 949.03

## Effective number of parameters .................: 2.67

##

## Marginal log-Likelihood: -480.28

## Posterior marginals for the linear predictor and

## the fitted values are computed

具有随机效应的泊松回归

可以通过在线性预测变量中包括iid高斯随机效应,将潜在随机效应添加到模型中,以解决过度分散问题,

是通过f-function 指定的INLA:

咨询QQ:3025393450

有问题百度搜索“”就可以了

欢迎登陆官网:https://www.360docs.net/doc/b017561476.html,/datablog

NY8$ID <- 1:nrow(NY8)

m2 <- inla(Cases ~ 1 + AVGIDIST + f(ID, model = "iid"),

data = as.data.frame(NY8), family = "poisson",

E = NY8$Expected,

control.predictor = list(compute = TRUE),

https://www.360docs.net/doc/b017561476.html,pute = list(dic = TRUE, waic = TRUE))

现在,该模式的摘要包括有关随机效果的信息:

summary(m2)

##

## Call:

## c("inla(formula = Cases ~ 1 + AVGIDIST + f(ID, model = \"iid\"),

## family = \"poisson\", ", " data = as.data.frame(NY8), E =

## NY8$Expected, https://www.360docs.net/doc/b017561476.html,pute = list(dic = TRUE, ", " waic =

## TRUE), control.predictor = list(compute = TRUE))" )

## Time used:

## Pre = 0.236, Running = 0.315, Post = 0.0744, Total = 0.625

## Fixed effects:

## mean sd 0.025quant 0.5quant 0.975quant mode kld

## (Intercept) -0.126 0.064 -0.256 -0.125 -0.006 -0.122 0

## AVGIDIST 0.347 0.105 0.139 0.346 0.558 0.344 0

##

## Random effects:

## Name Model

## ID IID model

##

## Model hyperparameters:

## mean sd 0.025quant 0.5quant 0.975quant mode

相关主题
相关文档
最新文档