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

如何统计比较分组线性回归模型的两个预测值?

解决两组不同自变量取值下预测值的统计比较问题

你之前分开拟合两组模型的方式没法直接完成统计比较,因为两个独立模型的参数估计没有共享误差结构,无法计算预测值差值的标准误。正确的做法是合并两组数据,拟合包含分组与自变量二次项交互作用的模型,再通过对比检验目标预测值的差异。以下是具体步骤:

1. 合并数据并构造分组变量

将Healthy和CAD两组数据合并为一个数据框,新增一个标记分组的变量(比如group):

# 假设原数据框分别为df_healthy和df_cad
df_healthy$group <- "Healthy"
df_cad$group <- "CAD"
df_combined <- rbind(df_healthy, df_cad)

2. 拟合带交互项的GLM模型

拟合包含分组、percent_power二次项,以及两者交互作用的模型,这样可以捕捉两组的二次曲线是否存在差异:

model <- glm(VE ~ group * poly(percent_power, 2), data = df_combined)
summary(model)

这里的group * poly(...)等价于group + poly(...) + group:poly(...),交互项是检验两组曲线差异的关键。

3. 检验目标预测值的差异

推荐使用emmeans包来便捷计算并对比预测值,步骤如下:

# 安装并加载包(首次使用需安装)
# install.packages("emmeans")
library(emmeans)

# 定义需要比较的两个预测点
target_points <- data.frame(
  group = c("Healthy", "CAD"),
  percent_power = c(70, 80)
)

# 生成预测值并计算差异的统计检验结果
emm <- emmeans(model, ~ group, at = target_points)
contrast(emm, list(healthy70_vs_cad80 = c(1, -1)))

contrast函数会输出两个预测值的差值、标准误、统计量和p值,直接给出统计显著性结果。

如果不想用第三方包,也可以手动计算:

  • 提取模型系数和方差协方差矩阵(vcov(model))
  • 构造两个预测值差值的线性组合权重向量
  • 计算差值的标准误,再通过t/z检验得到p值
    但这种方法需要熟悉多项式项的编码规则(poly默认是正交编码),操作繁琐,不如emmeans高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:48:40