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

如何可视化线性混合效应模型中EDA_G_specific_responses与G_expressivity的关联?

可视化线性混合模型中EDA_G_specific_responses与G_expressivity的关联

针对你构建的线性混合模型,以下是几种直观展示EDA_G_specific_responses与G_expressivity关联的方法,均使用R语言常用工具实现:

方法1:原始数据散点图 + 模型拟合趋势线

这种方法能同时展示原始数据分布和模型预测的关联趋势,适合连续型的G_expressivity变量:

library(ggplot2)
library(lme4)
library(ggeffects)

# 生成G_expressivity的边际预测值(自动控制其他协变量为均值/参考类别)
pred <- ggpredict(model, terms = "G_expressivity [all]")

# 绘图
ggplot(pred, aes(x = x, y = predicted)) +
  # 叠加原始数据散点(调小透明度避免重叠)
  geom_jitter(data = Model_df, aes(x = G_expressivity, y = EDA_G_specific_responses), 
              alpha = 0.2, color = "gray") +
  # 添加模型拟合线和95%置信区间
  geom_line(color = "darkblue", linewidth = 1) +
  geom_ribbon(aes(ymin = conf.low, ymax = conf.high), fill = "lightblue", alpha = 0.3) +
  labs(x = "讲故事者手势表达性 (G_expressivity)", 
       y = "皮肤电活动响应阈值跨越情况 (EDA_G_specific_responses)",
       title = "G_expressivity与EDA响应的关联趋势") +
  theme_minimal()

方法2:分组分布箱线图 + 模型预测点

如果G_expressivity是分类变量,可通过箱线图展示不同水平下响应变量的分布,同时叠加模型预测值:

# 先将G_expressivity转换为因子(若原本为连续型可先分箱)
Model_df$G_expressivity <- as.factor(Model_df$G_expressivity)

# 计算各分类水平的预测值
pred_cat <- ggpredict(model, terms = "G_expressivity")

# 绘图
ggplot(Model_df, aes(x = G_expressivity, y = EDA_G_specific_responses)) +
  geom_violin(fill = "lightgray", alpha = 0.5) +
  geom_jitter(alpha = 0.2, color = "darkgray") +
  # 添加模型预测点和置信区间
  geom_point(data = pred_cat, aes(y = predicted), color = "darkblue", size = 3) +
  geom_errorbar(data = pred_cat, aes(ymin = conf.low, ymax = conf.high), 
                width = 0.2, color = "darkblue") +
  labs(x = "讲故事者手势表达性 (G_expressivity)", 
       y = "皮肤电活动响应阈值跨越情况 (EDA_G_specific_responses)",
       title = "不同G_expressivity水平下的EDA响应分布") +
  theme_minimal()

方法3:快速可视化固定效应系数

用sjPlot包直接生成模型固定效应的系数图,能清晰看到G_expressivity的效应大小与显著性:

library(sjPlot)

# 绘制所有固定效应的系数及置信区间
plot_model(model, type = "est", show.values = TRUE, value.offset = 0.3) +
  labs(title = "线性混合模型固定效应系数",
       x = "系数值", y = "固定效应变量") +
  theme_minimal()

# 单独绘制G_expressivity的预测效应
plot_model(model, type = "pred", terms = "G_expressivity") +
  labs(x = "讲故事者手势表达性 (G_expressivity)", 
       y = "皮肤电活动响应阈值跨越情况 (EDA_G_specific_responses)",
       title = "G_expressivity对EDA响应的预测效应") +
  theme_minimal()

注意事项

  • 你的响应变量是二分类(0/1),严格来说应使用广义线性混合模型(glmer(..., family = binomial)),若之前误用lmer,建议先调整模型,上述方法同样支持glmer输出。
  • 若需展示交互效应(如G_expressivity与Role的关联),可在ggpredict的terms参数中添加变量,例如terms = c("G_expressivity", "Role")。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 11:32:39