全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
1081 0
2014-06-21
今天学习的是用在matlab内置的方程进行线性回归。内容比较简单,主要是书上的内容很简单。这本书的重点放在了时间序列的分析中,这会在之后的学习笔记中涉及。

      首先介绍一下一元多项式回归。Matlab内置的方程为:

      polyfit(x,y,n)        %自变量为x,因变量为y,多项式的阶数为n,拟合的方法是最小二乘

      polyval(p,x)         %假设多项式的系数向量已知,为p。这个方程返回的是在x点的多项式的值。

      例子:

      >>t=[0  0.3 0.8  1.1  1.6  2.3];         %定义自变量

      >>y=[0.6  0.67 1.01  1.35  1.47 1.25];       %定义因变量

      >>plot(t,y,’o’)                                %图示数据

      >>p=polyfit(t,y,2)                             %拟合一个二阶多项式回归

      可以图形化拟合的结果,就是将拟合的方程和数据一起呈现在图上。

      >>t2=0:0.1:2.8;             %给定拟合函数的拟合范围

      >>y2=polyval(p,t2);          %计算拟合的多项式的值

      >>figure                    %重新生成一个图形对话框,不会覆盖原来的图形。

      >>plot(t,y,’o’,t2,y2)            %将拟合的方程和数据一起画图,可以直观的看一下所估计的方程的拟合度。

      >>y2=polyval(p,t);           %原始数据的拟合值。

      >>res=y-y2;                %计算残差

      >>figure,plot(t,res,’+’)        %将残差表示在图上

      残差的图形显示存在某种趋势,说明二阶多项式的拟合并不合适。事实上,5阶的多项式拟合更好一些,但是在经济分析中,用5阶的多项式是否有意义还是需要考虑的。

      多项式拟合也可以算是1元回归,因为只有一个自变量。当自变量的个数大于等于2时,就要用到多元回归。回归的方法是最小二乘。

      假设有两个自变量x1和x2,因变量y:

      >>x1=[.2  .5 .6  .8  1.0 1.1]’;

      >>x2=[.1  .3 .4  .9  1.1 1.4]’;

      >>y=[.17  .26 .28  .23  .27 .24]’;

      构建一个数据矩阵:

      >>X=[ones(size(x1))  x1 x2];     %包含截距项

      >>a=X\y;                      %这一步可以直接得出参数的最小二乘估计。

      这样计算出来的结果与用a=(X’X)-1X’y的结果是相同的。这是因为 “\ ” 是matlab中的一个内置运算子。对于方程A*x=B,Matlab中求解的命令语句为:

      >>x=A\B

     其中矩阵A和B的行数必须相等。如果矩阵A是一个的行数和列数不相等,则A\B是按照最小二乘方法来估计x的。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群