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

如何用emmeans可视化中断时间序列模型中T与D的交互效应

中断时间序列(ITS)模型中T与D交互效应的emmeans可视化方案

问题背景

你已构建包含T(时间)、D(干预)交互项的线性回归模型,控制了sex和race协变量,希望用emmeans包可视化T和D的交互效应,直观展示干预前后幸福感指数的水平变化与趋势变化。

实现步骤

1. 安装并加载必要包

若未安装emmeans,先执行安装命令:

install.packages("emmeans")
library(emmeans)

2. 基于模型生成边际均值预测

用emmeans计算sex和race取平均水平时,不同D分组下Y随T变化的边际均值:

# 按D分组,计算Y随T的预测值,指定T的取值范围保证曲线平滑
emm <- emmeans(ts, ~ T | D, at = list(T = seq(0, 400, 10)))

3. 可视化交互效应

提供两种常用实现方式:

方式一:用emmeans内置函数快速绘图
emmip(ts, D ~ T, at = list(T = seq(0, 400, 10)), 
      xlab = "Time (days)", ylab = "Wellbeing Index",
      main = "Interaction of Time and Swimming Intervention")
# 添加干预标记线
abline(v = 200, col = "firebrick", lty = 2)
text(200, max(predict(ts)), "Start of Swimming Classes", col = "firebrick", pos = 4)
  • 自动生成两条拟合线,分别对应干预前(D=0)和干预后(D=1)的趋势
方式二:结合ggplot2自定义样式(更灵活)

若需个性化图形,先将emmeans结果转为数据框,再用ggplot2绘图:

library(ggplot2)

# 转换emmeans结果为数据框
emm_df <- as.data.frame(emm)

# 绘制带置信区间的交互效应图
ggplot(emm_df, aes(x = T, y = emmean, color = as.factor(D))) +
  geom_line(linewidth = 1.2) +
  geom_ribbon(aes(ymin = lower.CL, ymax = upper.CL, fill = as.factor(D)), alpha = 0.2) +
  labs(x = "Time (days)", y = "Wellbeing Index",
       color = "Swimming Intervention", fill = "Swimming Intervention",
       title = "Effect of Swimming Classes on Wellbeing Index") +
  scale_color_manual(values = c("0" = "gray", "1" = "blue")) +
  scale_fill_manual(values = c("0" = "gray", "1" = "blue")) +
  theme_bw() +
  # 添加干预标记线与说明文本
  geom_vline(xintercept = 200, color = "firebrick", linetype = "dashed") +
  annotate("text", x = 220, y = max(emm_df$emmean), 
           label = "Start of Swimming Classes", color = "firebrick")
  • 加入置信区间,直观展示估计的不确定性
  • 支持自定义颜色、主题等样式

4. 图形解读

  • 两条线的垂直差距对应干预的即时水平变化(β2)
  • 两条线的斜率差异对应干预后的趋势变化(β3)
  • 干预线(v=200)明确划分干预前后的时间区间

内容的提问来源于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.14 20:26:14