Verificarea ipotezelor modelului și realizarea predicțiilor

Machine Learning pentru Analiză de Marketing în R

Verena Pflieger

Data Scientist at INWT Statistics

Testul ipotezei de hazard proporțional

testCPH1 <- cox.zph(fitCPH1)
print(testCPH1)
                              rho   chisq        p
gender=Male               0.0317   1.884 1.70e-01
SeniorCitizen=Yes         0.0587   6.507 1.07e-02
Partner=Yes               0.0752  10.116 1.47e-03
Dependents=Yes            0.0131   0.314 5.75e-01
StreamMov=NoIntServ      -0.0448   3.588 5.82e-02
StreamMov=Yes             0.0827  12.174 4.85e-04
PaperlessBilling=Yes      0.0180   0.611 4.34e-01
PayMeth=CreditCard(auto)  0.0253   1.198 2.74e-01
PayMeth=ElektCheck       -0.0427   3.427 6.41e-02
PayMeth=MailedCheck      -0.0851  13.069 3.00e-04
MonthlyCharges            0.1268  25.778 3.83e-07
GLOBAL                        NA 217.172 0.00e+00
Machine Learning pentru Analiză de Marketing în R

Hazard proporțional pentru Partner

plot(testCPH1, var = "Partner")

Machine Learning pentru Analiză de Marketing în R

Hazard proporțional pentru MonthlyCharges

plot(testCPH1, var = "MonthlyCharges")

Machine Learning pentru Analiză de Marketing în R

Observații generale despre teste

  • Testul cox.zph() este conservator
  • Sensibil la numărul de observații
  • Gravitatea încălcărilor variază
Machine Learning pentru Analiză de Marketing în R

Ce se face când ipoteza HP este încălcată?

  • Analiză stratificată
fitCPH2 <- cph(Surv(tenure, churn) ~ MonthlyCharges +
                 SeniorCitizen + Partner + Dependents + 
                 StreamMov + Contract,
               stratum = "gender = Male",
               data = dataSurv, x = TRUE, y = TRUE, surv = TRUE)

  • Time-dependent coefficients
Machine Learning pentru Analiză de Marketing în R

Validarea modelului

validate(fitCPH1, 
         method = "crossvalidation", 
         B = 10, pr = FALSE)
      index.orig training   test optimism index.corrected  n
R2        0.2277   0.2279 0.2277   0.0002          0.2276 10
                            ...
Machine Learning pentru Analiză de Marketing în R

Probabilitatea de a nu renunța la un anumit moment

oneNewData <- data.frame(gender = "Female",
                             SeniorCitizen = "Yes",
                             Partner = "No",
                             Dependents = "Yes",
                             StreamMov = "Yes",
                             PaperlessBilling = "Yes",
                             PayMeth = "BankTrans(auto)",
                             MonthlyCharges = 37.12)
str(survest(fitCPH1, newdata = oneNewData, times = 3))
List of 5
 $ time   : num 3
 $ surv   : num 0.905
 $ std.err: num 0.0136
 $ lower  : num 0.881
 $ upper  : num 0.93
Machine Learning pentru Analiză de Marketing în R

Curba de supraviețuire pentru un client nou

plot(survfit(fitCPH1, newdata = oneNewData))

Machine Learning pentru Analiză de Marketing în R

Predicția timpului până la renunțare

print(survfit(fitCPH1, newdata = oneNewData))
Call: survfit(formula = fitCPH1, newdata = oneNewData)

      n  events  median 0.95LCL 0.95UCL 
   5311    1869      65      53      72 
Machine Learning pentru Analiză de Marketing în R

Lecții învățate

Lecții despre analiza de supraviețuire
Ați învățat... să vizualizați timpii de retenție ai clienților
să modelați timpul până la un eveniment și să extrageți factorii de influență
cum să validați modelul
cum să realizați predicții
Lecții din model
Ați învățat... că a fi pensionar crește probabilitatea de renunțare cu 23%
că o creștere cu o unitate a taxelor lunare reduce riscul de renunțare cu aproximativ 1%
Machine Learning pentru Analiză de Marketing în R

Acum este rândul dumneavoastră!

Machine Learning pentru Analiză de Marketing în R

Preparing Video For Download...