我们以一简单数据组来说明什么是线性回归.假设有一组数据型态为 y=y(x),其中
x={0,1,2,3,4,5},y={0,20,60,68,77,110}
如果我们要以一个最简单的方程式来近似这组数据,则非一阶的线性方程式莫属.先将这组数据绘图如下
图中的斜线是我们随意假设一阶线性方程式 y=20x,用以代表这些数据的一个方程式.以下将上述绘图的 MATLAB 指令列出,并计算这个线性方程式的 y 值与原数据 y 值间误差平方的总合.
>> x=[0 1 2 3 4 5];
>> y=[0 20 60 68 77 110];
>> y1=20*x; % 一阶线性方程式的 y1 值
>> sum_sq = sum(y-y1).^2); % 误差平方总合为 573
>> axis([-1,6,-20,120])
>> plot(x,y1,x,y,'o'),title('Linear estimate'),grid
如此任意的假设一个线性方程式并无根据,如果换成其它人来设定就可能采用不同的线性方程式;所以我们 须要有比较精确方式决定理想的线性方程式.我们可以要求误差平方的总合为最小,做为决定理想的线性方 程式的准则,这样的方法就称为最小平方误差(least squares error)或是线性回归.MATLAB的polyfit函数提供了 从一阶到高阶多项式的回归法,其语法为polyfit(x,y,n),其中x,y为输入数据组n为多项式的阶数,n=1就是一阶 的线性回归法.polyfit函数所建立的多项式可以写成
从polyfit函数得到的输出值就是上述的各项系数,以一阶线性回归为例n=1,所以只有 二个输出值.如果指令为coef=polyfit(x,y,n),则coef(1)= ,coef(2)=,...,coef(n+1)= .注意上式对n 阶的多 项式会有 n+1 项的系数.我们来看以下的线性回归的示范:
>> x=[0 1 2 3 4 5];
>> y=[0 20 60 68 77 110];
>> coef=polyfit(x,y,1); % coef 代表线性回归的二个输出值
>> a0=coef(1); a1=coef(2);
>> ybest=a1*x+a0; % 由线性回归产生的一阶方程式
>> sum_sq=sum(y-ybest).^2); % 误差平方总合为 356.82
>> axis([-1,6,-20,120])
>> plot(x,ybest,x,y,'o'),title('Linear regression estimate'),grid
猜你喜欢
- 1两个圆的周长之和是94.2厘米,已知大圆半径是小圆半径的比是4:1.这两个圆的面积各是多少平方厘米
- 2f(x)=xsin1/x x不等于0 求f(0)的导数
- 3已知a的m次方等于2,a的n次方等于3,求a的2m加3m的值?
- 4函数y=cos(x+∏/2)+cosx的值域是
- 5求比值 1,40分米6米 2,9分之5:7分之3 3,38分之8:21分之10 4,3分之2:3分之1
- 6一个水池,甲乙两个水管同时打开,5小时可以灌满全池,如果甲管打开8小时后关闭,然后打开乙管,在工作3小时也可以灌满全池,如果甲管先工作2小时,然后关闭,乙管在工作几小时,能灌满全池
- 7当多项式-5x2-(2m-1)x2+(2-3n)x-1不含二次项和一次项时,求m、n的值.
- 8一件服装进价200元,按标价的8折销售,仍可获利10%,该服装的标价是_元.
- 9已知三角形ABC的三个顶点A(1,2)B(3,4),C(-2,4),求直线AB所在方程及AB 的中垂线所
- 10关于对大学的感受的英语作文