UCLA Academic Technology Services HomeServicesClassesContactJobs
Help the Stat Consulting Group by giving a gift             
Loading

SAS Textbook Examples
Survival Analysis by John P. Klein and Melvin L. Moeschberger
Chapter 9: Refinements of the Semiparametric Proportional Hazards Models

Section 9.2: Time-Dependent Covariates

Table 9.1 on page 273 based on data set bone_marrow. This table is done with three different models. We first have to create centered variables in a data step. The time-varying covariates are created on-the-fly in proc phreg.
data bone_marrow1;
   set bone_marrow;
    z11 = z1 - 28;
    z22 = z2 - 28;
    z1xz2 = z11 * z22;
  g1 = ( g = 1 );
  g2 = ( g = 2 );
  g3 = ( g = 3 );
run;
proc phreg data= bone_marrow1;
  model t2*dfree(0) = za g2 g3 ;
  if ( t2 >= ta &a=1) then  za = 1; 
  else  za = 0;
run;
proc phreg data= bone_marrow1;
  model t2*dfree(0)= zc g2 g3;
  if ( t2 >= tc & c = 1) then zc = 1;
  else zc = 0;
run;

proc phreg data= bone_marrow1;
  model t2*dfree(0)= zp g2 g3;
  if (t2 >= tp & p=1) then  zp = 1;
  else  zp = 0;
run;

                     Analysis of Maximum Likelihood Estimates

                   Parameter      Standard                                  Hazard
Variable    DF      Estimate         Error    Chi-Square    Pr > ChiSq       Ratio

za           1       0.31836       0.28514        1.2466        0.2642       1.375
g2           1      -0.55164       0.28799        3.6690        0.0554       0.576
g3           1       0.43381       0.27222        2.5396        0.1110       1.543

                     Analysis of Maximum Likelihood Estimates

                   Parameter      Standard                                  Hazard
Variable    DF      Estimate         Error    Chi-Square    Pr > ChiSq       Ratio

zc           1      -0.19478       0.28757        0.4587        0.4982       0.823
g2           1      -0.62251       0.29622        4.4163        0.0356       0.537
g3           1       0.36567       0.26850        1.8548        0.1732       1.441

                     Analysis of Maximum Likelihood Estimates

                   Parameter      Standard                                  Hazard
Variable    DF      Estimate         Error    Chi-Square    Pr > ChiSq       Ratio

zp           1      -1.12986       0.32800       11.8658        0.0006       0.323
g2           1      -0.49624       0.28924        2.9435        0.0862       0.609
g3           1       0.38134       0.26761        2.0306        0.1542       1.464
Table 9.2 on page 274 based on three models.
/*Table 9.2 Fixed Factors Only*/
proc phreg data= bone_marrow1;
  model t2*dfree(0) =  g2 g3 z8 z11 z22 z1xz2;
run;
/*Table 9.2 Time-Dependent Factor*/
proc phreg data= bone_marrow1;
  model t2*dfree(0)= zp g2 g3;
  if (t2 >= tp & p=1) then  zp = 1;
  else  zp = 0;
run;
/*Table 9.2 All Factor*/
proc phreg data= bone_marrow1;
  model t2*dfree(0) =  g2 g3 z8 z11 z22 z1xz2 zp;
   if (t2 >= tp & p=1) then  zp = 1;
  else  zp = 0;
run;
 First model: Model Fit Statistics

                 Without           With
Criterion     Covariates     Covariates

-2 LOG L         746.719        713.982

                 Analysis of Maximum Likelihood Estimates

                   Parameter      Standard                                  Hazard
Variable    DF      Estimate         Error    Chi-Square    Pr > ChiSq       Ratio

g2           1      -1.09058       0.35430        9.4752        0.0021       0.336
g3           1      -0.40439       0.36278        1.2425        0.2650       0.667
z8           1       0.83687       0.27853        9.0276        0.0027       2.309
z11          1       0.00686       0.01968        0.1214        0.7276       1.007
z22          1       0.00391       0.01826        0.0458        0.8305       1.004
z1xz2        1       0.00315     0.0009498       11.0074        0.0009       1.003

 Second model: Model Fit Statistics

                 Without           With
Criterion     Covariates     Covariates

-2 LOG L         746.719        723.647

                    Analysis of Maximum Likelihood Estimates

                   Parameter      Standard                                  Hazard
Variable    DF      Estimate         Error    Chi-Square    Pr > ChiSq       Ratio

zp           1      -1.12986       0.32800       11.8658        0.0006       0.323
g2           1      -0.49624       0.28924        2.9435        0.0862       0.609
g3           1       0.38134       0.26761        2.0306        0.1542       1.464

 Third model: Model Fit Statistics

                 Without           With
Criterion     Covariates     Covariates

-2 LOG L         746.719        706.611

                     Analysis of Maximum Likelihood Estimates

                   Parameter      Standard                                  Hazard
Variable    DF      Estimate         Error    Chi-Square    Pr > ChiSq       Ratio

g2           1      -1.03234       0.35317        8.5444        0.0035       0.356
g3           1      -0.41538       0.36526        1.2932        0.2555       0.660
z8           1       0.81302       0.28339        8.2309        0.0041       2.255
z11          1       0.00950       0.01947        0.2379        0.6258       1.010
z22          1       0.00448       0.01795        0.0623        0.8029       1.004
z1xz2        1       0.00286     0.0009346        9.3528        0.0022       1.003
zp           1      -0.99618       0.33651        8.7638        0.0031       0.369
Table 9.3 on page 275. The log likelihood statistics is contained in each of the SAS output. We omit them here to save some space. We will only show the output from the test statement. SAS performs Wald test on each one and it gives very similar results.
proc phreg data=bone_marrow1;
   model t2*dfree(0) = zp g2 g3 z11 z22 z1xz2 z8 zpg2 zpg3;
   if ( t2 >= tp & p = 1) then  zp = 1; 
   else  zp = 0;
   zpg2 = zp*g2; zpg3 =zp*g3;
   model1: test zpg2, zpg3;
run;
proc phreg data=bone_marrow1;
   model t2*dfree(0) = zp g2 g3 z11 z22 z1xz2 z8 z8zp;
   if ( t2 >= tp & p = 1) then  zp = 1; 
   else  zp = 0;
   z8zp = z8*zp;
   model2: test z8zp;
run;
proc phreg data=bone_marrow1;
   model t2*dfree(0) = zp g2 g3 z11 z22 z1xz2 z8 z1zp z2zp zxzp;
   if ( t2 >= tp & p = 1) then  zp = 1; 
   else  zp = 0;
   z1zp = z11*zp; z2zp = z22*zp; zxzp = z1xz2*zp;
   model3: test z1zp, z2zp, zxzp;
run;

proc phreg data=bone_marrow1;
   model t2*dfree(0) = zp g2 g3 z11 z22 z1xz2 z8 zpg2 zpg3 z8zp;
   if ( t2 >= tp & p = 1) then  zp = 1; 
   else  zp = 0;
   zpg2 = zp*g2; zpg3 =zp*g3;
   z8zp = z8*zp;
   model4: test z8zp;
run;
proc phreg data=bone_marrow1;
   model t2*dfree(0) = zp g2 g3 z11 z22 z1xz2 z8 zpg2 zpg3 z1zp z2zp zxzp;
   if ( t2 >= tp & p = 1) then  zp = 1; 
   else  zp = 0;
   zpg2 = zp*g2; zpg3 =zp*g3;
   z1zp = z11*zp; z2zp = z22*zp; zxzp = z1xz2*zp;
   model5: test z1zp, z2zp, zxzp;
run;
proc phreg data=bone_marrow1;
   model t2*dfree(0) = zp g2 g3 z11 z22 z1xz2 z8 zpg2 zpg3 z1zp z2zp zxzp z8zp;
   if ( t2 >= tp & p = 1) then  zp = 1; 
   else  zp = 0;
   zpg2 = zp*g2; zpg3 =zp*g3;
   z1zp = z11*zp; z2zp = z22*zp; zxzp = z1xz2*zp;
   z8zp = z8*zp;
   model6: test z8zp;
run;

Linear Hypotheses Testing Results

                 Wald
 Label     Chi-Square      DF    Pr > ChiSq

 model1        7.4997       2        0.0235

 model2        3.1518       1        0.0758

 model3        7.8877       3        0.0484

 model4        4.1729       1        0.0411

 model5       12.5410       3        0.0057

 model6        4.4670       1        0.0346
Table 9.4 on page 276.
proc phreg data=bone_marrow1;
   model t2*dfree(0) = zp g2 g3 z11 z22 z1xz2 z8 zpg2 zpg3 z1zp z2zp zxzp z8zp;
   if ( t2 >= tp & p = 1) then  zp = 1; 
   else  zp = 0;
   zpg2 = zp*g2; zpg3 =zp*g3;
   z1zp = z11*zp; z2zp = z22*zp; zxzp = z1xz2*zp;
   z8zp = z8*zp;
 run;
 
                     Analysis of Maximum Likelihood Estimates

                   Parameter      Standard                                  Hazard
Variable    DF      Estimate         Error    Chi-Square    Pr > ChiSq       Ratio

zp           1      -0.30621       0.69362        0.1949        0.6589       0.736
g2           1       1.30734       0.81864        2.5503        0.1103       3.696
g3           1       1.10712       1.22422        0.8178        0.3658       3.026
z11          1      -0.15375       0.05454        7.9486        0.0048       0.857
z22          1       0.11660       0.04337        7.2286        0.0072       1.124
z1xz2        1       0.00260       0.00195        1.7863        0.1814       1.003
z8           1      -1.23479       1.11389        1.2288        0.2676       0.291
zpg2         1      -3.03742       0.92574       10.7653        0.0010       0.048
zpg3         1      -1.86753       1.29076        2.0934        0.1479       0.155
z1zp         1       0.19335       0.05878       10.8208        0.0010       1.213
z2zp         1      -0.14705       0.04800        9.3831        0.0022       0.863
zxzp         1     0.0001265       0.00230        0.0030        0.9561       1.000
z8zp         1       2.45353       1.16086        4.4670        0.0346      11.629
Example 9.2 on page 277 based on data set kidney.
proc phreg data=kidney;
  model time*infect(0)= z1 z2;
  z1 = placement-1;
  z2 = log(time)*z1;
run;
The PHREG Procedure

        Testing Global Null Hypothesis: BETA=0

Test                 Chi-Square       DF     Pr > ChiSq

Likelihood Ratio        14.6737        2         0.0007
Score                   12.7062        2         0.0017
Wald                     8.0705        2         0.0177

                     Analysis of Maximum Likelihood Estimates

                   Parameter      Standard                                  Hazard
Variable    DF      Estimate         Error    Chi-Square    Pr > ChiSq       Ratio

z1           1       1.42235       1.03145        1.9016        0.1679       4.147
z2           1      -1.46217       0.58748        6.1944        0.0128       0.232
Table 9.5 on page 278 based on data set bone_marrow1 that is created in the previous Section 9.2. We have included the code to create the table and will only show the output from each of the test statement.
/*Factor of group*/
proc phreg data = bone_marrow1;
  model t2*dfree(0) = g1 g2 g1p g2p;
  g1p = log(t2) * g1;
  g2p = log(t2) * g2;
  group: test g1p=g2p=0;
run;
/*Effect of Waiting time*/
proc phreg data = bone_marrow1;
  model t2*dfree(0) = z7 z7p;
  z7p = log(t2)*z7;
  Waiting_time: test z7p;
run;
/*Factor of Fab status*/
proc phreg data = bone_marrow1;
  model t2*dfree(0) = z8 z8p;
  z8p = log(t2)*z8;
  Fab: test z8p;
run;
/*Factor of MTX*/
proc phreg data = bone_marrow1;
  model t2*dfree(0) = z10 z10p;
  z10p = log(t2)*z10;
  MTX: test z10p;
run;
/*Factor of Sex*/
proc phreg data = bone_marrow1;
  model t2*dfree(0) = z3 z4 z3z4 z3p z4p z3z4p;
  z3z4 = z3*z4;
  z3p = log(t2)*z3;
  z4p = log(t2)*z4;
  z3z4p = log(t2)*z3z4;
  Sex: test z3p, z4p, z3z4p;
run;
/*Factor of CMV status*/
proc phreg data = bone_marrow1;
  model t2*dfree(0) = z5 z6 z5z6 z5p z6p z5z6p;
  z5z6 = z5*z6;
  z5p = log(t2)*z5;
  z6p = log(t2)*z6;
  z5z6p = log(t2)*z5z6;
  CMV: test z5p, z6p, z5z6p;
run;
/*Factor of Age*/
proc phreg data = bone_marrow1;
  model t2*dfree(0) = z11 z22 z1xz2 z1p z2p z1z2p;
  z1p = log(t2)*z11;
  z2p = log(t2)*z22;
  z1z2p = log(t2)*z1xz2;
  Age: test z1p, z2p, z1z2p;
run;
 Linear Hypotheses Testing Results

                    Wald
 Label        Chi-Square      DF    Pr > ChiSq

 group            1.7349       2        0.4200
 
 Waiting_time     0.0049       1        0.9442

 Fab              0.4441       1        0.5051
 
 MTX              4.3226       1        0.0376
  
 Sex              0.2203       3        0.9742
 
 CMV              1.6870       3        0.6398
 
 Age              4.7593       3        0.1903
Table 9.6 on page 280 based on the data set kidney.
/*to extract the event time*/
proc sql noprint;
  select distinct time into :event_time separated by ' '
  from kidney
  where infect = 1;
quit;
%put &event_time;

%macro event_lpl(data, time, censor, var, delta_list);
   %let k=1;
   %let whole =;
   %let dep = %scan(&delta_list, &k, '  ');
     %do %while(&dep NE );
	     ods listing close;
         proc phreg data=&data;
             model &time*&censor(0) = &var z2;
		          if &time > &dep then z2 = &var;
		          else z2 = 0;
		      ods output  FitStatistics = _temp&k;
        run;
		 ods output close;
		 ods listing;
	     %let whole= &whole%str( _temp&k);
        %let k = %eval(&k + 1);
        %let dep = %scan(&delta_list, &k, ' ');
    %end;
    
	 data whole;
	   set &whole;
           if Criterion = "-2 LOG L" ;
	 run;
	 data whole;
	   set whole;
	   e_time = scan("&delta_list", _n_, ' ');
	   logp = - withcovariates/2;
	run;
	proc print data = whole noobs;
	var e_time logp;
	run;
%mend;

data kidney1;
  set kidney;
  z1 = placement - 1;
run;
%event_lpl(kidney1, time, infect, z1, &event_time)

e_time      logp

 0.5       -97.878
 1.5      -100.224
 2.5       -97.630
 3.5       -97.501
 4.5       -99.683
 5.5      -100.493
 6.5       -98.856
 8.5      -100.428
 9.5      -101.084
 10.5     -101.668
 11.5     -102.168
 15.5     -100.829
 16.5     -101.477
 18.5     -102.059
 23.5     -102.620
 26.5     -103.229
The anova table on page 280.
proc phreg data = kidney1;
  model time*infect(0) =  z2 z3 ;
  if time > 3.5 then do z2=z1; z3=0; end;
  else do z2=0; z3=z1; end;
run;
The PHREG Procedure

        Testing Global Null Hypothesis: BETA=0

Test                 Chi-Square       DF     Pr > ChiSq

Likelihood Ratio        13.9049        2         0.0010
Score                   12.8330        2         0.0016
Wald                     9.4677        2         0.0088

                     Analysis of Maximum Likelihood Estimates

                   Parameter      Standard                                  Hazard
Variable    DF      Estimate         Error    Chi-Square    Pr > ChiSq       Ratio

z2           1      -2.08891       0.75973        7.5600        0.0060       0.124
z3           1       1.08175       0.78320        1.9077        0.1672       2.950

Section 9.3: Stratified Proportional Hazards Models

Table 9.7 on page 283.
proc phreg data=bone_marrow1;
   model t2*dfree(0) = zp g2 g3 z11 z22 z1xz2 z8;
   if ( t2 >= tp & p = 1) then  zp = 1; 
   else  zp = 0;
   strata z10;
run;
 
 The PHREG Procedure

        Testing Global Null Hypothesis: BETA=0

Test                 Chi-Square       DF     Pr > ChiSq

Likelihood Ratio        38.2728        7         <.0001
Score                   44.6457        7         <.0001
Wald                    40.3675        7         <.0001

                     Analysis of Maximum Likelihood Estimates

                   Parameter      Standard                                  Hazard
Variable    DF      Estimate         Error    Chi-Square    Pr > ChiSq       Ratio

zp           1      -1.00334       0.34453        8.4810        0.0036       0.367
g2           1      -0.99030       0.36658        7.2980        0.0069       0.371
g3           1      -0.36327       0.37138        0.9568        0.3280       0.695
z11          1       0.00954       0.01984        0.2314        0.6305       1.010
z22          1      -0.00141       0.01791        0.0062        0.9373       0.999
z1xz2        1       0.00255     0.0009364        7.4245        0.0064       1.003
z8           1       0.89203       0.28347        9.9024        0.0017       2.440
Table 9.8 on page 284.
proc phreg data=bone_marrow1;
   by z10;
   model t2*dfree(0) = zp g2 g3 z11 z22 z1xz2 z8;
   if ( t2 >= tp & p = 1) then  zp = 1; 
   else  zp = 0;
   ods output  ParameterEstimates=table9_8;
run;
proc sort data=table9_8;
by variable;
run;
proc transpose data = table9_8 prefix=g
               out=table9_8a (where=(_name_="Estimate" or _name_="StdErr")) ;
  by variable;
  id z10;
run;
data table9_8b;
  set table9_8a;
  num = lag(gno)-lag(gyes);
  if _name_="StdErr" then do;
  chisq = num**2/(gno**2 + gyes**2);
  pvalue=1 - probchi(chisq, 1);
  end;
  drop num;
run;
proc print data = table9_8b noobs;
run;

Variable     _NAME_        gNo        gYes       chisq      pvalue

 g2         Estimate    -1.19819    -0.56257     .          .
 g2         StdErr       0.45851     0.63852    0.65380    0.41876
 g3         Estimate    -0.29627    -0.85960     .          .
 g3         StdErr       0.44541     0.91752    0.30506    0.58073
 z11        Estimate     0.02765     0.01141     .          .
 z11        StdErr       0.02587     0.03909    0.12005    0.72898
 z1xz2      Estimate     0.00225     0.00139     .          .
 z1xz2      StdErr       0.00140     0.00227    0.10247    0.74889
 z22        Estimate    -0.02027     0.03433     .          .
 z22        StdErr       0.02533     0.03104    1.85815    0.17284
 z8         Estimate     1.08877     0.34588     .          .
 z8         StdErr       0.33846     0.65111    1.02484    0.31137
 zp         Estimate    -0.88294    -1.00895     .          .
 zp         StdErr       0.47591     0.55113    0.02995    0.86261

Section 9.4: Left Truncation

Table 9.9 on page 288.
proc phreg data=bone_marrow1;
   model t2*dfree(0) = g2 g3 z11 z22 z1xz2 z8 /entry=tp;
   strata z10;
run;
The PHREG Procedure

        Testing Global Null Hypothesis: BETA=0

Test                 Chi-Square       DF     Pr > ChiSq

Likelihood Ratio        37.1792        6         <.0001
Score                   36.0545        6         <.0001
Wald                    32.1483        6         <.0001

                     Analysis of Maximum Likelihood Estimates

                   Parameter      Standard                                  Hazard
Variable    DF      Estimate         Error    Chi-Square    Pr > ChiSq       Ratio

g2           1      -1.75212       0.43761       16.0307        <.0001       0.173
g3           1      -0.75036       0.40769        3.3874        0.0657       0.472
z11          1       0.04174       0.02229        3.5066        0.0611       1.043
z22          1      -0.03460       0.02068        2.7986        0.0943       0.966
z1xz2        1       0.00228       0.00122        3.4931        0.0616       1.002
z8           1       1.27753       0.32494       15.4571        <.0001       3.588

Section 9.5: Synthesis of Time-varying Effects (Multistate Modeling)

Table 9.10 on page 291 based on data bone_marrow1 created in Section 9.1.
proc phreg data=bone_marrow1;
   model tp*p(0) =  z11 z22 z1xz2  z10;
run;

The PHREG Procedure

        Testing Global Null Hypothesis: BETA=0

Test                 Chi-Square       DF     Pr > ChiSq

Likelihood Ratio        30.7549        4         <.0001
Score                   27.4464        4         <.0001
Wald                    25.9884        4         <.0001

                     Analysis of Maximum Likelihood Estimates

                   Parameter      Standard                                  Hazard
Variable    DF      Estimate         Error    Chi-Square    Pr > ChiSq       Ratio

z11          1       0.03606       0.01626        4.9175        0.0266       1.037
z22          1      -0.02616       0.01477        3.1367        0.0766       0.974
z1xz2        1      -0.00272     0.0009715        7.8217        0.0052       0.997
z10          1      -1.04226       0.22329       21.7882        <.0001       0.353
The first model in Table 9.11 on page 292 based on the models specified on page 291.
code here.
The left-truncated model before platelet recovery. We need to modify our data set by censoring any individual whose platelets recover prior to death or relapse at their platelet recovery time. This is done in the data step below.
data bone_marrow2;
  set bone_marrow1;
   m2 = dfree;
   myt = t2;
   if tp <= t2 and p = 1 then do;
   m2= 0;
   myt = tp;
   end;
  run;
proc phreg data=bone_marrow2;
  model myt*m2(0) = g2 g3 z8 z11 z22 z1xz2 ;
run;

The PHREG Procedure

        Testing Global Null Hypothesis: BETA=0

Test                 Chi-Square       DF     Pr > ChiSq

Likelihood Ratio        14.2991        6         0.0265
Score                   13.4770        6         0.0361
Wald                    12.1243        6         0.0593

                     Analysis of Maximum Likelihood Estimates

                   Parameter      Standard                                  Hazard
Variable    DF      Estimate         Error    Chi-Square    Pr > ChiSq       Ratio

g2           1       1.46620       0.91746        2.5539        0.1100       4.333
g3           1       1.44752       1.33334        1.1786        0.2776       4.253
z8           1      -1.75629       1.32144        1.7664        0.1838       0.173
z11          1      -0.16154       0.06198        6.7936        0.0091       0.851
z22          1       0.12580       0.04755        7.0003        0.0081       1.134
z1xz2        1       0.00318       0.00210        2.2880        0.1304       1.003
The left-truncated model after platelet recovery. This is done using the entry= option in proc phreg.
proc phreg data=bone_marrow2;
  model t2*dfree(0) = g2 g3 z8 z11 z22 z1xz2 /entry = tp;
run;
The PHREG Procedure

        Testing Global Null Hypothesis: BETA=0

Test                 Chi-Square       DF     Pr > ChiSq

Likelihood Ratio        37.7176        6         <.0001
Score                   36.9965        6         <.0001
Wald                    32.9733        6         <.0001

                     Analysis of Maximum Likelihood Estimates

                   Parameter      Standard                                  Hazard
Variable    DF      Estimate         Error    Chi-Square    Pr > ChiSq       Ratio

g2           1      -1.71600       0.42554       16.2616        <.0001       0.180
g3           1      -0.75650       0.40752        3.4460        0.0634       0.469
z8           1       1.21153       0.32231       14.1291        0.0002       3.359
z11          1       0.03872       0.02177        3.1625        0.0753       1.039
z22          1      -0.02923       0.02051        2.0321        0.1540       0.971
z1xz2        1       0.00266       0.00123        4.6829        0.0305       1.003

How to cite this page

Report an error on this page or leave a comment

UCLA Researchers are invited to our Statistical Consulting Services
We recommend others to our list of Other Resources for Statistical Computing Help
These pages are Copyrighted (c) by UCLA Academic Technology Services


The content of this web site should not be construed as an endorsement of any particular web site, book, or software product by the University of California.