inlabru 时空分析
library(INLA) # 用于之后的建模
library(MASS) # 用于真实的多元正态分布模拟
library(tidyverse)
library(inlabru)
library(fdmr)
library(sf)
library(inlatools)
covid19_data <- fdmr::load_tutorial_data(dataset = "priors", filename = "covid19_dataBris.rds")
covid19_sf <- covid19_data |> st_as_sf(coords=c("LONG", "LAT"))
coordinates <- st_coordinates(covid19_sf)
locs <- unique(coordinates)
# 计算初始参数
initial_range <- diff(range(locs[, 1])) / 3
max_edge <- initial_range / 2
# 2. 构建改进的网格,mesh从地图构建,此处不对。
mesh <- fm_mesh_2d(
loc = locs,
max.edge = c(1, 2) * max_edge,
offset = c(initial_range, initial_range),
cutoff = max_edge / 5
)
# 3. 定义SPDE模型
spde <- inla.spde2.pcmatern(
mesh = mesh,
prior.range = c(initial_range, 0.5),
prior.sigma = c(1, 0.01)
)
# 4. 设置时间趋势先验,
rw1_prior <- list(theta = list(prior = "pc.prec", param = c(1, 0.01)))
model1 <- bru(cases ~ Intercept(1)+ Population + prevalence +
site(st_coordinates(geometry),model=spde)+ #site(st_coordinates)
trend(main=week,model='rw1',hyper = list(theta = rw1_prior)),
formula = cases ~ Intercept + Population + prevalence + site + trend, #可省略
data = covid19_sf,
family = "poisson")
summary(model1)
评论
发表评论