转载自:http://www.jiayounet.com/index1/Item/Show.asp?m=1&d=1828
Cox模型分析客户流失时间
一、生存分析与cox比例风险模型... 1
1. 生存分析... 1
2. cox比例风险模型... 1
二、案例分析... 3
1. 案例说明... 3
2. SAS 实现... 3
3. SPSS 实现... 4
4. SPSS Clementine 实现... 6
一、生存分析与cox比例风险模型
1. 生存分析
生存分析是研究和预测生物和人的生存时间的分析方法,最初源于生物学和医学。而“生存”可以广义的理解为自然界、人类社会、技术过程和市场行为中某种状态持续的时间,因此生存分析还广泛的应用于工程科学、心理学、经济学和市场研究分析。本文要研究的,就是客户能够保持购买行为的时间,换言之,客户在什么时候会流失。2. cox比例风险模型
(1)模型基本形式令h(t)为风险率,是患者在t时刻仍存活,在时间t后的瞬间死亡率。
其中,不存在因素X1、X2 …Xp的影响的t时刻死亡率为 ,存在因素X1、X2 …Xp 影响的 t时刻死亡的风险率为h(t)。借助logit模型的构造思想,cox比例风险模型为:
它的常见形式为:
由于h0(t)是未知的,所以又称为半参数模型。
该模型通过建立偏似然函数,使对数偏似然函数最大并用最大似然法的Newton-Raphson迭代得到参数的估计值。假设检验通过似然比检验,构造卡方统计量对系数进行检验。
(2) 系数意义
该模型的系数意义为: beitai表示存在xi因素下,死亡的风险率是不存在 xi因素的betai倍。
为 风险指数 (hazard index),简称 HI ,又称预后指数(prognostic index)或预后得分(prognostic score)。
HI=0 代表风险处于平均水平;HI<0代表风险处于低水平;HI>0代表风险处于高水平。
(3) 生存函数
生存函数S(t|x)代表一直生存至t时间的概率,即生存时间t的累积密度函数。令它的概率密度函数为f(t|x),那么有
解微分方程得,
(4)PH假定
PH假定即比例风险假定(proportional hazards assumption),即一个比例风险模型具有不同个体有成比例的性质,即对于两个协变量X1和X2,h(t|X1)/h(t|X2)不随时间t改变,这是由比例风险模型的形式决定的。
同时,它意味着二次对数生存曲线(log-log survival curves)应该平行。即 两边取对数,两边对数值加上负号,再取对数
log{-log[ S ( t )]}=log{-log[ S 0 ( t )]}+ bx
这是二次对数生存率,记为LML,可以发现,不同的LML相差只是个常数:LML1-LML2=b(x1-x2),与t无关。如下图示的一个例子就满足PH假定。
二、案例分析
1. 案例说明
在成功预测了客户流失可能性之后(参见《Logit模型预测客户流失》),电信公司对客户的“流失时间很感兴趣”,他们想知道哪些因素会导致客户在很短时间内更换使用其他电信服务,为此,随机选取了一些客户样本,和他们作为客户的时间,以及其他一些变量。数据文件仍为telco.sav。2. SAS 实现
(1)数据清理数据在《Logit模型预测客户流》已装入sasuser库中,本例中直接使用。
(2)模型构建
用SAS的phreg过程构建cox比例风险模型,注意建模去掉一些变量,包括缺失值过多的变量、电信专家认为不需要的变量。
proc phreg data=sasuser.telco;
model x2*y(0)=x3-x5 x7-x20 x26-x34 x40 x41/selection=stepwise slentry=0.05 slstay=0.1;
baseline out=telout survival=s_t stderr=stderr/method=ch;
run;
proc print data=telout;
proc gplot data=telout;
plot s_t*x2;
run;
(3)生存分析
建模结果如下
模型信息显示删失观测值共726个,表示尚未流失的客户量。已删失的观测值不能用于计算回归系数,但可用于计算基线风险。
模型的迭代过程一共进行12步,最后一步保留的变量及回归系数如下:
最终的模型包含了地址、就业、居住、设备、电话卡、longmon、equipmon、多线程、声音、因特网、callid、电子账单这几个变量,这说明COX比例风险模型认为这几个变量将影响客户流失时间。
基本生存曲线是平均意义上客户预测流失时间的可视化显示,由下图可见,55个月后曲线不在平滑,这是由于可获取的信息变少的缘故。
3. SPSS 实现
(1)数据导入由于文件telco.sav是spss文件格式,故可以直接用SPSS打开。
(2)模型构建
选择analyze-survival-cox regression
将tenure变量选入time框,将churn选入status框,并点击define event,将值1指定为已删失值。
再将认为需要的变量都选入covariables框中,点击plot,勾选生存图。
(3)生存分析
模型一共进行12步,最后一步模型中包括的变量如下:
Variables in the Equation
B | SE | Wald | df | Sig. | Exp(B) | ||
Step 12 | address | -.035 | .009 | 14.543 | 1 | .000 | .966 |
employ | -.051 | .010 | 25.767 | 1 | .000 | .950 | |
reside | -.103 | .046 | 5.037 | 1 | .025 | .902 | |
equip | 1.948 | .381 | 26.180 | 1 | .000 | 7.012 | |
callcard | -.777 | .151 | 26.451 | 1 | .000 | .460 | |
longmon | -.233 | .022 | 115.619 | 1 | .000 | .792 | |
equipmon | -.042 | .011 | 15.377 | 1 | .000 | .959 | |
multline | -.612 | .145 | 17.854 | 1 | .000 | .542 | |
voice | .501 | .157 | 10.197 | 1 | .001 | 1.651 | |
internet | .362 | .160 | 5.114 | 1 | .024 | 1.436 | |
callid | .464 | .148 | 9.790 | 1 | .002 | 1.591 | |
ebill | .399 | .156 | 6.557 | 1 | .010 | 1.491 |
与SAS分析结果一致,说明COX风险比例模型认为地址、就业、居住、设备、电话卡、longmon、equipmon、多线程、声音、因特网、callid、电子账单这几个变量将影响客户流失时间。
生存函数曲线如下:
这仍是平均意义上的基本生存曲线,55个月后曲线不在平滑,这是由于可获取的信息变少的缘故。
4. SPSS Clementine 实现
(1)数据装载将telco.sav数据装入SPSS节点,添加过滤节点,过滤地区(region)和收入(income)节点以及从longten到wireten、从loglong到logwire节点。再添加类型节点,将流失(churn)字段设置为标志和输出,其余均设置为输入。
(2)建模
将cox建模节点连接至类型节点,生存时间选择tenure变量,逐步法,并显示生存和风险散点图(专家选项卡——输出——散点图),执行。
案例处理摘要 | |||
---|---|---|---|
N | 百分比 | ||
分析中可用的案例 | 事件(a) | 274 | 27.4% |
删失 | 726 | 72.6% | |
合计 | 1000 | 100.0% | |
删除的案例 | 带有缺失值的案例 | 0 | .0% |
带有负时间的案例 | 0 | .0% | |
层中的最早事件之前删失的案例 | 0 | .0% | |
合计 | 0 | .0% | |
合计 | 1000 | 100.0% | |
a. 因变量: Months with service |
从案件处理摘要来看,删失观测值共726个,表示尚未流失的客户量。已删失的观测值不能用于计算回归系数,但可用于计算基线风险。
分类变量码是用来解释回归系数的参考。它显示了哪个分类是参考分类(虚拟变量),分类变量码中最后一个类别是参考分类。
分类变量编码(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) | ||||||
---|---|---|---|---|---|---|
频率 | (1)(s) | (2) | (3) | (4) | ||
marital(t) | 0=Unmarried | 505 | 1 | |||
1=Married | 495 | 0 | ||||
ed(t) | 1=Did not complete high school | 204 | 1 | 0 | 0 | 0 |
2=High school degree | 287 | 0 | 1 | 0 | 0 | |
3=Some college | 209 | 0 | 0 | 1 | 0 | |
4=College degree | 234 | 0 | 0 | 0 | 1 | |
5=Post-undergraduate degree | 66 | 0 | 0 | 0 | 0 | |
retire(t) | 0=No | 953 | 1 | |||
1=Yes | 47 | 0 | ||||
gender(t) | 0=Male | 483 | 1 | |||
1=Female | 517 | 0 | ||||
tollfree(t) | 0=No | 526 | 1 | |||
1=Yes | 474 | 0 | ||||
…… |
模型系数的综合测试,对模型的每一步构建进行检测。表中可以看出,一共进行了12步,“从上一步骤开始更改”是上一步和当前步骤的“-2对数似然值”之差,越大表示这一步越需要。如果某一步要添加变量,则在更改的显著性小于0.5时才可以将变量包含;如果某一步要移除变量,则在更改的显著性大于0.1时才能进行此排除操作。
模型系数的综合测试(a,b) | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
步骤 | -2 倍对数似然值 | 整体 (得分) | 从上一步骤开始更改 | 从上一块开始更改 | |||||||
卡方 | df | Sig. | 卡方 | df | Sig. | 卡方 | df | Sig. | |||
1(c) | 3392.536 | 162.303 | 1 | .000 | 133.828 | 1 | .000 | 133.828 | 1 | .000 | |
2(d) | 3087.314 | 249.392 | 2 | .000 | 305.222 | 1 | .000 | 439.050 | 2 | .000 | |
3(e) | 3027.085 | 328.426 | 3 | .000 | 60.229 | 1 | .000 | 499.279 | 3 | .000 | |
4(f) | 2990.790 | 347.197 | 4 | .000 | 36.294 | 1 | .000 | 535.574 | 4 | .000 | |
5(g) | 2973.790 | 362.673 | 5 | .000 | 17.000 | 1 | .000 | 552.574 | 5 | .000 | |
6(h) | 2958.796 | 376.140 | 6 | .000 | 14.994 | 1 | .000 | 567.568 | 6 | .000 | |
7(i) | 2945.503 | 384.717 | 7 | .000 | 13.293 | 1 | .000 | 580.861 | 7 | .000 | |
8(j) | 2936.993 | 417.341 | 8 | .000 | 8.510 | 1 | .004 | 589.371 | 8 | .000 | |
9(k) | 2926.000 | 423.911 | 9 | .000 | 10.994 | 1 | .001 | 600.364 | 9 | .000 | |
10(l) | 2917.551 | 428.078 | 10 | .000 | 8.449 | 1 | .004 | 608.813 | 10 | .000 | |
11(m) | 2913.308 | 436.837 | 11 | .000 | 4.243 | 1 | .039 | 613.056 | 11 | .000 | |
12(n) | 2908.078 | 440.158 | 12 | .000 | 5.230 | 1 | .022 | 618.286 | 12 | .000 | |
a. 起始块编号 0,最初的对数似然函数:-2 倍对数似然值: 3526.364 | |||||||||||
b. 起始块编号 1. 方法 = 向前逐步(似然比) | |||||||||||
c. 在步骤编号 1: callcard 处输入变量 | |||||||||||
d. 在步骤编号 2: longmon 处输入变量 | |||||||||||
e. 在步骤编号 3: equip 处输入变量 | |||||||||||
f. 在步骤编号 4: employ 处输入变量 | |||||||||||
g. 在步骤编号 5: multline 处输入变量 | |||||||||||
h. 在步骤编号 6: voice 处输入变量 | |||||||||||
i. 在步骤编号 7: address 处输入变量 | |||||||||||
j. 在步骤编号 8: equipmon 处输入变量 | |||||||||||
k. 在步骤编号 9: ebill 处输入变量 | |||||||||||
l. 在步骤编号 10: callid 处输入变量 | |||||||||||
m. 在步骤编号 11: internet 处输入变量 | |||||||||||
n. 在步骤编号 12: reside 处输入变量 |
从最后一步可以看出,,最终的模型包含了地址、就业、居住、设备、电话卡、longmon、多线程、声音、因特网、callid、电子账单。Exp(b)解释了相应变量的单位增量可带来的风险。
B | SE | Wald | Df | Sig | Exp(b) | ||
步骤 12 | address | -.035 | .009 | 14.543 | 1 | .000 | .966 |
employ | -.051 | .010 | 25.767 | 1 | .000 | .950 | |
reside | -.103 | .046 | 5.037 | 1 | .025 | .902 | |
equip | -1.948 | .381 | 26.180 | 1 | .000 | .143 | |
callcard | .777 | .151 | 26.451 | 1 | .000 | 2.175 | |
longmon | -.233 | .022 | 115.619 | 1 | .000 | .792 | |
equipmon | -.042 | .011 | 15.377 | 1 | .000 | .959 | |
multline | .612 | .145 | 17.854 | 1 | .000 | 1.844 | |
voice | -.501 | .157 | 10.197 | 1 | .001 | .606 | |
internet | -.362 | .160 | 5.114 | 1 | .024 | .697 | |
callid | -.464 | .148 | 9.790 | 1 | .002 | .629 | |
ebill | -.399 | .156 | 6.557 | 1 | .010 | .671 |
基本生存曲线是平均意义上客户预测流失时间的可视化显示,55个月后曲线不在平滑,这是由于可获取的信息变少的缘故。