การตรวจสอบข้อสมมติของโมเดลและการพยากรณ์

Machine Learning for Marketing Analytics ใน 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 for Marketing Analytics ใน R

Proportional hazards สำหรับ Partner

plot(testCPH1, var = "Partner")

กราฟสัมประสิทธิ์สำหรับ Partner

Machine Learning for Marketing Analytics ใน R

Proportional hazards สำหรับ MonthlyCharges

plot(testCPH1, var = "MonthlyCharges")

กราฟสัมประสิทธิ์สำหรับ MonthlyCharges

Machine Learning for Marketing Analytics ใน R

ข้อสังเกตทั่วไปเกี่ยวกับการทดสอบ

  • การทดสอบด้วย cox.zph() มีความอนุรักษ์นิยมสูง
  • ไวต่อจำนวนการสังเกตการณ์
  • ความรุนแรงของการละเมิดข้อสมมติมีหลายระดับ
Machine Learning for Marketing Analytics ใน R

จะทำอย่างไรหากข้อสมมติ PH ถูกละเมิด?

  • การวิเคราะห์แบบ stratified
fitCPH2 <- cph(Surv(tenure, churn) ~ MonthlyCharges +
                 SeniorCitizen + Partner + Dependents + 
                 StreamMov + Contract,
               stratum = "gender = Male",
               data = dataSurv, x = TRUE, y = TRUE, surv = TRUE)

  • สัมประสิทธิ์แบบขึ้นกับเวลา
Machine Learning for Marketing Analytics ใน 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 for Marketing Analytics ใน R

ความน่าจะเป็นที่จะไม่ churn ณ จุดเวลาที่กำหนด

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 for Marketing Analytics ใน R

เส้นโค้ง survival สำหรับลูกค้าใหม่

plot(survfit(fitCPH1, newdata = oneNewData))

กราฟฟังก์ชัน survival ที่พยากรณ์

Machine Learning for Marketing Analytics ใน R

การพยากรณ์เวลาที่คาดว่าจะ churn

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 for Marketing Analytics ใน R

สรุปสิ่งที่เรียนรู้

สิ่งที่เรียนรู้เกี่ยวกับ survival analysis
คุณได้เรียนรู้... การแสดงภาพระยะเวลาการเป็นลูกค้า
การสร้างโมเดลเวลาจนถึงเหตุการณ์และดึงปัจจัยที่มีอิทธิพล
การตรวจสอบความถูกต้องของโมเดล
การพยากรณ์ผลลัพธ์
สิ่งที่เรียนรู้จากโมเดล
คุณได้เรียนรู้... การเป็นผู้สูงอายุเพิ่มความน่าจะเป็นที่จะ churn ขึ้น 23%
การเพิ่มขึ้น 1 หน่วยของค่าบริการรายเดือนลด hazard ของการ churn ลงประมาณ 1%
Machine Learning for Marketing Analytics ใน R

มาฝึกกันเถอะ!

Machine Learning for Marketing Analytics ใน R

Preparing Video For Download...