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

RStudio中分组线性回归的分析与可视化实现求助

解决方案:两组数据的线性回归分析与可视化

1. 组内线性回归显著性检验

使用dplyr分组拟合线性模型,结合broom包整理输出统计结果(系数、p值、R²):

# 加载依赖包
library(tidyverse)
library(broom)

# 分组拟合回归并提取统计量
group_reg_results <- data_NeuroPsych %>%
  group_by(Group) %>%
  do(model = lm(Neuropsych_Delta ~ Flanker_Ratio, data = .)) %>%
  mutate(
    coef_details = map(model, tidy),    # 提取系数与显著性
    model_summary = map(model, glance) # 提取模型整体指标(R²、模型p值)
  ) %>%
  unnest(coef_details) %>%
  unnest(model_summary)

# 查看关键结果(分组、变量、系数、p值、R²)
select(group_reg_results, Group, term, estimate, p.value, r.squared, statistic)

输出中,每组Flanker_Ratio对应的p.value就是该组x与y线性关系的显著性,r.squared为决定系数。


2. 组间回归差异显著性检验

通过交互项模型检验两组回归斜率的差异:拟合包含Flanker_Ratio与Group交互项的线性模型,交互项的p值即为组间回归关系的显著性差异指标。

# 构建含交互项的回归模型
interaction_model <- lm(Neuropsych_Delta ~ Flanker_Ratio * Group, data = data_NeuroPsych)

# 查看交互项的显著性
tidy(interaction_model) %>% filter(term == "Flanker_Ratio:Group")

若交互项p值<0.05,说明两组的回归斜率存在显著差异;若不显著,说明两组线性关系的斜率一致,仅可能存在截距差异。


3. 同图展示所有分析结果

使用ggplot2结合ggpmisc包,在图中添加分组回归线、回归方程、R²、组内p值,以及组间差异的标注:

# 安装并加载ggpmisc
install.packages("ggpmisc")
library(ggpmisc)

# 提取交互项p值用于图中标注
interact_p_val <- tidy(interaction_model) %>% 
  filter(term == "Flanker_Ratio:Group") %>% 
  pull(p.value) %>% 
  round(3)

# 绘图
ggplot(data_NeuroPsych, aes(x = Flanker_Ratio, y = Neuropsych_Delta, color = Group)) +
  geom_point(alpha = 0.7, size = 2) +
  # 添加分组回归线
  geom_smooth(method = "lm", fill = NA, linewidth = 1.2) +
  # 添加每组的回归方程、R²、p值(自动解析为数学表达式)
  stat_poly_eq(
    aes(label = paste(..eq.label.., ..rr.label.., ..p.value.label.., sep = "~~~")),
    formula = y ~ x,
    parse = TRUE,
    label.x = "right",          # 标签对齐方向
    label.y = c(0.9, 0.8),      # 两组标签分别放在不同y轴位置,避免重叠
    size = 4
  ) +
  # 添加组间斜率差异的标注
  annotate("text", x = Inf, y = Inf, 
           label = paste("Slope difference p =", interact_p_val),
           hjust = 1.1, vjust = 1.1, size = 4) +
  theme_minimal(base_size = 12) +
  labs(x = "Flanker Ratio", y = "Neuropsych Delta", color = "Group")
  • stat_poly_eq自动生成每组的回归方程(如y = ax + b)、R²值和模型p值;
  • 组间差异标注放在图的右上角,清晰展示斜率差异的显著性;
  • 可调整label.x、label.y、size等参数优化标签位置和样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:50:31