using proc logistic to improve customer retention
play

Using Proc Logistic to Improve Customer Retention Luke Furlong - PDF document

10/28/2013 Using Proc Logistic to Improve Customer Retention Luke Furlong Assurant Health Reference SAS Course: Survival Data Mining: Predictive Hazard Modeling for Customer History Data. Will Potts. 1 10/28/2013 The Problem Assurant


  1. 10/28/2013 Using Proc Logistic to Improve Customer Retention Luke Furlong Assurant Health Reference • SAS Course: Survival Data Mining: Predictive Hazard Modeling for Customer History Data. Will Potts. 1

  2. 10/28/2013 The Problem • Assurant Health has a product with higher lapse than we would like. • We would like to understand better the characteristics of those lapsing. • We would like to predict who is going to lapse. Product Cycle Submit Submit claim second Policy Call Cancel (office claim issued Policy visit) (ER visit) 2

  3. 10/28/2013 The model • h(t) = F( f(t) , β 1 X it , β 2 Z i ) • h(t) = probability of lapse at time t • f(t) = Duration – spline with spike at 12 months • Z i = Time ‐ independent covariates – Demographic variables, Policy details (add ‐ ons, billing type, etc.) • X it = Time ‐ dependent covariates – Claims, calls, maxed out benefits, etc. The model graphically Modeled lapse rates by Billing type List Bill Direct Bill Lapse Rate Other Billing Type 1 2 3 4 5 6 7 8 9 10 11 Month 3

  4. 10/28/2013 Hazard Function can be flexible Code to create a spline %LET KNOTS=2 3 5; DATA IM_HIST_RET; SET IM_HIST_RET; ARRAY K{3} _TEMPORARY_ (&KNOTS); CSB1=(T>K[1])*(T-K[1])**3-T**3+3*K[1]*T**2-3*K[1]**2*T; CSB2=(T>K[2])*(T-K[2])**3-T**3+3*K[2]*T**2-3*K[2]**2*T; CSB3=(T>K[3])*(T-K[3])**3-T**3+3*K[3]*T**2-3*K[3]**2*T; RUN; 4

  5. 10/28/2013 The Data Policy Data Policy Product type 1 Value 2 Value 3 Fundamentals 4 Enhanced Call Data Policy Call Type Call date 2 Admin 1/2/2012 2 Service 5/3/2011 3 Admin 3/9/2012 4 Service 4/23/2012 Create panel data set Member Month Call Claim Lapse 1 1 1 $3000 0 1 2 0 0 0 1 3 1 0 0 1 4 0 0 1 2 1 1 $5000 0 2 2 0 0 0 3 1 0 $150 0 3 2 1 0 0 3 3 0 0 0 3 4 0 0 1 5

  6. 10/28/2013 Censoring and Truncation • Censoring: • Left truncation: Introduces a length • End of study censoring: bias, needs correction. no lapse event. • Don’t include rows from • Loss to follow ‐ up: can before the truncation censor at earlier dates date. Form of the model • Logistic Regression • Multinomial logit – Allows for more than one outcome • Example: Lapse, upgrade product, downgrade product. 6

  7. 10/28/2013 Predictive scoring • Fitted model is applied to customers. • Provides probability of lapse. • Used to prioritize customers for intervention. Code for model estimation and scoring ODS OUTPUT PARAMETERESTIMATES=PE;/* use this output for plotting*/ /*Model Estimation*/ proc logistic data=HA_LAPS.IM_HIST_RET OUTMODEL=SASUSER.AHA_LAPS_MODEL_VAL; model DUR_LAPSE(event='1')= POL_DUR_MTH CSB1 CSB2 CSB3 LIST_BILL CREDIT_CARD COM T*COM T*LISTBILL T*CREDITCARD; RUN; /*Scoring*/ proc logistic inmodel=sasuser.AHA_LAPS_MODEL_VAL; score data=IM_HIST_RET out=Score_FUND; run; 7

  8. 10/28/2013 Forecasting • Can be used to forecast lapse in next period. • Can be used for multi ‐ period forecasting, if time ‐ dependent covariates are known or assumed. Visual display of fitted hazard function Modeled lapse rates by Billing type List Bill Direct Bill Lapse Rate Other Billing Type 1 2 3 4 5 6 7 8 9 10 11 Month 8

  9. 10/28/2013 Code to write scoring code DATA _NULL_; /*Creates a text file*/ FILE '\\Msp0wsasp001\prod5\AA\HA Lapse Drivers Luke 2012 Q4\model2.txt'; IF _N_=1 THEN DO; ARRAY K{3} _TEMPORARY_ (&KNOTS); put 'csb1=(t>' k[1] ')*(t-' k[1] ')**3-t**3+3*' k[1] '*t**2-3*' k[1] '**2*t;'; put 'csb2=(t>' k[2] ')*(t-' k[2] ')**3-t**3+3*' k[2] '*t**2-3*' k[2] '**2*t;'; put 'csb3=(t>' k[3] ')*(t-' k[3] ')**3-t**3+3*' k[3] '*t**2-3*' k[3] '**2*t;'; end; length variable2 $30 plus $10; set pe end=last; if variable='Intercept' then variable='eta'||'=1'; plus='+'; if last then plus=';'; variable2=variable; put variable2 '*' estimate best16. plus; if last then do; put 'shf1=exp(eta)/(1+exp(eta));'; end; run; Plot the hazard function data plt;/*create data for plotting*/ do t=0 to 16; AGE_18_24 = 0 ; CALL = 0 ; LIST_BILL = 0 ; . . . %include '\\Msp0wsasp001\prod5\AA\HA Lapse Drivers Luke 2012 Q4\model2.txt'; output; end; run; goptions reset=global; proc gplot data=plt;/*plots data in SAS*/ symbol1 v=dot h=.5 i=join; axis1 order=(0 to 180) minor=none; plot(shf1)*t=call_TOTAL / vzero haxis=axis1; run; quit; 9

  10. 10/28/2013 Conclusion • Predictive Hazard Modeling – Provides flexible modeling choices. – Gives nice visualization of hazard function by independent variables – Can be used to score customers – Can be used for forecasting 10

Recommend


More recommend