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

区间删失数据的比例风险模型实现及诊断图方案问询

处理区间删失数据的比例风险模型及诊断方法

一、拟合支持区间删失的比例风险模型

coxph()确实不支持type='interval2'的区间删失数据,你可以用以下两种方案解决:

方案1:使用survival包的survreg()拟合参数化比例风险模型

如果可以接受参数化的比例风险模型(如Weibull、指数分布),survreg()直接支持区间删失的Surv对象。示例代码:

# 以Weibull分布为例(属于比例风险族)
weibull_model <- survreg(survobj1_2 ~ covariate1 + covariate2, data = set_1_2, dist = "weibull")

Weibull模型的比例风险假设可通过检查尺度参数是否显著偏离1初步判断,后续也可结合残差诊断验证。

方案2:使用flexsurv包的flexsurvreg()拟合更灵活的比例风险模型

flexsurv包支持多种参数化生存模型(包括Weibull、Gompertz等比例风险模型),且完美适配区间删失数据。示例代码:

library(flexsurv)
# 拟合Weibull比例风险模型
flex_weibull <- flexsurvreg(survobj1_2 ~ covariate1 + covariate2, data = set_1_2, dist = "weibull")

二、区间删失模型的比例风险假设诊断(类似ggcoxzph的图)

针对参数化比例风险模型,可通过以下方式生成类似缩放Schoenfeld残差的诊断图:

1. 基于survival包的手动残差绘图

对于survreg()拟合的模型,可计算得分残差后,与变换时间绘图:

# 计算得分残差
resid_score <- residuals(weibull_model, type = "score")
# 用区间中点的对数作为变换后的时间近似
transformed_time <- log((set_1_2$int_1 + set_1_2$int_2)/2)
# 分协变量绘制残差图
par(mfrow = c(1, 2))
plot(transformed_time, resid_score[, "covariate1"], xlab = "对数时间", ylab = "缩放得分残差", main = "covariate1")
abline(h = 0, lty = 2)
plot(transformed_time, resid_score[, "covariate2"], xlab = "对数时间", ylab = "缩放得分残差", main = "covariate2")
abline(h = 0, lty = 2)

2. 使用flexsurv包的内置诊断函数

flexsurv的plot()函数可直接生成类似ggcoxzph()的缩放Schoenfeld残差图:

# 绘制比例风险假设诊断图
plot(flex_weibull, type = "scaledschoenfeld")

若偏好ggplot2风格,可提取残差数据后自定义绘图:

library(ggplot2)
# 提取缩放Schoenfeld残差
resid_df <- as.data.frame(residuals(flex_weibull, type = "scaledschoenfeld"))
resid_df$time <- log((set_1_2$int_1 + set_1_2$int_2)/2)

# 单个协变量的ggplot图
ggplot(resid_df, aes(x = time, y = covariate1)) +
  geom_point(alpha = 0.5) +
  geom_smooth(method = "loess", se = TRUE) +
  geom_hline(yintercept = 0, linetype = "dashed") +
  labs(x = "对数时间", y = "缩放Schoenfeld残差", title = "covariate1")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 08:35:20