Kiểm tra giả định của mô hình và tạo dự đoán

Machine Learning cho Phân tích Marketing bằng R

Verena Pflieger

Data Scientist at INWT Statistics

Kiểm định giả định 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 cho Phân tích Marketing bằng R

Nguy cơ tỷ lệ cho Partner

plot(testCPH1, var = "Partner")

Machine Learning cho Phân tích Marketing bằng R

Nguy cơ tỷ lệ cho MonthlyCharges

plot(testCPH1, var = "MonthlyCharges")

Machine Learning cho Phân tích Marketing bằng R

Nhận xét chung về kiểm định

  • Kiểm định cox.zph() mang tính thận trọng
  • Nhạy với số lượng quan sát
  • Mức độ vi phạm khác nhau
Machine Learning cho Phân tích Marketing bằng R

Nếu giả định PH bị vi phạm thì sao?

  • Phân tầng khi phân tích
fitCPH2 <- cph(Surv(tenure, churn) ~ MonthlyCharges +
                 SeniorCitizen + Partner + Dependents + 
                 StreamMov + Contract,
               stratum = "gender = Male",
               data = dataSurv, x = TRUE, y = TRUE, surv = TRUE)

  • Hệ số phụ thuộc thời gian
Machine Learning cho Phân tích Marketing bằng R

Xác thực mô hình

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 cho Phân tích Marketing bằng R

Xác suất không rời bỏ tại một thời điểm

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 cho Phân tích Marketing bằng R

Đường sống còn cho khách hàng mới

plot(survfit(fitCPH1, newdata = oneNewData))

Machine Learning cho Phân tích Marketing bằng R

Dự đoán thời gian kỳ vọng đến khi rời bỏ

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 cho Phân tích Marketing bằng R

Những điều rút ra

Kiến thức về phân tích sống còn
Bạn đã học... cách trực quan hóa thời gian sử dụng (tenure) của khách hàng
cách mô hình hóa thời gian đến một sự kiện và rút ra yếu tố ảnh hưởng
cách xác thực mô hình
cách tạo dự đoán
Bài học từ mô hình
Bạn đã học... người cao tuổi có xác suất rời bỏ tăng 23%
tăng một đơn vị phí hàng tháng làm giảm hazard rời bỏ khoảng 1%
Machine Learning cho Phân tích Marketing bằng R

Giờ là đến bạn!

Machine Learning cho Phân tích Marketing bằng R

Preparing Video For Download...