Clementine回归分析和判别分析
来源:互联网 发布:马克斯cms添加播放器 编辑:程序博客网 时间:2024/05/17 05:13
Clementine回归分析和判别分析
二项Logistic回归
熟悉统计的同学对回归肯定不陌生。前面我们介绍正态分布(NormalDistribution)的时候也多少提到过回归。事实上,回归这一概念最早是在19世纪7、80年华由著名的生物统计学家高尔顿(著名生物学家达尔文的表弟,一译高尔登)提出来的。高尔顿在研究遗传现象时,发现母体偏高的子代有趋于普通高度的趋势;母体偏矮的子代有也有趋于普通高度的趋势。因此,高尔顿发现子代都有回归到普通水平的趋势。回归的提出,是统计学由描述性统计学阶断过渡到推断性统计阶断的标志之一。因此我们利用回归技术就能实现对未来的“预测”,这在统计学史上是一次巨大的飞跃。
常见的简单线性回归能进行一般数值的预测,本文要介绍的Logistic回归则是对类别的推断。当目标变量含有两个选项(即我们常提到的二分问题)时,我们可以使用二项Logistic回归;当目标变量含有多个选项时,我们则可以使用多项Logistic回归。
本案例假设的情景如下:
假设某个电信服务提供商非常关心流失到竞争对手那里的客户数。如果可以使用服务使用数据预测有可能转移到其他提供商的客户,则可通过定制服务使用数据来尽可能多地保留这些客户。
也就是我们常说的电信客户流失模型。
首先导入源数据。源—Spss文件,我们导入所需要的数据Telo.sav,添加“类型”节点,在“类型”节点里,我们可以根据实际情况更改数据的类型。由0和1构成的数据一般是标志型数据,然后将目标变量churn的字段方向设置为“输出”,其它字段的方向设置为输入,这样我们就能通过其它字段来对目标变量Churn进行预测了。
际情况中,我们往往无法在事先就确知哪些测量字段对预测有意义,哪些没有意义。哪么,我们能不能把那些重要的——即具有特征性的——变量筛选出来呢?
继续添加“特征选择”节点,在“特征选择”节点的对话框中保持默认状态,点击执行。然后浏览生成的模型。我们发现系统帮助我们筛选出了三个不适合的字希,原因为单个类别过大、缺失值过多和变异系数低于阈值。在左上角点击“生成”按钮,然后就可以得到经过筛选后的较理想的数据。
我们把新生成的含“重要字段”的节点添加到“类型”后面,然后我们进行数据审核。
添加“数据审核”节点,点击确定并打开数据审核的“质量”选项卡,我们审核一下数据的质量。在完成列中,我们发现只有Logtoll的完成率低于100%,为47.5%。这说明此字段存在较多缺失值,那么,如何处理这些缺失值呢?(在统计分析和数据挖掘中,对缺失值的处理非常有学问)
在Logtoll的缺失插补列中,点击选定“指定”,然后我们给这些缺失值指定值。在插补时间中,我们选择“空值与无效值”,在固定值中,我们选择“平均数”。这样就保证了新添加的数值不会返过来影响原来正确的数据。
对数据进行完审核后,我们在数据审核对话框的左上角点击“生成缺失值超节点”,样本比例选择为50%,这样就生成了更为合适的数据。将新生成的缺失值超节点添加到过滤节点上,然后再继续添加“Logistic回归”节点,打开Logistic回归对话框。在“模型”面板中,我们选择过程为“二项式”,在二项式过程方法中,我们选择“前进法”;然后打开专家面板,注意在高级输出中,去掉显示迭代历史前的对勾。我们知道,回归的方法有前进法,后退法和进入法,虽然方法名称不一样,但本质上都要经过大量的迭代收敛,最终得到一个比较合适的参数或结果,这个迭代的过程是极为复杂的,所以我们选择不显示此迭代过程。点击确定。
点击确定后,新生成二项Logistic的模型,浏览模型,我们对模型进行理解。在“模型”面板中,我们可以查看各个预测变量对目标变量的贡献性;在“汇总”面板中,我们可以查看目标变量和预测变量。
下面查看“高级”面板,“案例处理摘要”显示的是数据的总体摘要;
在第一个分类表(a,b)中,步骤0指不添加任何字段,则预测“不”流失的客户百分比为100%,流失客户预测百分比为0;
在下图分类表中,我们发现当步骤1,即向模型中扔入一个变量时,预测“是流失”的百分比从0上升到29.9%,而预测“不流失”的下降到92%;依次类推。
Clementine>判别分析
判别分析是经典的分类预测方法,它根据已有的训练样本,确定分类型输出变量与数值型输入变量之间的数量关系,其使用的中介,是判别函数。
判别分析非常常见,本博尝试从Clementine、Spss和R三个角度来切入判别分析。
判别分析的分类:
按输出的分类变量的数目分为两组判别分析和多组判别分析;根据所采用的数学模型,分为线性判别分析和非线性判别分析;根据判别准则,可以分为距离判别法、Fisherr判别法和Bayes判别法。这些都集中在Clementine的判别分析节点上。
8.2.1距离判别法
设某样本可分为K组(即输出的分类变量有K个类别),且每个样本都有P个变量(P>K),且输入型变量都为数值型变量,服从正态分布。距离判别法的思想是:将N个样本数据看做是P维空间中的点,则一个样本通过它的P个变量取值,就可以在P维空间中得到惟一位置。这样,计算出K个分组中每个组的各输入变量的均值,通过这P个均值的组合,在P维空间得到惟一点,称为此分组的类别中心。对于新数据,计算它到各类别中心的马氏距离,并根据距离最近的原则,新数据点距离哪个类别近则属于哪个类别。
判别分析的目的是得到相应的判别函数,从而得到能够将不同总体区分开的线、平面或超平面。需要注意的是,做判别分析要求不同变量的数值分布要呈正态分布,严格意义上讲,多元变量的分布也要呈多元正态分布,相关内容我们会在Spss的判别分析中介绍。除了正态性外,判别分析还要求不同类别的总体间有显著性差异,否则错判率会较高。
8.2.2Fisher判别法
Fisher判别分析的核心思想是先投影,再判别。Fisher判别法的判别函数是输入变量的线性函数形式,其中的系数我们称为判别系数,表示输入变量对于判别函数的影响。所谓投影,指将原来P维的X空间的输入变量组合投影到K(K<P)维的Y空间中去,实现了坐标系统的变换,坐标系统的变换原则是,尽可能把来自不同类别的样本区分开。
首先,应该在输入变量的P维空间中找到某个线性组合,使各类别的平均值差异最大,作为第一维度,代表输入变量组间方差中的最大部分,得到第一判别函数。
然后,按照同样规则依次找到第二判别函数,第三判别函数等,且判别函数之间独立。
因此,我们通过Fisher判别法得到的判别函数代表了输入变量间的方差,一般第一判别函数代表的组间方差是最大的,所以我们往往会发现最后的判别分析图中,不同类别在第一维度即第一函数上的分布,是差异最大的。
则所有判别函数所代表的组间方差比例之和,为1。
在判别分析过程中,我们对判别函数的要求是,使组间方差越大越好,组内方差载小越好。
那么,应该取几个判别函数呢,一般有两个标准。第一,指定取特征值大于1的特征值;第二,前M个判别函数的判别能力达到指定的百分比。
对新数据的预测与距离判别法相似,通过判别函数计算出新数据在Y空间中的位置,然后计算其与各类别中心的距离,最近,则属于该类别。
8.2.3Bayes判别法
Bayes差别法属于Bayes方法范畴,Bayes方法是一种研究不确定性的推理方法,其不确定性用Bayes概率表示。Bayes概率的估计取决于先验知识的正确性和后难知识的丰富性,其会随人掌握信息的不同而发生变化。如某部影片上映后获得理想票房的收入的概率,在未上映之前主要取决于电影发行商多年的经验,但在电影上映过程中此概率并定得到调整,增大或者减小。
关于Bayes,我们在这里不再多谈。
8.2.4 判别分析应用示例
导入Spss数据,此数据是一份关于MBA招生的数据,含三个变量:平均学分成绩、管理才能得分和录取结果。其中前两个输入变量为数值型变量,最后一个输出变量为分类变量,含有录取、不录取和待定三个水平。依次添加SpssFile和Type节点对数据进行读取和字段方向设置,添加Modeling中的Discriminate节点,设置相关参数。
在方法方面Clementine提供了两种方法,一是Enter,一是Stepwise。Enter是强制进入法,即所有输入变量都参加模型的构建;Stepwise为逐步筛选法,Stepwise法可以挑选出具有高判别能力的输入变量进入判别函数。
逐步筛选法与回归分析中的逐步回归法思想相似。即采用的是“有进有出”的策略,逐步引入最重要的输入变量,并随机判断是否有其它输入变量因为后续的操作而不再显著。如果有输入变量的判别作用下降,则将其剔除出去,直到所有输入变量进入,而不再有输入变量的作用低于显著性水平。通过,我们会用WilksLambda统计量为此函数的效果进行检验。
一、准备工作:均值检验和方差性次性检验
1、均值检验
我们知道,进行判别分析的一个条件是各类别间输入变量的均值具有显著性差异,为此我们要通过检验统计量WilkLambda进行检验人。此检验同方差检验,其统计量等于SSE/SST,即组内变差除以总变差,此统计量服从Wilks分布,也可以用卡方分布近似。
具体的操作是选择Expert面板,选择Expert,然后在“输出”中进行设置:
在输出面板中进行设置。选择描述性分析中的均值和单变量ANOVAS,表示显示各类别的变量均值并对其进行方差分析。
如下图,给出了各类别中不同输入变量的均值和方差,在后面显示了加权情况。第二张表显示的是对不同输入变量的均值检验,我们只看Sig列,发现两列都具有显著性,说明输入变量均值拥有显著性差异,则可以适用于判别分析。
2、方差齐次性检验
在距离判别法中,各总体的协方差矩阵相等和不相等时,采用的判别函数是不同的,因此我们在输出中选择BoxM进行方差齐次性检验。以显示了不同组内和组间的协方差矩阵和相关系数矩阵。显然三组协方差矩阵存在明显差异,在使用协方差矩阵的选项中,我们选择使用独立组。
二、解读判别结果
在输出面板中的FunctionCoefficients中选择未标准化项,显示未标准化的判别函数系数。
1、Fisher判别函数
下图给出了未标准化的Fisher判别系数,则根据未标准化的判别系数可以得同两个判别函数为:
Y1=-15.595+4.086X1+0.007X2
Y2=-1.47+-1.831X1+0.014X2
将原数据的相应值代入两个函数,可以得到样本点在Y空间的坐标。
下图给出了三个类别在该新空间中的坐标。注意,这是三个类别的中心在两个判别函数中的得分,可以根据两个得分画出其中心所在位置。
下图为标准化后的判别系数。标准化后的判别系数克服了原始数据中量纲差别造成的影响,反映的是不同输入变量对新样本坐标确定的贡献率。由图可知,大学平均成绩对第一坐标的贡献最大,管理才能评分对第二坐标的贡献率最大。
下面为结构矩阵,Structure Matrix。揭示了不同输入变量对判别函数的相关性,是简单相关系数修正后的结果。星号表示相应系数的绝对值最大,表明第一判别函数与大学平均成绩的相关性高,第二判别函数与管理才能的评分相关性高。
2、判别能力检验
那么,Fisher判别函数的投影是否很好地实现了各类样本分开的效果呢,哪个判别函数更重要?下图第一张显示了特征根,我们看到第一函数和第二函数的特征根,组间方差解释百分比,累积百分比和相关性。其中,特征根表征了判别函数携带信息的量,越大,表示携带组间方差越大。相关系数表征了判别函数与不同类别的相关性,其中相关性越大,表示不同类别在此维度上差异越明显。
第二张显示了WilksLambda,即从统计检验角度分析哪个判别函数表现出的判别能力是显著的。我们看到第一二判别函数综合起来的判别效果二判别函数的效果一样,都有显著性。
3、Fisher判别函数
在输出面板的函数系数中选择Fisher's,得到Fisher判别函数如下。费舍尔线性判别函数相关矩阵,利用此矩阵将新数据的值代入,哪个类别的结果值大,则属于哪个类别
4、各样本的详细判别结果
在Classification框中选择Casewise reults项表示显示前面若干个样本的详细判别结果。可在Limit caseto first 框中指定想查看的样本个数,默认为前十个。如下所示,判别分析生成判别模型后,还会应用于自己原有的数据上进行验证。下图中预测组中带星号的表示预测错误,不带星号表示预测正确。“到质心的平方马氏距离”列表示此数据点距离该类别中心点的马氏距离;第二最高级中的“组”列是通过Bayes判别得出的第二高的判别结果,后面的P值为相应的贝叶斯概率。注意最右侧的两列得分,这是此点在第一判别维度和第地判别维度上的得分,通过这两个得分,我们就能和到此点在二维图像上的位置。
5、判别结果的评价
通过勾选Classification中的Summary Table,得到判别分析的混淆矩阵。在混淆矩阵中,我们可以查看模型的预测能力。如下图示,在类别1中,模型成功预测30项,错判1项,成功率为0.968;类别2和类别3同理。注意,总体预测成功率为最底部的0.953,说明此模型相当不错了已经。
7、Plot
那么,我们能不能像对应分析那样将分类的模型展现在图中呢?添加Plot节点,并进行相关设置,得如下图。我们看到三个类别的点很明显地彼此区分了开来。
在步骤六时,预测“不流失”的百分比已经达到了90%,而“是流失”的百分比上升到47.1%,这是一个不错的结果。
下图为生成的预测模型,我们发现我们预测的L—Churn和实际预测值Churn拟合度非常好。
http://www.docin.com/p-302960487.html
http://www.itongji.cn/article/1002115R012.html
http://www.datasoldier.net/post/logistic.html
- Clementine回归分析和判别分析
- ML—高斯判别分析、朴素贝叶斯和逻辑回归
- 高斯判别分析(GDA,Gaussian discriminant analsis)和Logistic回归
- Clementine和SPSS
- 聚类分析、判别分析、相关分析、回归分析、因子分析、生存分析、方差分析简单定义
- clementine软件里面dome的演示实验的分析和说明
- 相关分析和回归分析
- 【回归分析】[2]--线性回归和最小二乘法
- 怎么用clementine做关联规则分析
- 利用weka和clementine数据挖掘举例
- 回归分析---线性回归原理和Python实现
- PCA(主成成分分析)和LDA(线性判别分析)详解-共性和区别
- 判别分析
- 判别分析
- 判别分析
- Matlab回归分析regress和polyfit
- 主成分分析和主成分回归
- 回归分析
- C++的中英文字符串表示(string,wstring)
- Web系统大规模并发—电商秒杀与抢购
- dp、sp 转换为 px 的工具类
- Unity+高通Vuforia SDK——AR
- 前端面试题搜集之二——HTML
- Clementine回归分析和判别分析
- QQ状态同步究竟是推还是拉?
- struts2的action与jsp之间传递参数
- Linux使用swap分区
- mousewheel滚动事件的兼容性
- RedHat查看和修改IP地址
- 【UESTC1060/ZCMU1783】秋实大哥与快餐店(字典树)
- 微信为啥这么省流量(技术宅入)
- string与wstring转换