我想使用Cox比例危害模型来预测数据集的生存时间。我已将模型分为两个层次(Strata1和Strata2)进行分层。现在,我想使用Survfit()进行预测。我创建了一个新数据集,每个协变量的平均值分别对应于Strata1和Strata2。但是,当我绘制Survfit时,它为每个新数据返回两条曲线。我的理解是我需要以某种方式指定分层,但是我不知道如何。一些帮助,将不胜感激。谢谢!
library(survival)
# Fit the model
cox.fit <- coxph(Surv(Time, Status, type = "right") ~ x1 + x2
+ strata(Strata), data = df, model=TRUE)
# Calculate means for each Strata
# Strata 1
df_Strata1 <- subset(df, Strata=="1")
x1_mean1 <- mean(df_Strata1$x1)
x2_mean1 <- mean(df_Strata1$x2)
#Strata 2
df_Strata2 <- subset(df, Strata=="2")
x1_mean2 <- mean(df_Strata2$x1)
x2_mean2 <- mean(df_Strata2$x2)
# Create new data for prediction
new_data1 <- data.frame(x1=x1_mean1, x2=x2_mean1, Strata="1")
new_data2 <- data.frame(x1=x1_mean2, x2=x2_mean2, Strata="2")
# Make predictions
pred.surv1 <- survfit(cox.fit, newdata = new_data1, strata=TRUE)
pred.surv2 <- survfit(cox.fit, newdata = new_data2, strata=TRUE)
# Plot
plot(pred.surv1$time, pred.surv1$surv, type="l", lty=1, ylim=c(0,1))
lines(pred.surv2$time, pred.surv2$surv, type = "l", lty=2)
我希望为每个预测看到一条曲线,但是我为每个预测得到两条曲线。