The QUANTLIFE Procedure

Example 96.1 Primary Biliary Cirrhosis Study

(View the complete code for this example.)

This example illustrates how to use quantile regression analysis to detect varying covariate effects on survival time. Consider a study of primary biliary cirrhosis, a rare but fatal chronic liver disease, discussed by Fleming and Harrington (1991). Researchers followed 418 patients who had this disease, 161 of whom died during the study.

The data set contains the following variables:

  • Time, follow-up time, in years

  • Status, event indicator, with value 1 for death time and value 0 for censored time

  • Age, age from birth to study registration, in years

  • Albumin, serum albumin level, in g/dl

  • Bilirubin, serum bilirubin level, in mg/dl

  • Edema, edema presence

  • Protime, prothrombin time, in seconds

The following statements create the data set PBC, which is used in this example:

data pbc;
   input Time Status Age Albumin Bilirubin Edema Protime @@;
   label Time="Follow-Up Time in Days";
   logAlbumin   = log(Albumin);
   logBilirubin = log(Bilirubin);
   logProtime   = log(Protime);
   datalines;
  400 1 58.7652 2.60 14.5 1.0 12.2 4500 0 56.4463 4.14  1.1 0.0 10.6
 1012 1 70.0726 3.48  1.4 0.5 12.0 1925 1 54.7406 2.54  1.8 0.5 10.3
 1504 0 38.1054 3.53  3.4 0.0 10.9 2503 1 66.2587 3.98  0.8 0.0 11.0
 1832 0 55.5346 4.09  1.0 0.0  9.7 2466 1 53.0568 4.00  0.3 0.0 11.0
 2400 1 42.5079 3.08  3.2 0.0 11.0   51 1 70.5599 2.74 12.6 1.0 11.5
 3762 1 53.7139 4.16  1.4 0.0 12.0  304 1 59.1376 3.52  3.6 0.0 13.6

   ... more lines ...   

  989 0 35.0000 3.23  0.7 0.0 10.8  681 1 67.0000 2.96  1.2 0.0 10.9
 1103 0 39.0000 3.83  0.9 0.0 11.2 1055 0 57.0000 3.42  1.6 0.0  9.9
  691 0 58.0000 3.75  0.8 0.0 10.4  976 0 53.0000 3.29  0.7 0.0 10.6
;

The next statements fit a linear model for the log of survival time of the PBC patients with the covariates logBilirubin, logProtime, logAlbumin, Age, and Edema:

ods graphics on;
proc quantlife data=pbc log method=na plot=(quantplot survival) seed=1268;
   model Time*Status(0)=logBilirubin logProtime logAlbumin Age Edema
                        /quantile=(.1 .2 .3 .4 .5 .6 .75);
run;

You use the QUANTILE= option to specify a set of quantiles of interest for comparing quantile-specific covariate effects. The METHOD= option specifies the Nelson-Aalen method for estimating the regression parameters.

The QUANTLIFE procedure provides resampling methods for computing confidence limits for the parameters; for more information, see the section Confidence Interval. By default, the repetition number is 200. You can request a different number of repetitions by specifying the NREP= option. You can also use the SEED= option to specify the seed for generating random numbers so that you can later reproduce the results.

Output 96.1.1 displays model information and information about censoring in the data. Out of 418 observations, 257 are censored.

Output 96.1.1: Model Information

The QUANTLIFE Procedure

Model Information
Data SetWORK.PBC
Dependent VariableLog(Time)
Censoring VariableStatus
Censoring Value(s)0
Number of Observations418
MethodNelson-Aalen
Replications200
Seed for Random Number Generator1268

Summary of the Number of Event and Censored
Values
TotalEventCensoredPercent
Censored
41816125761.48


Output 96.1.2 provides the parameter estimates. Each quantile level has a set of parameter estimates and confidence limits.

Output 96.1.2: Parameter Estimates at Different Quantiles

Parameter Estimates
QuantileParameterDFEstimateStandard
Error
95% Confidence Limitst ValuePr > |t|
0.1000Intercept114.80304.09676.773622.83253.610.0003
 logBilirubin1-0.44880.1485-0.7398-0.1578-3.020.0027
 logProtime1-3.63781.4560-6.4915-0.7841-2.500.0129
 logAlbumin11.92860.97560.01653.84081.980.0487
 Age1-0.02440.0107-0.0455-0.00334-2.270.0237
 Edema1-1.07120.6688-2.38200.2396-1.600.1100
0.2000Intercept115.18002.66649.954020.40605.69<.0001
 logBilirubin1-0.65320.0886-0.8268-0.4796-7.37<.0001
 logProtime1-3.32730.9401-5.1699-1.4847-3.540.0004
 logAlbumin11.68420.68880.33433.03422.450.0149
 Age1-0.02910.00687-0.0425-0.0156-4.23<.0001
 Edema1-0.72650.3179-1.3497-0.1034-2.290.0228
0.3000Intercept113.23822.52968.280418.19615.23<.0001
 logBilirubin1-0.60130.0762-0.7506-0.4521-7.90<.0001
 logProtime1-2.58160.8907-4.3273-0.8359-2.900.0039
 logAlbumin11.72460.71420.32483.12452.410.0162
 Age1-0.02440.00716-0.0385-0.0104-3.410.0007
 Edema1-0.85770.2763-1.3992-0.3163-3.100.0020
0.4000Intercept113.47163.08747.420419.52284.36<.0001
 logBilirubin1-0.60470.0846-0.7705-0.4389-7.15<.0001
 logProtime1-2.16321.1726-4.46150.1351-1.840.0658
 logAlbumin10.98190.7191-0.42742.39121.370.1728
 Age1-0.02550.00681-0.0389-0.0122-3.740.0002
 Edema1-1.05890.3104-1.6672-0.4506-3.410.0007
0.5000Intercept110.92052.80475.423516.41753.890.0001
 logBilirubin1-0.53150.0904-0.7087-0.3543-5.88<.0001
 logProtime1-1.22221.2142-3.60201.1577-1.010.3148
 logAlbumin11.57000.62840.33832.80162.500.0129
 Age1-0.03180.00883-0.0491-0.0145-3.600.0004
 Edema1-0.73160.3743-1.46530.00202-1.950.0513
0.6000Intercept111.23812.62946.084616.39174.27<.0001
 logBilirubin1-0.57010.0852-0.7370-0.4031-6.69<.0001
 logProtime1-1.35081.1402-3.58560.8840-1.180.2368
 logAlbumin11.37040.50910.37262.36822.690.0074
 Age1-0.02260.0109-0.0440-0.00111-2.060.0399
 Edema1-0.51410.3088-1.11930.0912-1.660.0968
0.7500Intercept110.09543.18933.844516.34633.170.0017
 logBilirubin1-0.63660.1071-0.8466-0.4267-5.94<.0001
 logProtime1-0.96701.2343-3.38621.4521-0.780.4338
 logAlbumin11.81480.58830.66182.96783.080.0022
 Age1-0.02030.0156-0.05090.0102-1.300.1931
 Edema1-0.35290.3120-0.96440.2586-1.130.2587


For comparison, the following statements use the LIFEREG procedure to fit a Weibull distribution to the data. The LIFEREG procedure fits an accelerated failure time model, which assumes that the independent variables have a multiplicative effect on the event time.

proc lifereg data=pbc;
   model Time*Status(0)=logBilirubin logProtime logAlbumin Age Edema;
run;

Output 96.1.3 provides the parameter estimates that are computed by PROC LIFEREG.

Output 96.1.3: Parameter Estimates from PROC LIFEREG

The LIFEREG Procedure

Analysis of Maximum Likelihood Parameter Estimates
ParameterDFEstimateStandard
Error
95% Confidence LimitsChi-SquarePr > ChiSq
Intercept112.21551.45399.365815.065170.59<.0001
logBilirubin1-0.57700.0556-0.6861-0.4680107.55<.0001
logProtime1-1.75650.5248-2.7850-0.728011.200.0008
logAlbumin11.66940.42760.83132.507415.24<.0001
Age1-0.02650.0053-0.0368-0.016225.35<.0001
Edema1-0.63030.1805-0.9842-0.276412.190.0005
Scale10.68070.04300.60140.7704  
Weibull Shape11.46910.09281.29801.6628  


The p-value for logProtime is very small. For this same variable, the p-values that result from the quantile regression analysis are 0.3148 for the 0.5th quantile and 0.4338 for the 0.75th quantile, and the p-values are much smaller for the lower quantiles. Apparently, the effect of this covariate depends on which side of the response distribution is being modeled.

The PLOT=QUANTPLOT option in the PROC QUANTLIFE statement requests the quantile process plots in Output 96.1.4, which plot the estimated regression parameter against the quantile level. You can use these plots to compare quantile-specific covariate effects. If the curve is not constant, it can indicate heterogeneity in the data. The interpretation of the regression coefficients at a given quantile is similar to that of classical regression analysis. That is, the coefficient from a given covariate indicates the effect on log(Time) of a unit change in that covariate, assuming that the other covariates are fixed.

In Output 96.1.4, you can see that the effect of logProtime has a negative effect over the lower quantiles, which diminishes in magnitude at the median and upper quantiles. This insight would be missed if you were using the accelerated failure model.

Output 96.1.4: Quantile Processes with 95% Confidence Bands

Quantile Processes with 95% Confidence Bands
External File:images/qlifeex2c1.png