A Cox model allows you to use data from all participants in a single model, regardless of individual follow-up times. That's the most efficient use of your data. That allows you to generate survival curves covering the entire 10-year period at once.
After you have the complete model, you can extract information about any particular time interval you wish. That way, individuals with longer follow-up contribute information to all time intervals when they were at risk.
Here's one of the first examples in the R survival vignette:
library(survival)
cfit1 <- coxph(Surv(time, status) ~ age + sex + wt.loss, data=lung)
This is a single model built from data on 228 individuals having observation times from 5 to 1022 days. That uses all the available data.
Although the survfit()
function typically is used to display modeled survival curves starting from time = 0
, it can display results for different starting times and time intervals. For example, if you want to show predicted survival from cfit1
for males (blue) versus females (red) between years 1 and 2, conditional on having already survived for one year, you can use the start.time
argument to start with both groups at 100% survival, and limit the display to the subsequent year by setting xlim
:
plot(survfit(cfit1,
newdata=data.frame(age=c(63,63),sex=c(1,2),wt.loss=c(7,7)),
start.time=365),
xlab="Time",ylab="Fraction surviving",
xlim=c(365,730),col=c("blue","red"),bty="n")
You can also include confidence intervals or indicate censoring times on the curves as you wish.