线性回归中数据处理的方法

Box-Cox,Log,Tukey,…

数据的正态性

说到数据处理,得讲为什么要数据处理,如何数据处理,什么样的数据需要处理吧
同样是从kaggle上讲起,先说一下偏度
偏度(skew):是描述数据分布形态的统计量,其描述的是某总体取值分布的对称性,偏度大于0表示其数据分布形态与正太分布相比为正偏或右偏;有一条长尾巴在右边;反之左偏,即有一条长尾巴在左边。而偏度越接近于0,则数据越具有正态性。
参考:http://blog.sina.com.cn/s/blog_514922200101c2dn.html

先来看下面这张图,是kaggle上房价预测数据集中价格那一列数据的分布情况【针对线性回归】,可以很清楚的看到该列数据右偏,第二张图中数据和红线重合度越高,就越具有正态性,至于如何看出右偏,我估计是峰值在红线右下角吧

ml0101

这种右偏kaggle上常用的方法是使用log,至于为什么使用log,我也不太清楚,是想让数据更集中,这样就正太了? 上面的数据经过log运算后,再次绘制数据后,如下:

ml0102

数据分布是不是好看多了,这样的数据就具有正态性,那问题又来了,为什么要将数据正态性呢,这个我只能查到如下解释,具体数学知识后续理解了再补上吧:
大部分的统计原理和参数检验都是基于正态分布推得
再进一步说的话,就是linear regression基本假设之一就是因变量正态性,这也是修正正态性的比较根本的原因

Log Transformations

log转换可以使高偏度的数据变得低偏度,使得在数据模式更易于解释,也更符合统计推论的假设
下面这张图,显示了动物大脑重量和身体重量之间的关系图,第一张是未处理的,第二张是经过log处理后的:
ml0103
后面还讲到了均值的问题,说log数据后,类比于几何平均和算术平均,结果并未改变
参见:Log Transformations
这个下面还有一道题,说log 转换经常用于减少偏度,不过为什么说正态化数据不对呢?

Tukey Transformation

变换公式如下所示:

下图显示了对于美国1670年到1860年人口数据变化,当取不同的值的变化:

ml0104

当然了,也不总是最好的,比如下图,New York的人口,线性相关度最高的是的时候:

ml0105
详细参考:http://onlinestatbook.com/2/transformations/tukey.html

Box-Cox 变换

Box和Cox在1964年提出的变换可以使线性回归模型满足线性性,独立性,方差齐性以及正太性的同时,又不丢失信息,此种变换称为Box-Cox变换
变换如下:

详细参考:http://onlinestatbook.com/2/transformations/box-cox.html

如果觉得有帮助,给我打赏吧!