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

如何在rms::cph中仅保留交互项而排除主效应?

在rms::cph中仅保留交互项的解决方法

在rms::cph中直接使用~a:b的写法无法生效,是因为该函数默认遵循边际性原则,倾向于要求交互项伴随主效应存在。以下是两种可靠的解决方式:

方法1:显式创建交互项变量

先单独构造交互项变量,再将其作为唯一预测变量传入模型,这是最稳妥的方式:

# 假设你的数据框为dat,a和b是预测变量
dat$ab_interact <- with(dat, interaction(a, b, drop = TRUE))

# 构建仅含交互项的Cox模型
library(rms)
fit <- cph(Surv(time, death) ~ ab_interact, data = dat)

如果a和b是连续变量,交互项实际是两者的乘积,可直接计算:

dat$ab_interact <- dat$a * dat$b
fit <- cph(Surv(time, death) ~ ab_interact, data = dat)

方法2:使用I()函数强制解析交互项

在公式中用I()包裹交互项,强制cph不自动添加主效应:

# 分类变量交互
fit <- cph(Surv(time, death) ~ I(a:b), data = dat)

# 连续变量交互(等价于乘积)
fit <- cph(Surv(time, death) ~ I(a*b), data = dat)

需要注意的是,仅保留交互项而排除主效应的模型在统计解释上需要谨慎,确保这种设定符合你的研究逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 22:56:29