如何在rms::ols模型中实现emmeans交互项带p值的分析?
用
rms::ols拟合模型后计算交互项边际均值及p值的方法 用rms::ols拟合模型后,完全可以借助emmeans包实现和lm模型一致的交互项边际均值(EMM)计算与p值分析,操作步骤几乎和lm场景一致,具体如下:
1. 准备环境与数据
先加载所需包并处理数据,将分类变量转换为因子类型:
library(rms) library(emmeans) data(mtcars) mtcars$cyl <- as.factor(mtcars$cyl)
2. 用ols拟合回归模型
按照需求指定模型公式,写法和lm完全一致:
fit_ols <- ols(mpg ~ hp + wt*cyl, data = mtcars)
3. 计算交互项的边际均值并输出统计量
直接调用emmeans函数指定交互项,再通过summary的infer=TRUE参数输出p值和置信区间:
emm_ols <- emmeans(fit_ols, ~ wt*cyl) summary(emm_ols, infer = TRUE)
运行后会得到类似以下的输出(数值可能因模型细节略有差异):
wt cyl emmean SE df lower.CL upper.CL t.ratio p.value 3.22 4 20.1 1.546 25 16.9 23.3 12.996 <.0001 3.22 6 18.9 0.968 25 16.9 20.9 19.498 <.0001 3.22 8 18.2 1.152 25 15.8 20.6 15.789 <.0001
注意事项
- 如果在
ols中使用了稳健标准误(比如添加robust=TRUE参数),emmeans会自动适配并使用对应的稳健标准误计算结果; - 输出结果结构和
lm模型下的emmeans输出完全一致,可直接解读边际均值、标准误、置信区间及p值。
内容的提问来源于stack exchange,提问作者bison2178
相关产品推荐
相关产品推荐

