登录
首页精彩阅读SAS信用评分卡之如何优雅的检查共线性
SAS信用评分卡之如何优雅的检查共线性
2017-06-26
收藏

SAS信用评分卡之如何优雅的检查共线性

这次的文章跟大家分享在建模中,选择确定变量之后要检查的一个多重共线性。理论上,如果你在选择变量是使用proclogistic中的stepwise即逐步回归,是不会出现多重共线性的,但是毕竟stepwise选择出来的变量你也自己也要按照业务筛选啊,那这是多重共线性还是要检查的,还有就是,因为变量到这一步都是分好段的,所以变量就是4-7组的样子,如果不是相关性很强的话,都是不会太相关。但是出于我们是一个尽责的员工考虑,还是要做这个检查的。

检查可以有两方面,如果你对共线性不熟,那么就用先用相关性试试,但我不保证相关性过关了就没有共性了,只是几率会降低一些。


1

1、相关性的检查。

proccorrdata=sashelp.classout=aa;

run;

输入代码可以得出结果:

主要看后面三行,与对应的变量之间的相关系数有木有超过0.8,假设超过0.8那就是存在相关性,在模型中就以为这两个变量只能留一个,不能两个同时进入变量。如果在out=aa不加参数,就默认是输出的是皮尔逊相关系数和简单描述统计。

nosimple--不进行简单的描述性统计;

pearson--皮尔逊相关系数;

spearman--斯皮尔曼相关系数;

best=number--将相关系数降序排列;

kendall--肯德尔相关系数;

hoeffding--霍夫丁相关系数;

求一个变量与其他变量的相关:

proccorrdata=sashelp.classout=aapearson;

withAge Height;

varWeight;

run;

结果:

以上提到的相关系数在“信用风险评分卡研究”这本书中的预测力指标这一章有相关的解释,可以看哪一章的内容。过多的定义我这里就不一一敲出来了。

2

2、共线性的检查。

procregdata=sashelp.classoutvif;

modelAge=Height Weight/tolvifcollin;

run;

结果:

请看,条件指数这一列,最后一个数是56.54682,大于30。看到倒数两列,偏差比例都非常高,断定height与weight有共线性。对这个例子不明显,我们再来一个:

这是一个建模数据,显示是没有多重共线性的。

再来一个:

这是我在网上偷的图,可以看到最大的条件指数为12.56.与30还有一点差距,但所对应的截距与x1的方差分解比例(就是sas中的偏差比例)分别是92.4%和67.3%,均超过了50%,可以认为两者之间存在较强的共线关系。而条件指数为4.3所对应的变量x3和x5的方差分解比例分别是56.5%和47.4%,也可以大致认为两者之间存在一定的共线关系。

在这里必须要说一个规则就是,判断是否有多重共线性,首先看条件指数是否大于30,在30的这一行看过去,看哪个的变量的方差分解比例大于50%,大于50%的那几个变量就是有存在共线性。

其次,对于条件指数没有大于30的,也可以看他们的方差分解比例是否大于50%,接近50%或者大于50%也可以认为可能有共线性,如果你对共线性的要求比较高,那就只看第一条规则,不需要看这条规则。


数据分析咨询请扫描二维码

客服在线
立即咨询