消除量纲最常用的方法是,减去期望除以标准差。但是其数学意义和现实意义是什么?为什么说这样能够消除量纲?
1. 数学意义
任何一个数组,减去其期望之后再除以他的标准差,得到的新的数组的期望都是0,标准差都是1.
2. 现实意义
首先看两组数组y1=[0,2,4,5,7,8,9,2,5,12];y2=[1,3,5,14,9,10,8,0,-1,9];
the expectation of y1
is 5.4 ,the standard deviation of y1
is 10.972693379476162;
the expectation of y2
is 5.8 ,the standard deviation of y2 is
14.886235252742717;
显然,与y2相比,y1的平均值和波动程度都较小。将其标准化后,y1与y2的平均值和波动程度都会是一样的。而这样做的意义是什么?
首先说,为什么要减去平均值。不同的自变量其单位不同,其数值大体所在的量级也很可能不同。比如,若是研究身高和每天碳水化合物摄入量对于体重的影响,身高的单位是cm,一般人的身高都在150-190之间;而碳水化合物的摄入量的单位是g,一般人都在0-20g之间。若是直接将原始数据用作对体重的拟合或者预测,容易强化一方的作用而弱化另一方的作用!因此,需要减去平均值,将大家的平均量级都变为0.
其次说,为什么要除以标准差。举例:y1=[1,-1,1,-1,1,-1];y2=[2,-2,2,-2,2,-2];
他们的平均值都是0,但是标准差不同。显然y2的方差要比y1大。但是对于整个数组本身,其实2与1相对于平均值得变异程度都是一样的(y2整个数组的波动就比较大)。除以标准差之后,2与1的相对于平均值的距离将会相同。
如图:
显然,经过标准化之后,两条线已经变成了一条线(中间绿色线)。
如果没有除以标准差,其对于因变量的贡献率很可能要受到波动的影响而引起偏差。
也就是说,标准化就是将数组的平均值归零,并在方差为1的基础上,显示其相对于数据内部的波动的大小。
最后附上y1=[0,2,4,5,7,8,9,2,5,12];y2=[1,3,5,14,9,10,8,0,-1,9];的图