不管是用程序调用算法,还是用Weka、SAS、SPSS等工具使用逻辑回归算法时,都还需要了解一些数据处理的细节,才能保证做出正确的模型。
逻辑回归的数据类型
数据类型通常有下面这三种:
二元分类变量,例如性别分为男、女,初始的数据集中有 Gender 字段,字段值分别是 male、female,数据处理时需要转换成0、1值用于计算,参照值设为 0,另外一个变量设为 1 。一般把“否”的值设为参照,例如不抽烟为 0, 抽烟为 1, 不运动为 0 , 运动为 1 。
多元分类变量是分类有大于两个值的变量,多元变量可以分为有序型和无序型,有序型如教育程度有:高中、大专、本科、研究生, 无序型如用户兴趣有音乐、阅读、户外、旅游。使用0、1、2、3 等数值直接代替多元变量值会加大模型的误差,不能很好体现某个分类值对模型的影响,所以多元分类变量需要根据变量所包含的不同值个数转成多个虚拟的变量,又叫哑变量。
哑变量又称虚拟变量,用以反映因子变量的一个人工变量,是量化了的质变量,通常取值为 0 或 1 。引入哑变量可使回归模型变得更复杂,但对问题描述更简明,一个方程能达到俩个方程的作用,而且接近现实。
第三中数据类型是数值型变量,原始数据本身就是数值型,在应用逻辑回归模型时不需要做处理,直接使用。
初始数据如下表所示,Gender是二元分类变量,Education是四元分类变量,Income是数值型,稍微可以看处理完毕的数据是什么样子。
模型中引入哑变量的作用
二元变量一般不需要新加哑变量,只需要把字符值转成0 和 1 。
- 分离异常因素的影响,例如分析我国GDP的时间序列,必须考虑“文革”因素对国民经济的破坏性影响,剔除不可比的“文革”因素。
- 检验不同属性类型对因变量的作用,例如工资模型中的不同教育程度、销售额预测中的季节因素,把一个变量转为多个哑变量。
- 提高模型的精度,相当与将不同属性的样本合并,扩大了样本容量(增加了误差自由度,从而降低了误差方差)
哑变量设置的原则
在模型中引入多个虚拟变量时,虚拟变量的个数应按下列原则确定:
- n个互斥的分类属性,在模型中引入(n-1)个哑变量,例如教育程度: 高中、大专、本科、研究生,转换为3个哑变量。
- n个非互斥的分类特征,设置n个虚拟变量,例如用户兴趣。
- 递归特征删除法选择特征变量时,如果某哑变量时对模型影响很小需要删除时,要同时删除该组哑变量。
多重共线性
n个互斥的分类属性值变量如果转成4个哑变量,就会出现多重共线性问题,多重共线性简单点说就是,多个变量相加是一个常数,即多个自变量产生相关性,彼此不独立,无法单独分析变量 X1 对 Y 的影响,因为 X1 始终混杂了其它几个变量的作用,公式如下。
X1 + X2 + X3 + X4 = 1
处理完毕的数据如下表所示,Gender值转为了 0、1 ,Education去除高中,变为三个变量 Education-jc、Education-gra、Education-gra 。如果保留4个变量,那么所有行记录中,这四个变量都只有一个是 1,其它为 0, 四个变量相关始终为 1 ,就产生了多元共线性问题。