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

在R中使用coxme执行混合效应Cox回归时,survest的等效函数是什么?

coxme模型中替代survest获取生存概率的方法

你运行的混合效应Cox模型代码如下:

survival<-coxme(Surv(tr_dur_a,ftr_2)~mod_muac+ drev_oedema_now_day0+danger_adm+tr_diet2+danger_adm + tr_daysec+hiv_stat+breast_feeding_adm+ sex_adm+mod_diar+diag_sepsis_adm+diag_lrti_pneumonia_adm +other_dx+ (1|site), data=survival1b)

你需要实现类似survest(survival,newdata = Cnew, times=time)的功能来获取生存概率,coxme包没有直接对应的survest()函数,但可以通过以下两种方法实现:

方法一:直接使用survfit()函数

survfit()支持处理coxme对象,能直接生成指定新数据的生存曲线并提取生存概率:

# 生成生存曲线对象
Csur <- survfit(survival, newdata = Cnew, times = time)
# 提取对应时间点的生存概率
survival_prob <- Csur$surv
  • 若仅需要固定效应的预测结果(忽略随机效应),添加re.form = NA参数:
Csur <- survfit(survival, newdata = Cnew, times = time, re.form = NA)

方法二:通过基准风险+线性预测值手动计算

若需要更精细的控制,可分步计算:

  1. 获取模型的基准风险函数
  2. 计算新数据的线性预测值
  3. 结合两者推导生存概率
# 获取基准生存函数的累积风险
base_haz <- basehaz(survival, centered = FALSE)
# 计算新数据的线性预测值(忽略随机效应则加re.form = NA)
lp <- predict(survival, newdata = Cnew, type = "linear.predictors")
# 匹配目标时间点的累积风险
cum_hazard <- approx(base_haz$time, base_haz$hazard, xout = time, rule = 2)$y |> cumsum()
# 计算生存概率
survival_prob <- exp(-cum_hazard)^exp(lp)

注意事项

  • 如果需要包含随机效应,新数据必须包含分组变量(如你的模型中的site),否则会默认使用随机效应的均值(通常为0)
  • survfit()返回的对象还包含标准误、置信区间等信息,可通过Csur$lower和Csur$upper获取置信限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 04:50:23