4.2 .The inla function

4.2 .The inla()
inla()函数是用来调整模型的 。inla()的主要参数如下 。
4.3 先验参数规格化
输入names(inla.()$prior)可以看到R-INLA中可用的先验名称,输入inla.()$prior可以看到包含每个先验选项的列表 。关于特定先验的文档可以用inla.doc("")查看 。
默认情况下,模型的截距被分配了一个高斯先验,其平均值和精度都等于0 。其余的固定影响被分配了高斯先验,其平均值等于0,精度等于0.001 。这些值可以通过inla.set..fixed.()[c("mean.", "prec.", "mean", "prec")]查看 。这些先验值可以在inla()的.fixed参数中改变,指定一个包含高斯分布的平均值和精度的列表 。
具体来说,这个列表包含mean.和prec.,代表截距的先验平均值和精度 。而mean和prec则代表了除截距以外的所有先验均值和精度 。
prior.fixed < - list(mean.intercept = <>,prec.intercept = <>, mean = <>, prec = <>) res <- inla(formula,data = http://www.kingceram.com/post/d,control.fixed = prior.fixed )
超参数θ的先验值被分配在f()的参数hyper中 。
formula <- y ~ 1 + f(<>, model = <>, hyper = prior.f)
在inla()的 . 中分配似然参数的先验值 。
res <- inla(formula, data = http://www.kingceram.com/post/d, control.fixed = prior.fixed, control.family = list(..., hyper = prior.l) )
hyper接受一个命名的列表,其名称等同于每个超参数,其值等同于一个标明先验参数的列表 。具体来说,该列表包含以下值 。
prior.prec <- list(initial = <>, prior = <>, param = <>, fixed = <>) prior <- list(prec = prior.prec)
先验需要在超参数的内部尺度中设置 。例如,iid模型定义了一个精度为τ的独立高斯分布的随机变量向量 。我们可以通过输入inla.doc(“iid”)来检查这个模型的文档,看到精度τ在对数尺度上被表示为log(τ) 。因此,先验需要在对数精度log(τ)上进行定义 。
4.4
这里我们展示了一个示例,该示例演示了如何指定和适合一个模型,以及如何使用实际数据集和R-INLA检查结果 。具体来说,我们对12家医院手术后的死亡率进行了建模 。这项分析的目的是利用外科手术死亡率来评估每家医院的表现,并确定每家医院的表现是否异常出色或异常糟糕 。
4.4.1 Data
我们使用的数据包括手术的数量和死亡的数字在12家医院进行心脏手术的婴儿 。Surg是一个有三列的数据框架,即医院表示医院,n表示每家医院在一年内进行的手术数量,r表示每家医院在手术后30天内的死亡人数 。
Surg
4.4.2 Model
我们指定一个模型来获得每个医院的死亡率 。我们假设每家医院的死亡人数为二项式可能性,Y i,死亡率为pi
Y i ~ Binomial(n i , p i ), i = 1, . . . , 12.
我们还假设各个医院的死亡率在某种程度上是相似的,并为真实死亡率pi指定了一个随机效应模型
logit(p i ) = α + u i , u i ~ N(0, σ 2 ).
缺省情况下,为α指定一个非信息先验,即种群对数死亡率α ~ N(0, 1/τ), τ = 0.
在R-INLA中,随机效应u i的精度的默认先验值为1/σ 2 ~ Gamma(1,5 × 10?5) 。我们可以通过在标准差σ之前设置一个惩罚复杂度(PC)来改变这个先验 。例如,我们可以指定σ大于1的概率小等于0.01:P(σ > 1) = 0.01 。在R-INLA中,此先验被指定为
prior.prec