All,
I am looking to build a predictive model for predicting churn and looking to use a discrete time survival model fitted to a person-period training dataset (one row for each customer and discrete period they were at risk, with an indicator for event – equaling 1 if the churn happened in that period, else 0).
I am fitting the model using ordinary
logistic regression using the
technique from Singer and
Willet.
The churn of a customer can happen
anywhere during a month, but it is
only at the end of the month that we
know about it (i.e. sometime during
that month they left). 24 months is
being used for training.
The time variable being used is the
origin time of the sample - all
customers active as of 12/31/2008 - they all receive t=0 as of Jan 2009 (not the classical way to do it, but I believe the way when building a predictive model versus a traditional statistical one). A
covariate used is the tenure of the
customer at that point in time.
There are a series of covariates that
were constructed – some that do not
change across the rows of the dataset
(for a given customer) and some that
do.
These time variant covariates are the
issue and what is causing to me
question a survival model for churn
prediction (compared to a regular
classifier that predicts churn in the
next x months based on current
snapshot data). The time-invariant ones describe activity the month prior and are expected to be important triggers.
The implementation of this predictive model, at least based on my current thinking, is to score the customer base at the end of each month, calculating the probability / risk of churn sometime during the next month. Then again for the next 1,2 or 3 months. Then for the next 1,2,3,4,5,6 months. For the 3 and 6 month churn probability, I would be using the estimated survival curve.
The problem:
When it comes to thinking about scoring, how can I incorporate time-varying predictors? It seems like I can only score with time-invariant predictors or to include those that are time invariant, you have to make them time invariant – set to the value “right now”.
Does anyone have experience or thoughts on this use of a survival model?
Update based on @JVM comment:
The issue is not with estimating the model, interpreting coefficients, plotting the hazard/survival plots of interesting covariate values using the training data etc. The issue is in using the model to forecast risk for a given customer. Say at the end of this month, I want to score everyone who is still an active customer with this model. I want to forecast that risk estimate out x periods (risk of closing the account at the end of next month. risk of closing the account at the end of two months from now, etc.). If there are time varying covariates, their values are unknown out any future periods, so how to utilize the model?