Let's say I have a data set where the goal is to forecast the future customer base of a cell phone carrier. The data is set up in monthly snapshots, where I have information for each customer at the beginning of each month, along with the exact date the customer left the carrier (if it occurred). I also have covariates, both time-varying (like tenure with the carrier, data used) and variables that might be considered more static (type of phone, gender of customer). I have data from the last few years, and so it looks something like this:

Customer  Snapshot    Phone_Type    Tenure_in_months    Churn_Date
    1      1/2012       iPhone             20                NA
    1      2/2012       iPhone             21                NA
    1      3/2012       iPhone             22            3/12/2012
    2      2/2012       Samsung             1                NA
    2      3/2012       Samsung             2                NA
    2      4/2012       Samsung             3                NA
    2      5/2012       Samsung             4                NA

Certainly I could take a simple approach where I calculate the monthly churn rate across everyone, and then use this probability to construct a survival curve for everyone in the data set. This approach isn't optimal, as I know the churn rate likely differs between certain customers (i.e., people who have a late payment, or those with a certain phone model), and I'd like to capture those patterns to create better predictions. This leads me to the following two options, each of which I have a question about.

Option 1: Survival analysis

Because this data is censored, one option I thought of would be to use a survival model where I could get the survival curves for each customer, and then sum the predicted probabilities of survival at a given point in time to get an estimated number of customers (assuming we only care about the current customer base and not any new customers that may sign up).

However, the way the data was collected is different than a more traditional survival analysis scenario, where all participants have the same or similar t0. In this case, the data set only includes two types of customers: Those who signed up before the data was collected (in 2012) but still are customers of this cell carrier, and those who joined the carrier after the data started being collected. The third type, those who joined and left before 2012, are not included, which leads me to believe that a survival approach on this entire sample would be impacted by survival bias.

Question 1: Am I right in thinking a survival approach is not appropriate on the entire sample given my concern about survival bias? If not, why not?

Option 2: Classification algorithm

Rather than run a survival model, an alternative approach might be to run a series of classification models, one for each month. For example, the 1/2012 model would filter the data set on these rows, run a model (assume a decision tree for simplicity), and predict the binary indicator of churn for that given month. The issue here would be that the decision tree for each month likely will be different, so it's not totally clear what the final model would look like in terms of forecasting.

Question 2: If a classification approach is better in this example, how do I go about creating the model to use in forecasting given separate models for each month?

This is similar to the question posted here, but I have specific questions about survival bias that might be at play. I'm new to survival modeling, so any insights or directions to resources that put me on the right path would be greatly appreciated!


1 Answer 1


In survival analysis it is not necessary that all participants have the same $t_0$. But it is necessary that $t_0$ is known and well defined.

Your sample of people who joined before 2012 would be impacted by survival bias.

Why: imagine only two sets of people have joined the carrier and both sets joined on the 1.1.2011. Half of the Reds switch operator before 1.1.2012 and none in the Blue team does. After 1.1.2012 survival rates for both teams are the same. Since you don't have the information about the Reds that switched operator it would seem that team colour doesn't play any role in survival. Imagine making a study about effects of smoking on longevity but you only enroll people in elderly care homes over 75 old. You would miss a lot of smokers who died before they reached that age, so smoking will seem much less harmful than it really is. Inclusion into sample must not be dependent on survival. Time $t_0$ should be defined as time of enrollment. And you have to be certain that you capture all the people who enrolled (even if only for a day) beyond the selected starting date of the study.

To avoid survival bias you can limit your sample to the people who joined in 2012 or later.

I would also add a year of enrollment as a predictor variable. Conditions in business change quickly so people who joined at different times might have different survival rates. This is often true in medical research as well. Survival of people with the same form of cancer can depend on the date of diagnosis. This effect goes away in theory if you include all the relevant treatment information but that is not always possible. It is probably even harder to do in business setting.

  • 2
    $\begingroup$ @dmartin have you found the answer informative or not? Please provide your feedback so we can see if it solves your problem. $\endgroup$
    – Vivaldi
    Apr 13, 2017 at 21:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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