How to approachfor fit, train and test the Customer Lapsing Machine learning model I was exploring the options to design the approach to train test and predict the customer lapsing model.
Description:
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 ?
 A: 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
A: 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.
