Are there any methods to correct bias in Cox proportional hazard model caused by non-randomly selected sample (something like Heckman's correction)?

Lets say the situation looks as follows:
- During first two years all clients are accepted.
- After those two years a Cox PH model is build. Model predicts how long clients will use our service.
- Due to the policy of the company from now on only clients with probability of surviving 3 month greater than 0.5 are accepted, the others are rejected.
- After another two years a new model needs to be built. The problem is that we have target only for accepted clients and using only these clients might cause some serious bias.

  • 1
    $\begingroup$ What is the point of this analysis? A Cox PH model doesn't explicitly predict time-to-failure unless you're incorporating some smoothing methods or parametric modeling. What stratification/adjustment variables are in this model? $\endgroup$
    – AdamO
    Feb 22, 2012 at 22:38

2 Answers 2


There are proposed solutions to parametric hazard models. Take a look at these:

Prieger, James, 2000."A Generalized Parametric Selection Model for Non-normal Data," Working Papers 00-9, University of California at Davis, Department of Economics.

Boehmke, Frederick J., Daniel Morey and Megan Shannon. 2006. "Selection Bias and Continuous-Time Duration Models: Consequences and a Proposed Solution." American Journal of Political Science 50 (1): 192-207.

There is code for the later paper in Stata, package "dursel"

However, I am not aware of a solution for the semiparametric Cox model.

  • $\begingroup$ The problem with reckoning parametric approaches with the semi-parametric Cox Model is that this specific problem is actually related to a missing data. Despite that the author hasn't described how he's obtaining absolute risk predictions from a Cox model, given that we have such a risk prediction based on model parameters (and estimates of the baseline hazard function), the inclusion probability in the second phase of data collection depends on the original risk prediction, so missingness depends on observed variables, i.e. missing at random data. $\endgroup$
    – AdamO
    Feb 24, 2012 at 17:32

The simple answer is weighting. That is, you can use weights to standardize groups in the "accepted" group to the population of interest. The problem that arises from using such weights in a pooled analysis using both the first and second 2 year phases is that the estimated population weights and the parameters are now dependent. The pseudolikelihood approach is typically used (in this case, it would be some kind of pseudo-partial likelihood) where you ignore the dependence between sample weights and parameter estimates. However, in many practical circumstances (and this one is no different), accounting for this dependence is necessary. The issue of creating an efficient estimator of the hazard ratios is a difficult one, and as far as I know open ended. This is vaguely similar to the two-phase study and I think it might be enlightening to consult the following article by Lumley and Breslow, freely available through the NIH

Improved Horvitz-Thompson Estimation of Model Parameters from Two-phase Stratified Samples: Applications in Epidemiology.

The article discusses survey methods, typically applied in logistic regression, however you can weight survival data as well. Some important considerations which you neglected to mention is whether you're interested in creating a prediction which applies to the entire population, or to the "qualifying" population based on the 2-year estimates, or the "qualifying" population based on the resulting model. You also haven't mentioned exactly how such a "prediction" model is created from a Cox model, as fitted values from a Cox model cannot be interpreted as risks. I presume you estimate the hazard ratios, then obtain a smoothed estimate of the baseline hazard function.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.