分类变量
的水平一定要压缩
模型中分类变量一般需要处理成0-1形式的哑变量。
如果变量水平本身较多,那么哑变量的水平个数也会相应变多,这种情况下去构建模型肯定不行,需要将分类变量的水平进行压缩处理。
分类变量
水平压缩的方法
一般情况,分类变量水平压缩有下面两种方法,这一篇先说说我对哑变量编码法的理解:
我眼中的
哑变量编码法
建模时,如果入模变量有N个等级,为了避免多重共线性,不可以设置N个哑变量,一般需设置N-1个0-1形式的哑变量。变量等级过多会为后续的建模工作带来麻烦,但如果坚持想通过构建哑变量的方式来构建模型,则只能通过人为的方法去合并变量的水平数量,即进行变量压缩处理。
例如某个分类变量共有19个水平,那么可以通过变量压缩,将水平合并为5个,再针对这5个水平设置4个哑变量,这样事情就变得非常的简单了,通常,我会用决策树去实现这个过程。
SAS构建逻辑回归模型时会使用CLASS语句去告诉软件该变量为分类变量,同时,SAS也会自动生成对应的N-1个哑变量,而回归模型则需手动设置生成哑变量,这个环节与回归模型相比,逻辑回归模型更加简单便捷。
变量压缩
的原则
变量压缩遵循的基本原则为:将缺乏变异性的 数据分类 压缩处理掉。
以绩效等级为例,Y为0-1形式的二值型数据,如果数据处于第二个绩效等级,则Y=0的概率为100%,即这个绩效等级的方差为0,这意味着变量的随机性已经退化到仅剩一个数值,Y因缺乏变异而导致无法计算,即第二个绩效等级的分类水平明显会导致过度拟合。
这种情况下,通常需要将第二个绩效等级水平与其他水平进行合并处理。
我这样进行
水平合并
关于变量水平的合并,我会有两种合并思路:
变量水平的合并需要进行多次尝试,宗旨是力求变异性最大化,也就是P*(1-P)最大。合并的过程需要手动完成,需要将每一个分类变量拿出来后,逐一进行列联表分析,然后人工的去挑出没有变异的值后,再手动进行合并。
本文分享自 Data Analyst 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!