You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

INLA中零截断泊松模型(cenpoisson)参数E的含义与实现问询

零截断泊松INLA模型中参数E的解释与代码实现

一、参数E的核心含义

E是暴露量/偏移量(Exposure/Offset),在泊松类模型中扮演基准尺度的角色:

  • 泊松模型的期望均值定义为 $\lambda = E \times \exp(\eta)$,其中$\eta$是由协变量、空间效应等组成的线性预测器。
  • E用于量化不同观测之间的“观测机会差异”:比如样方调查面积是2倍,E设为2,意味着该样方的期望物种丰度是基准情况的2倍;如果所有观测的调查努力一致,E取1即可。
  • 在cenpoisson(零截断泊松)族中,E的作用和普通泊松模型完全一致,并非截断相关参数,但INLA要求显式传入该参数(即使所有E=1)。

二、代码修改指导

由于你的数据是无零值的泊松分布(截断区间为[1,25]),若没有特殊的观测努力差异,可统一设置E=1,修改方式如下:

修改后的完整代码

interval70 = c(min(strandline70$abundance), max(strandline70$abundance))
N70 = nrow(strandline70)
X70 = data.frame(Intercept = rep(1, N70),
                 sand_mean = strandline70$sand_mean,
                 spring_mean = strandline70$spring_mean)
# 定义暴露量E:若无特殊差异,统一设为1
E70 = rep(1, N70)

# 构建inla.stack时将E加入数据列表
StackFit = inla.stack(tag = "Fit",     
                      data = list(y = strandline70$abundance, E = E70),
                      A = list(A3, 1),
                      effects = list(w3.index,    # 空间权重效应
                                     X70))          # 协变量

# 模型公式保持不变
f = y ~ -1 + 
  Intercept + 
  sand_mean + spring_mean  + 
  f(w, model = spde)

# 调用inla时传入E参数
inla_sp = inla(f, 
               family = "cenpoisson",
               control.family = list(cenpoisson.I = interval70), # 截断区间[1,25]
               data = inla.stack.data(StackFit),
               E = inla.stack.data(StackFit)$E,
               control.compute = list(waic=T),
               control.predictor = list(A = inla.stack.A(StackFit)))

关键说明

  • 若你的数据存在实际暴露量差异(如样方面积、调查时长不同),只需将E70替换为对应的实际数值向量即可。
  • 原代码中FIT = inla.stack(StackFit)是冗余操作,直接使用StackFit即可。

内容的提问来源于stack exchange,提问作者Charlotte Taelman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 12:17:39