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

使用随机截距模型拟合值绘图为何斜率不同?如何修正?

问题解决:让随机截距模型的Spaghetti Plot斜率一致

问题原因

你用geom_smooth(method = lm)对每个id的拟合值重新做线性回归,这和原模型的固定斜率无关——拟合值包含了Time变量的影响,每个id内Stress_RQ1和Time可能存在关联,导致拟合出的斜率偏离模型的固定系数。

修正方案:基于模型参数生成预测线

直接用随机截距模型的固定斜率和每个id的随机截距,生成控制Time后的预测值,再绘制线条,确保所有id的回归线斜率一致。

步骤1:提取模型参数

# 提取固定效应系数
fixed_coef <- fixef(model1a)
stress_fixed_slope <- fixed_coef["Stress_RQ1"]
fixed_intercept <- fixed_coef["(Intercept)"]
time_fixed_slope <- fixed_coef["Time"]

# 提取每个id的随机截距,并计算总截距(固定截距+随机截距)
id_random_intercepts <- ranef(model1a)$id[, "(Intercept)"]
id_total_intercepts <- fixed_intercept + id_random_intercepts

步骤2:生成控制Time的预测数据

选择Time的均值(或你需要的固定值),生成每个id在Stress_RQ1全范围内的预测值:

# 创建预测网格:覆盖Stress_RQ1的全部范围,包含所有id,固定Time为均值
pred_data <- expand.grid(
  Stress_RQ1 = seq(min(data_mini_clean$Stress_RQ1), max(data_mini_clean$Stress_RQ1), length.out = 100),
  id = unique(data_mini_clean$id),
  Time = mean(data_mini_clean$Time)
)

# 计算每个id的预测值
pred_data$MET_pred <- id_total_intercepts[as.character(pred_data$id)] + 
  stress_fixed_slope * pred_data$Stress_RQ1 + 
  time_fixed_slope * pred_data$Time

步骤3:绘制Spaghetti Plot

用geom_line绘制每个id的回归线,用geom_abline绘制总体回归线:

ggplot() +
  # 绘制每个id的回归线(斜率统一为模型固定斜率)
  geom_line(data = pred_data,
            aes(x = Stress_RQ1, y = MET_pred, group = factor(id), color = factor(id)),
            alpha = 0.3) +
  # 绘制总体固定效应回归线
  geom_abline(
    intercept = fixed_intercept + time_fixed_slope * mean(data_mini_clean$Time),
    slope = stress_fixed_slope,
    color = "blue",
    linewidth = 1
  ) +
  scale_color_viridis_d(option = "F", begin = 0, end = 1) +
  labs(x = "Stress_RQ1", y = "MET_mean (log, predicted at mean Time)") +
  theme_minimal()

补充说明

如果一定要基于原始拟合值绘图,你需要排除Time的干扰,但这种方法不如直接用模型参数可靠。更简单的方式是,每个id的回归线应该是模型固定斜率加上该id的拟合截距(当Stress_RQ1取特定值时的拟合值),但这需要确保Time在每个id内是固定的,否则仍会有偏差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 04:35:24