I was exploring the options to design the approach to train test and predict the customer lapsing model.


Lapsed => Customer didn't purchase an item in the financial year (ex: Customer A didn't purchase any item in 2010 => Customer A is lapsed in 2010)

Say, I have list of 500 customers and 9 years of the data which tells whether customer lapsed or not (from 2000 to 2009 and I have to predict for 2010)

  • Data Format
 Customer_id x1 x2 x3 lapsed_2001 lapsed_2002 ... lapsed_2009
   A          a  b  c   0           0               1
   B          p  q  r   1           0               0

I'm considering two options to model this

  • Option A: Use all of the 500 Customers data make lapsed_2008 as Predictor Training Variable to fit the model and train the model. Now Test using lapsed_2009 Variable.

  • Option B:Use 375 Customers data make lapsed_2009 variable as Training variable and test for the rest of 125 Customers

Can anyone please explain me which approach to be followed and why ?


You can use either of the approaches based on kind of data you have(I'm assuming you can get more data) -

  • If the variables about the customer are not changing significantly
    with respect to time then you can use option A. e.g., age group,
    gender or education or customer loyalty categories
  • Keep in mind that you will have to adjust time dependent factors like income or purchase history, e.g., Bucket of renewal streak instead of columns like less than 1yr, or 5+ years
  • If your model is to be based on just buying pattern across years then you should use Option B
  • Option B is essentially survival analysis
  • In some business cases renewal/lapse data is not a best predictor for future

Survival analysis using R - http://dni-institute.in/blogs/survival-modeling-tutorial-using-r-part-1/

Churn prediction (if you have more customer data) - https://josepcurtodiaz.gitbooks.io/customer-analytics-with-r/content/chapter9.html


I recommend using option A and modify your dataset a bit differently. For each year, represent the customer as of that point in time to create positive and negative response cases. This would give you more data to train and cross-validate.

For example, if you're recording age as a demographic attribute then record age as of that particular year and update it if you have the same record showing up for another year with the age as of that year.


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.