很多同学在做线性回归的时候,不明白到底是直接那原始数据跑,还是要用中心化的数据跑,或者还是用标准化的数据跑。先说结论,相对于原始回归模型,中心化回归模型只是截距发生了改变(相当于平移到原点),标准化回归模型截距和斜率都有改变,但三个模型的拟合程度都是一致的,就是自变量对因变量的解释程度没有变化。
现在我们就具体看一下中心化和标准化对线性回归有哪些影响。
中心化其实就是把每个数据减去那列的均值,标准化其实就是对中心化后的数据再除以数据的标准差。在R里面中心化和标准化都可以用scale()计算, 只是在参数上会有一些变化。
数据中心化:scale(data,center=T,scale=F)
数据标准化:scale(data,center=T,scale=T)
还是以著名的iris数据集为例,因为数据集最后一列是字符型数据,所以我们取前四列数值型数据
data=iris[1:4]
数据集长这样,是一个150行4列的数据集。
我们对它进行回归分析
model_raw=lm(Sepal.Length~Sepal.Width+Petal.Length+Petal.Width,data=data)
summary(model_raw)