加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

假期数学建模学习(一)之预备知识一:消除量纲(标准化)的意义

(2016-08-06 15:39:59)

                     消除量纲最常用的方法是,减去期望除以标准差。但是其数学意义和现实意义是什么?为什么说这样能够消除量纲?
                     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];的图
http://s6/bmiddle/006wKf2Vzy73Q2lubrf65&690
 可以感受到,两条线在标准化之后,其总体变化趋势仍不变,两条线的相对位置也不变,但是变化的程度小了。

附:平均值与标准差的matlab代码

function [t,y]=SDE(x) % x is a matrix
[w,q]=size(x);
n=w*q;% the number of x
t=0; % the expectation of x
y=0;% the standardDeviation of x
for i=1:n
    t=t+x(i);
end
t=t/n;
y=sqrt(sum(sum((x-t).^2)));
end
   

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有