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

如何在中断时间序列模型中使用marginaleffects的predictions函数

中断时间序列(ITS)模型中marginaleffects包predictions函数的正确用法

问题背景

  • 拟合中断时间序列(ITS)回归模型,结果变量为连续型的幸福感指数(Wellbeing Index)
  • 关键变量:T(天数)、D(二元干预变量,0=未开展游泳课,1=开展游泳课)、sex(二分类:male/female)、race(四分类:Green/Blue/Brown/Yellow)
  • 研究目标:评估游泳课对幸福感的影响,核心关注水平变化(β₂,干预后即时变化)和斜率变化(β₃,干预后时间趋势变化)

数据加载与处理代码

URL <- "https://github.com/DS4PS/pe4ps-textbook/blob/master/data/time-series-example.rds?raw=true"     
dataTS      <- readRDS(gzcon(url(URL)))
dataTS$Y    <- round(dataTS$Y,1)          
dataTS$sex  <- sample(c("male", "female"), size = NROW(dataTS), replace = TRUE)
dataTS$race <- sample(c("Green", "Blue", "Brown", "Yellow"), 
                        size = NROW(dataTS), replace = TRUE)

拟合的ITS模型

ts <- lm( Y ~ T + D + T*D + sex + race, data=dataTS )

疑问:predictions函数的两种调用方式选择

需要用marginaleffects包的predictions()完成两个任务:

  1. 生成预测值
  2. 绘制Y(幸福感指数)随X(时间)变化的趋势图,可视化干预前后差异

现有两种调用方式:

方式一

predictions(ts, type = "response")

方式二

time_seq_pre  <- seq(0,   200,  by = 5)
time_seq_post <- seq(201, 300,  by = 5)

pred_grid <- bind_rows(
  data.frame(T = time_seq_pre,  D = 0),
  data.frame(T = time_seq_post, D = 1)
) |>
  mutate(
    sex       = "male",       
    race      = "Green"
  )
 
predictions(ts, 
             newdata = pred_grid,
             type = "response")

正确用法指导

  • 方式一的局限性:基于原始数据集的每一行生成预测值,仅能得到现有观测的拟合结果。但原始数据中T和D是对应真实场景的(干预后D=1的行仅对应T≥201),无法生成"干预前假设开展游泳课"或"干预后假设未开展游泳课"的反事实预测,无法直接用于对比干预前后的趋势差异。

  • 方式二更匹配你的需求:

    1. 自定义的pred_grid明确划分了干预前(T=0~200,D=0)和干预后(T=201~300,D=1)的时间区间,同时固定协变量为特定参考类别(这里选"male"和"Green",也可根据需求替换为均值或其他分组)。
    2. 基于该网格生成的预测值,能直接对应干预前后的标准趋势线,完全满足可视化干预效果的需求。
    3. 如果需要展示不同协变量分组的趋势(比如不同性别),只需在pred_grid中加入对应分组的取值即可。
  • 补充优化:若要生成所有协变量组合的预测值,可使用marginaleffects自带的datagrid()函数自动构建网格,示例:

predictions(ts, newdata = datagrid(T = seq(0, 300, 5), D = c(0,1), sex = c("male","female"), race = "Green"))

内容的提问来源于stack exchange,提问作者Eagle Hawk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 13:13:14