BookmarkSubscribeRSS Feed
SAS-questioner
Obsidian | Level 7

Hi, I want to do a survival analysis using PROC PHREG with a time-dependent covariate. I will use the data that I found on the SAS manual as example. 

data Heart;
   input ID
         @5  Bir_Date mmddyy8.
         @14 Acc_Date mmddyy8.
         @23 Xpl_Date mmddyy8.
         @32 Ter_Date mmddyy8.
         @41 Status 1.
         @43 PrevSurg 1.
         @45 NMismatch 1.
         @47 Antigen 1.
         @49 Mismatch 4.
         @54 Reject 1.
         @56 NotTyped $1.;
   label Bir_Date ='Date of birth'
         Acc_Date ='Date of acceptance'
         Xpl_Date ='Date of transplant'
         Ter_Date ='Date last seen'
         Status   =  'Dead=1 Alive=0'
         PrevSurg ='Previous surgery'
         NMismatch= 'No of mismatches'
         Antigen  = 'HLA-A2 antigen'
         Mismatch ='Mismatch score'
         NotTyped = 'y=not tissue-typed';
   Time= Ter_Date - Acc_Date;
   Acc_Age=int( (Acc_Date - Bir_Date)/365 );
   if ( Xpl_Date ne .) then do;
      WaitTime= Xpl_Date - Acc_Date;
      Xpl_Age= int( (Xpl_Date - Bir_Date)/365 );
   end;
   datalines;
  1 01 10 37 11 15 67          01 03 68 1 0
  2 03 02 16 01 02 68          01 07 68 1 0
  3 09 19 13 01 06 68 01 06 68 01 21 68 1 0 2 0 1.11 0
  4 12 23 27 03 28 68 05 02 68 05 05 68 1 0 3 0 1.66 0
  5 07 28 47 05 10 68          05 27 68 1 0
  6 11 08 13 06 13 68          06 15 68 1 0
  7 08 29 17 07 12 68 08 31 68 05 17 70 1 0 4 0 1.32 1
  8 03 27 23 08 01 68          09 09 68 1 0
  9 06 11 21 08 09 68          11 01 68 1 0
 10 02 09 26 08 11 68 08 22 68 10 07 68 1 0 2 0 0.61 1
 11 08 22 20 08 15 68 09 09 68 01 14 69 1 0 1 0 0.36 0
 12 07 09 15 09 17 68          09 24 68 1 0
 13 02 22 14 09 19 68 10 05 68 12 08 68 1 0 3 0 1.89 1
 14 09 16 14 09 20 68 10 26 68 07 07 72 1 0 1 0 0.87 1
 15 12 04 14 09 27 68          09 27 68 1 1
 16 05 16 19 10 26 68 11 22 68 08 29 69 1 0 2 0 1.12 1
 17 06 29 48 10 28 68          12 02 68 1 0
 18 12 27 11 11 01 68 11 20 68 12 13 68 1 0 3 0 2.05 0
 19 10 04 09 11 18 68          12 24 68 1 0
 20 10 19 13 01 29 69 02 15 69 02 25 69 1 0 3 1 2.76 1
 21 09 29 25 02 01 69 02 08 69 11 29 71 1 0 2 0 1.13 1
 22 06 05 26 03 18 69 03 29 69 05 07 69 1 0 3 0 1.38 1
 23 12 02 10 04 11 69 04 13 69 04 13 71 1 0 3 0 0.96 1
 24 07 07 17 04 25 69 07 16 69 11 29 69 1 0 3 1 1.62 1
 25 02 06 36 04 28 69 05 22 69 04 01 74 0 0 2 0 1.06 0
 26 10 18 38 05 01 69          03 01 73 0 0
 27 07 21 60 05 04 69          01 21 70 1 0
 28 05 30 15 06 07 69 08 16 69 08 17 69 1 0 2 0 0.47 0
 29 02 06 19 07 14 69          08 17 69 1 0
 30 09 20 24 08 19 69 09 03 69 12 18 71 1 0 4 0 1.58 1
 31 10 04 14 08 23 69          09 07 69 1 0
 32 04 02 05 08 29 69 09 14 69 11 13 69 1 0 4 0 0.69 1
 33 01 01 21 11 27 69 01 16 70 04 01 74 0 0 3 0 0.91 0
 34 05 24 29 12 12 69 01 03 70 04 01 74 0 0 2 0 0.38 0
 35 08 04 26 01 21 70          02 01 70 1 0
 36 05 01 21 04 04 70 05 19 70 07 12 70 1 0 2 0 2.09 1
 37 10 24 08 04 25 70 05 13 70 06 29 70 1 0 3 1 0.87 1
 38 11 14 28 05 05 70 05 09 70 05 09 70 1 0 3 0 0.87 0
 39 11 12 19 05 20 70 05 21 70 07 11 70 1 0            y
 40 11 30 21 05 25 70 07 04 70 04 01 74 0 1 4 0 0.75 0
 41 04 30 25 08 19 70 10 15 70 04 01 74 0 1 2 0 0.98 0
 42 03 13 34 08 21 70          08 23 70 1 0
 43 06 01 27 10 22 70          10 23 70 1 1
 44 05 02 28 11 30 70          01 08 71 1 1
 45 10 30 34 01 05 71 01 05 71 02 18 71 1 0 1 0 0.0  0
 46 06 01 22 01 10 71 01 11 71 10 01 73 1 1 2 0 0.81 1
 47 12 28 23 02 02 71 02 22 71 04 14 71 1 0 3 0 1.38 1
 48 01 23 15 02 05 71          02 13 71 1 0
 49 06 21 34 02 15 71 03 22 71 04 01 74 0 1 4 0 1.35 0
 50 03 28 25 02 15 71 05 08 71 10 21 73 1 1            y
 51 06 29 22 03 24 71 04 24 71 01 02 72 1 0 4 1 1.08 1
 52 01 24 30 04 25 71          08 04 71 1 0
 53 02 27 24 07 02 71 08 11 71 01 05 72 1 0            y
 54 09 16 23 07 02 71          07 04 71 1 0
 55 02 24 19 08 09 71 08 18 71 10 08 71 1 0 2 0 1.51 1
 56 12 05 32 09 03 71 11 08 71 04 01 74 0 0 4 0 0.98 0
 57 06 08 30 09 13 71          02 08 72 1 0
 58 09 17 23 09 23 71 10 13 71 08 30 72 1 1 2 1 1.82 1
 59 05 12 30 09 29 71 12 15 71 04 01 74 0 1 2 0 0.19 0
 60 10 29 22 11 18 71 11 20 71 01 24 72 1 0 3 0 0.66 1
 61 05 12 19 12 04 71          12 05 71 1 0
 62 08 01 32 12 09 71          02 15 72 1 0
 63 04 15 39 12 12 71 01 07 72 04 01 74 0 0 3 1 1.93 0
 64 04 09 23 02 01 72 03 04 72 09 06 73 1 1 1 0 0.12 0
 65 11 19 20 03 06 72 03 17 72 05 22 72 1 0 2 0 1.12 1
 66 01 02 19 03 20 72          04 20 72 1 0
 67 09 03 52 03 23 72 05 18 72 01 01 73 1 0 3 0 1.02 0
 68 01 10 27 04 07 72 04 09 72 06 13 72 1 0 3 1 1.68 1
 69 06 05 24 06 01 72 06 10 72 04 01 74 0 0 2 0 1.20 0
 70 06 17 19 06 17 72 06 21 72 07 16 72 1 0 3 1 1.68 1
 71 02 22 25 07 21 72 08 20 72 04 01 74 0 0 3 0 0.97 0
 72 11 22 45 08 14 72 08 17 72 04 01 74 0 0 3 1 1.46 0
 73 05 13 16 09 11 72 10 07 72 12 09 72 1 0 3 1 2.16 1
 74 07 20 43 09 18 72 09 22 72 10 04 72 1 0 1 0 0.61 0
 75 07 25 20 09 29 72          09 30 72 1 0
 76 09 03 20 10 04 72 11 18 72 04 01 74 0 1 3 1 1.70 0
 77 08 27 31 10 06 72          10 26 72 1 0
 78 02 20 24 11 03 72 05 31 73 04 01 74 0 0 3 0 0.81 0
 79 02 18 19 11 30 72 02 04 73 03 05 73 1 0 2 0 1.08 1
 80 06 27 26 12 06 72 12 31 72 04 01 74 0 1 3 0 1.41 0
 81 02 21 20 01 12 73 01 17 73 04 01 74 0 0 4 1 1.94 0
 82 08 19 42 11 01 71          01 01 73 0 0
 83 10 04 19 01 24 73 02 24 73 04 13 73 1 0 4 0 3.05 0
 84 05 13 30 01 30 73 03 07 73 12 29 73 1 0 4 0 0.60 1
 85 02 13 25 02 06 73          02 10 73 1 0
 86 03 30 24 03 01 73 03 08 73 04 01 74 0 0 3 1 1.44 0
 87 12 19 26 03 21 73 05 19 73 07 08 73 1 0 2 0 2.25 1
 88 11 16 18 03 28 73 04 27 73 04 01 74 0 0 3 0 0.68 0
 89 03 19 22 04 05 73 08 21 73 10 28 73 1 0 4 1 1.33 1
 90 03 25 21 04 06 73 09 12 73 10 08 73 1 1 3 1 0.82 0
 91 09 08 25 04 13 73          03 18 74 1 0
 92 05 03 28 04 27 73 03 02 74 04 01 74 0 0 1 0 0.16 0
 93 10 10 25 07 11 73 08 07 73 04 01 74 0 0 2 0 0.33 0
 94 11 11 29 09 14 73 09 17 73 02 25 74 1 1 3 0 1.20 1
 95 06 11 33 09 22 73 09 23 73 10 07 73 1 0            y
 96 02 09 47 10 04 73 10 16 73 04 01 74 0 0 2 0 0.46 0
 97 04 11 50 11 22 73 12 12 73 04 01 74 0 0 3 1 1.78 0
 98 04 28 45 12 14 73 03 19 74 04 01 74 0 0 4 1 0.77 0
 99 02 24 24 12 25 73          01 14 74 1 0
100 01 31 39 02 22 74 03 31 74 04 01 74 0 1 3 0 0.67 0
101 08 25 24 03 02 74          04 01 74 0 0
102 10 30 33 03 22 74          04 01 74 0 0
103 05 20 28 09 13 67          09 18 67 1 0
;

And the SAS code that use to handle the time-dependent variable would be as follows:

proc phreg data= Heart plot(overlay)=survival;
   model Time*Status(0)= XStatus Acc_Age ;
   if (WaitTime = . or Time < WaitTime) then XStatus = 0;
   else  XStatus = 1;
run;

So, in this case, I can take the time-dependent into consideration. I still want to create a Kaplan-Meier curve to demonstrate the survival rate based on this and it seems like PROC PHREG is better than PROC LIFETEST because the former statement can take covariates into account. However, after I ran this code, there is a warning that " The SURVIVAL plot cannot be created in the presence of time-dependent explanatory variables". Could any one know how to deal with this kinds of situation? Thank you!

1 REPLY 1
OsoGris
SAS Employee
My latest discussion on this matter with the PHREG developer revealed the following sentiments:

"Currently PROC PHREG does not estimate the survival function when there are time-dependent covariates. It is a bit controversial whether it is doable (for example, Fisher and Lin (1999)). My feeling is that it is doable in some situations (for example when all td-covariates are external). Such an implementation will require new syntax to input a profile (trajectory over time) for each time-dependent covariate. In the meantime, I will discuss ideas with my colleagues and our research into this topic is ongoing. If you have any references to share with us, by all means, please do so."





I'm sorry to have to give you such bad news but there isn't really a way to plot survival curves for time-dependent covariates.

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

What is ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 1 reply
  • 584 views
  • 2 likes
  • 2 in conversation