Estoy de acuerdo con las respuestas anteriores de que Cox no fue principalmente diseñado para cálculos de riesgo absoluto, pero creo que fue más por razones históricas (las personas se centraban en riesgos relativos y no absolutos), y no veo una razón legítima para no usarlo para predicciones. Ya hay trabajos en modelado de predicción que utilizan con éxito Cox, pero creo que prefieren el paquete glmnet para la familia Cox, con flexibilidad en los términos de regularización y el paquete hdnom para las probabilidades de supervivencia (hdnom:::glmnet_survcurve).
Volviendo a la pregunta, yendo en ciclos para el modelo Cox básico de survfit, llegué a este código para obtener las probabilidades individuales estimadas de un evento:
bh=basehaz(cox_model_fit, newdata = data, centered = FALSE) #función de riesgo acumulado base para todas las covariables establecida en 0 (centered = false)
lps <- predict(cox_model_fit, data, type = "lp") #predictores lineales, betas x covariables para cada observación
tiempo_de_interes = 6 #si te interesa la supervivencia en t=6
i_tiempo_de_interes = match(1, round(bh$time,1) == tiempo_de_interes, nomatch = -100) #molestamente, no hay argumento de tiempo en la función basehaz, así que encuentra ese tiempo en la lista (se construye en todos los tiempos censurados y de eventos, así que elige un punto así o necesitas interpolar entre los puntos disponibles)
prob_evento_t = 1-exp(-bh[i_tiempo_de_interes,1])^exp(lps) #calcula el riesgo de evento a partir del riesgo base y los predictores lineales. devuelve un vector de probabilidades para cada persona en los "datos"
Luego puedes verificar prob_evento_t por separado para casos y controles/censurados y probar la diferencia, etc.
O bien, usa esta función para calcular la estadística de concordancia para datos de supervivencia, esto da la probabilidad de que dos observaciones aleatorias de casos y controles tengan las probabilidades en el orden correcto (menores posibilidades de evento para controles que para los casos). Para resultado binario, el índice de concordancia es igual al área bajo la curva ROC, por lo que es una medida muy común de qué tan bueno es un modelo para clasificación/modelos binarios.
survConcordance(Surv(data$survtimed, data$outcome) ~ lps)$concordance