多元线性回归后如何检验不同性别组调整均值的显著性差异?
比较多元线性回归中性别组调整均值的显著性方法
方法1:用emmeans自带的pairs()函数(最简便)
你已经通过emmeans()得到了调整均值,直接对该结果调用pairs()即可自动完成组间差异的显著性检验:
# 若已将emmeans结果存为mean_MF pairs(mean_MF) # 或直接一步执行 pairs(emmeans(corona_soz, ~ sex))
输出会包含两组调整均值的差异、标准误、t统计量和p值,示例输出类似:
contrast estimate SE df t.ratio p.value 1 - 2 0.0900 0.0268 20894 3.354 0.0008
其中p.value就是组间差异的显著性结果,若小于0.05则说明两组调整均值存在显著差异。
方法2:查看原线性回归模型的summary结果
由于sex是二分类变量(1=男性,2=女性),你的线性回归模型中sex的系数本身就代表女性相对于男性的调整均值差异,对应的t值和p值就是显著性检验结果:
summary(corona_soz)
在输出的系数表中找到sex行:
Estimate:即女性(sex=2)的调整均值减去男性(sex=1)的调整均值(6.96-7.05=-0.09)Pr(>|t|):就是组间差异的p值,和pairs(mean_MF)的结果完全一致
方法3:手动计算p值(适合理解原理)
若想手动验证,步骤如下:
- 计算两组调整均值的差异:
diff = 7.05 - 6.96 = 0.09 - 计算差异的标准误:基于线性回归方差齐性假设,差异的SE为两组SE的平方和开根号:
SE_diff = sqrt(0.0193² + 0.0187²) ≈ 0.02685 - 计算t统计量:
t = diff / SE_diff ≈ 0.09 / 0.02685 ≈ 3.35 - 计算双侧p值:通过t分布累积概率函数计算:
结果约为0.0008,与前两种方法的p值一致。2 * pt(-abs(3.35), df = 20894)
推荐方案
优先使用方法1的pairs(mean_MF),它直接基于模型的协变量调整结果计算,操作简便且不易出错,还能自动适配后续多分类变量的组间比较校正需求。
内容的提问来源于stack exchange,提问作者Patmae
相关产品推荐
相关产品推荐

