R - Survfit () Предсказания со стратами - PullRequest
0 голосов
/ 09 мая 2019

Я хочу использовать Пропорциональную модель опасности Кокса для прогнозирования времени выживания в наборе данных.Я разделил модель на фактор с двумя уровнями (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) 

Я хотел бы видеть одну кривую для каждого прогноза, но вместо этого я получаю две кривые для каждого прогноза.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...