Перевірка припущень моделі та створення прогнозів

Machine Learning для маркетингової аналітики в R

Verena Pflieger

Data Scientist at INWT Statistics

Перевірка припущення PH

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 для маркетингової аналітики в R

Пропорційні ризики для Partner

plot(testCPH1, var = "Partner")

Machine Learning для маркетингової аналітики в R

Пропорційні ризики для MonthlyCharges

plot(testCPH1, var = "MonthlyCharges")

Machine Learning для маркетингової аналітики в R

Загальні зауваги щодо тестів

  • Тест cox.zph() є консервативним
  • Чутливий до кількості спостережень
  • Різна вага порушень
Machine Learning для маркетингової аналітики в R

Що робити, якщо припущення PH порушене?

  • Стратифікований аналіз
fitCPH2 <- cph(Surv(tenure, churn) ~ MonthlyCharges +
                 SeniorCitizen + Partner + Dependents + 
                 StreamMov + Contract,
               stratum = "gender = Male",
               data = dataSurv, x = TRUE, y = TRUE, surv = TRUE)

  • Часозалежні коефіцієнти
Machine Learning для маркетингової аналітики в R

Валідація моделі

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 для маркетингової аналітики в R

Ймовірність не відмовитися у певний момент часу

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 для маркетингової аналітики в R

Крива виживання для нового клієнта

plot(survfit(fitCPH1, newdata = oneNewData))

Machine Learning для маркетингової аналітики в R

Прогноз очікуваного часу до відтоку

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 для маркетингової аналітики в R

Висновки

Що ви засвоїли про аналіз виживання
Ви навчилися... візуалізувати строки обслуговування клієнтів
моделювати час до події та виділяти чинники, що на нього впливають
як валідовувати модель
як робити прогнози
Висновки з моделі
Ви дізналися... що статус senior citizen підвищує ймовірність відтоку на 23%
що збільшення місячної плати на 1 одиницю знижує ризик відтоку приблизно на 1%
Machine Learning для маркетингової аналітики в R

Тепер черга за вами!

Machine Learning для маркетингової аналітики в R

Preparing Video For Download...