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

在mgcv的使用-可获得性设计中,如何为二项BAM仅对存在点设置AR1结构?

仅对存在点纳入AR1结构的使用-可获得性模型构建方案

一、直接通过bam的AR.start参数实现需求

核心思路是让仅存在点的觅食行程形成连续时间序列,控制点则被标记为独立序列的起点(无后续观测,自然不会产生自相关)。具体步骤如下:

  1. 标记存在/控制点并构建序列起点标记列

    # 假设数据中type列区分存在点("used")和控制点("available")
    dat$used <- as.integer(dat$type == "used")
    
    # 构建AR.start列:标记每个时间序列的起点
    dat$ar_start <- FALSE
    # 存在点:每个觅食行程的第一个观测设为序列起点
    dat$ar_start[dat$used == 1 & !duplicated(dat$trip_id)] <- TRUE
    # 控制点:每个单独设为序列起点(无后续观测,AR1无作用)
    dat$ar_start[dat$used == 0] <- TRUE
    
  2. 拟合带AR1结构的bam模型

    library(mgcv)
    
    # 权重设置:存在点权重1,控制点权重0.2(5个等价1个)
    dat$weight <- ifelse(dat$used == 1, 1, 1/5)
    
    # 拟合模型
    final_model <- bam(
      used ~ s(cov1) + s(cov2) + s(individual, bs = "re") + ti(cov1, cov2),
      data = dat,
      family = binomial(),
      weights = dat$weight,
      rho = NULL,  # 留空让模型自动估计AR1系数,也可指定初始值如0.7
      AR.start = dat$ar_start
    )
    

    原理:AR.start标记后,AR1自相关仅在同一序列内的连续观测间生效。控制点每个都是独立序列,无后续观测,因此不会引入自相关;存在点则按觅食行程形成序列,仅在同行程内的存在点间计算自相关。

二、替代方案:使用gamm结合corAR1相关结构

若bam的方案效果不佳,可尝试gamm(mgcv中混合模型接口),通过自定义相关分组实现仅存在点的自相关:

  1. 构建相关分组变量

    # 存在点用觅食行程ID作为分组,控制点用唯一ID(每个单独分组)
    dat$cor_group <- ifelse(
      dat$used == 1,
      as.character(dat$trip_id),
      paste0("ctrl_", seq_len(nrow(dat)))
    )
    
  2. 拟合带corAR1的混合模型

    library(nlme)
    
    # 定义AR1相关结构:仅在同一cor_group内生效
    ar1_cor <- corAR1(form = ~ 1 | cor_group)
    
    gamm_model <- gamm(
      used ~ s(cov1) + s(cov2) + s(individual, bs = "re") + ti(cov1, cov2),
      data = dat,
      family = binomial(),
      weights = dat$weight,
      correlation = ar1_cor
    )
    

    原理:控制点的分组唯一,每个分组仅含1个观测,corAR1无法计算自相关;存在点的分组为觅食行程,同组内的观测会应用AR1结构。

三、模型诊断建议

拟合后需验证残差自相关是否改善:

# 提取存在点的Pearson残差
used_resid <- resid(final_model, type = "pearson")[dat$used == 1]
# 按觅食行程分组绘制ACF
by(used_resid, dat$trip_id[dat$used == 1], acf, plot = TRUE)

内容的提问来源于stack exchange,提问作者Matt Carter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 12:05:37