# Ideas and good practices for reporting crude survival trends?

I have 9-year-spanning data on patients survival (n = 10000). Each patient has a date of inclusion (got a diagnosis), which was used to determine the year of inclusion. Thus, temporal trends can be analysed using year or date variable. The binning of year is also possible, however, 9 years isn't that long period.

In particular, I'm looking for methods, how to report survival trends.

Option 1

To use year as a factor and plot KM curves. However, this is very hard to read and it does not leave no room for confidence intervals. P-values should be calculated for each time period using Logrank test.

Option 2

Is this also acceptable to make a crosstable and report Logrank test p-values for each time period?

Option 3

If proportional hazards assumption holds, can I run Cox model and follows:

time | status ~ year


The first year can be a reference and I can report HR-s for subsequent years? However, this is not crude survival as I am reporting hazard ratios?

Other options

Is it possible to make a figure a like this for each time period (1 month, 6 month etc)? Confidence intervals would make it very easy to see trends.

Would it be correct to use logistic/binary regression for making such figure? Y variable can be survival status (0,1).

• Is there some reason why you are separating the data into calendar years and evidently only looking at survival within each calendar year? More details on what you are trying to accomplish with your study would help. Please provide that information by editing the question, as comments can be hard to find and sometimes disappear.
– EdM
Commented Sep 19, 2020 at 15:41
• Good point! I added a bit more information. It's at the beginning of my initial post. Commented Sep 19, 2020 at 16:03

First, it's critical to use the date of entry of a patient into the study as time = 0 for that patient. All subsequent dates for that patient should be expressed as differences from that patient-specific time reference. It's not clear that you are doing this, as all of your survival times seem to be truncated at 1 year. If you have 9 years of data, I would expect to see some survival data extending out toward 9 years.

Once you have set of the reference times appropriately, you certainly can include the year of diagnosis as a predictor in a Cox model. If you have actual entry dates for each patient, you could use those specific entry dates (relative to the start of the entire study) to provide more granularity. Using a restricted cubic spline to model the date of diagnosis is a good way to evaluate and include non-linear associations of hazard with date of diagnosis, which can then be displayed as you wish. The rms package in R provides the necessary tools.

• Thank you very much! First, clearing the first point. All patients have a complete 12-month follow-up. I used their date of diagnosis and date of mortality (if died) to calculate to variables: (1) time_12month in days (min 0, max 365), and status 0 or 1 (died). Is this correct? KM plot was restricted to 12-months as I am not interested in longer periods. Commented Sep 19, 2020 at 16:35
• Second part also. Am I correct, that the Cox model will have a new continuous predictor variable (e.g. time in months from study start to diagnosis) replacing year variable? Plus, this variable is used within splines function. Commented Sep 19, 2020 at 16:41
• I'm always a tad skeptical about throwing away several years' worth of potential data, but if restriction to 12 months is required for your project it's OK as you seem to be treating the survival correctly as censored for patients still alive at 12 months. Then including date of diagnosis as a covariate, as outlined in the answer, makes a lot of sense. If you have actual dates of study entry available you should use them as continuously as possible rather than binning into years or months. The rcs() function in rms handles the splines.
– EdM
Commented Sep 19, 2020 at 16:43
• One more thing. If I have nine years, is it reasonable to use 9 knots in rms()? Commented Sep 23, 2020 at 13:56
• @st4co4 nine knots is an awful lot. Usually 3 or 4 or 5 is enough. Consider whether you are encoding date of diagnosis by day (in which case you have several thousand distinct dates), by month (then about 100 dates) or by year (only 9 dates). You can be more flexible the more distinct date values that you have. See Section 2.4.6 of Harrell's course notes.
– EdM
Commented Sep 23, 2020 at 15:31