MATLAB中多元线性回归的例子

合集下载

多元回归分析matlab

多元回归分析matlab

回归分析MATLAB 工具箱一、多元线性回归多元线性回归:p p x x y βββ+++=...110 1、确定回归系数的点估计值: 命令为:b=regress(Y , X ) ①b 表示⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=p b βββˆ...ˆˆ10②Y 表示⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=n Y Y Y Y (2)1③X 表示⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=np n n p p x x x x x x x x x X ...1............ (1) (12)12222111211 2、求回归系数的点估计和区间估计、并检验回归模型:命令为:[b, bint,r,rint,stats]=regress(Y ,X,alpha) ①bint 表示回归系数的区间估计. ②r 表示残差.③rint 表示置信区间.④stats 表示用于检验回归模型的统计量,有三个数值:相关系数r 2、F 值、与F 对应的概率p.说明:相关系数2r 越接近1,说明回归方程越显著;)1,(1-->-k n k F F α时拒绝0H ,F 越大,说明回归方程越显著;与F 对应的概率p α<时拒绝H 0,回归模型成立. ⑤alpha 表示显著性水平(缺省时为0.05) 3、画出残差及其置信区间. 命令为:rcoplot(r,rint) 例1.如下程序. 解:(1)输入数据.x=[143 145 146 147 149 150 153 154 155 156 157 158 159 160 162 164]'; X=[ones(16,1) x];Y=[88 85 88 91 92 93 93 95 96 98 97 96 98 99 100 102]'; (2)回归分析及检验.[b,bint,r,rint,stats]=regress(Y ,X) b,bint,stats得结果:b = bint =-16.0730 -33.7071 1.5612 0.7194 0.6047 0.8340 stats =0.9282 180.9531 0.0000即7194.0ˆ,073.16ˆ10=-=ββ;0ˆβ的置信区间为[-33.7017,1.5612], 1ˆβ的置信区间为[0.6047,0.834]; r 2=0.9282, F=180.9531, p=0.0000,我们知道p<0.05就符合条件, 可知回归模型 y=-16.073+0.7194x 成立. (3)残差分析,作残差图. rcoplot(r,rint)从残差图可以看出,除第二个数据外,其余数据的残差离零点均较近,且残差的置信区间均包含零点,这说明回归模型 y=-16.073+0.7194x 能较好的符合原始数据,而第二个数据可视为异常点.(4)预测及作图.z=b(1)+b(2)*x plot(x,Y,'k+',x,z,'r')二、多项式回归 (一)一元多项式回归.1、一元多项式回归:1121...+-++++=m m m m a x a x a x a y(1)确定多项式系数的命令:[p,S]=polyfit(x,y,m)说明:x=(x 1,x 2,…,x n ),y=(y 1,y 2,…,y n );p=(a 1,a 2,…,a m+1)是多项式y=a 1x m +a 2x m-1+…+a m x+a m+1的系数;S 是一个矩阵,用来估计预测误差. (2)一元多项式回归命令:polytool(x,y,m) 2、预测和预测误差估计.(1)Y=polyval(p,x)求polyfit 所得的回归多项式在x 处的预测值Y ;(2)[Y,DELTA]=polyconf(p,x,S,alpha)求polyfit 所得的回归多项式在x 处的预测值Y 及预测值的显著性为1-alpha 的置信区间Y±DELTA ;alpha 缺省时为0.5.例 1. 观测物体降落的距离s 与时间t 的关系,得到数据如下表,求s. (关于t 的回归方程2解法一:直接作二次多项式回归. t=1/30:1/30:14/30;s=[11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90 85.44 99.08 113.77 129.54 146.48]; [p,S]=polyfit(t,s,2) 得回归模型为:1329.98896.652946.489ˆ2++=t t s解法二:化为多元线性回归. t=1/30:1/30:14/30;s=[11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90 85.44 99.08 113.77 129.54 146.48]; T=[ones(14,1) t' (t.^2)'];[b,bint,r,rint,stats]=regress(s',T); b,stats得回归模型为:22946.4898896.651329.9ˆt t s++= 预测及作图: Y=polyconf(p,t,S) plot(t,s,'k+',t,Y,'r')(二)多元二项式回归多元二项式回归命令:rstool(x,y,’model’, alpha )说明:x 表示n ⨯m 矩阵;Y 表示n 维列向量;alpha :显著性水平(缺省时为0.05);model 表示由下列4个模型中选择1个(用字符串输入,缺省时为线性模型):linear(线性):m m x x y βββ+++= 110purequadratic(纯二次):∑=++++=nj j jj m m x x x y 12110ββββinteraction(交叉):∑≤≠≤++++=mk j k j jkm m x x x x y 1110ββββquadratic(完全二次):∑≤≤++++=mk j k j jkm m x x x x y ,1110ββββ例1. 设某商品的需求量与消费者的平均收入、商品价格的统计数据如下,建立回归模型,预测平均收入为1000、价格为6时的商品需求量. 需求量 100 7580 70 50 65 90100 110 60 收入 1000 600 1200 500 300 400 13001100 1300 300解法一:选择纯二次模型,即2222211122110x x x x y βββββ++++=.直接用多元二项式回归:x1=[1000 600 1200 500 300 400 1300 1100 1300 300]; x2=[5 7 6 6 8 7 5 4 3 9];y=[100 75 80 70 50 65 90 100 110 60]'; x=[x1' x2'];rstool(x,y,'purequadratic')在左边图形下方的方框中输入1000,右边图形下方的方框中输入6,则画面左边的“Predicted Y”下方的数据变为88.47981,即预测出平均收入为1000、价格为6时的商品需求量为88.4791. 在画面左下方的下拉式菜单中选”all”, 则beta 、rmse 和residuals 都传送到Matlab 工作区中. 在Matlab 工作区中输入命令:beta, rmse 得结果:beta =110.5313 0.1464 -26.5709 -0.0001 1.8475 rmse =4.5362故回归模型为:2221218475.10001.05709.261464.05313.110x x x x y +--+=剩余标准差为4.5362, 说明此回归模型的显著性较好.解法二:将2222211122110x x x x y βββββ++++=化为多元线性回归:X=[ones(10,1) x1' x2' (x1.^2)' (x2.^2)'];[b,bint,r,rint,stats]=regress(y,X); b,stats结果为: b =110.5313 0.1464 -26.5709 -0.0001 1.8475 stats =0.9702 40.6656 0.0005三、非线性回归1、非线性回归:(1)确定回归系数的命令:[beta,r,J]=nlinfit(x,y,’model’, beta0)说明:beta 表示估计出的回归系数;r 表示残差;J 表示Jacobian 矩阵;x,y 表示输入数据x 、y 分别为矩阵和n 维列向量,对一元非线性回归,x 为n 维列向量;model 表示是事先用m-文件定义的非线性函数;beta0表示回归系数的初值. (2)非线性回归命令:nlintool(x,y,’model’, beta0,alpha) 2、预测和预测误差估计:[Y,DELTA]=nlpredci(’model’, x ,beta,r,J)表示nlinfit 或nlintool 所得的回归函数在x 处的预测值Y 及预测值的显著性为1-alpha 的置信区间Y±DELTA. 例1. 如下程序.解:(1)对将要拟合的非线性模型y=a x b e /,建立m-文件volum.m 如下:function yhat=volum(beta,x) yhat=beta(1)*exp(beta(2)./x); (2)输入数据: x=2:16;y=[6.42 8.20 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.80 10.60 10.90 10.76]; beta0=[8 2]'; (3)求回归系数:[beta,r ,J]=nlinfit(x',y','volum',beta0); beta (4)运行结果:beta =11.6036 -1.0641 即得回归模型为:xey 10641.16036.11-=(5)预测及作图:[YY ,delta]=nlpredci('volum',x',beta,r ,J); plot(x,y,'k+',x,YY ,'r')四、逐步回归1、逐步回归的命令:stepwise(x,y,inmodel,alpha)说明:x 表示自变量数据,m n ⨯阶矩阵;y 表示因变量数据,1⨯n 阶矩阵;inmodel 表示矩阵的列数的指标,给出初始模型中包括的子集(缺省时设定为全部自变量);alpha 表示显著性水平(缺省时为0.5).2、运行stepwise 命令时产生三个图形窗口:Stepwise Plot,Stepwise Table,Stepwise History. 在Stepwise Plot 窗口,显示出各项的回归系数及其置信区间.(1)Stepwise Table 窗口中列出了一个统计表,包括回归系数及其置信区间,以及模型的统计量剩余标准差(RMSE)、相关系数(R-square)、F 值、与F 对应的概率P.例1. 水泥凝固时放出的热量y 与水泥中4种化学成分x1、x2、x3、 x4有关,今测得一组数据如下,试用逐步回归法确定一个线性模型.序号x1 7 1 11 11 7 11 3 1 2 21 1 11 10 x2 26 29 56 31 52 55 71 31 54 47 40 66 68 x3 6 15 8 8 6 9 17 22 18 4 23 9 8 x4 60 52 20 47 33 22 6 44 22 26 34 12 12 y 78.5 74.3 104.3 87.6 95.9 109.2 102.7 72.5 93.1 115.9 83.8 113.3 109.4 解:(1)数据输入:x1=[7 1 11 11 7 11 3 1 2 21 1 11 10]';x2=[26 29 56 31 52 55 71 31 54 47 40 66 68]';x3=[6 15 8 8 6 9 17 22 18 4 23 9 8]';x4=[60 52 20 47 33 22 6 44 22 26 34 12 12]';y=[78.5 74.3 104.3 87.6 95.9 109.2 102.7 72.5 93.1 115.9 83.8 113.3 109.4]';x=[x1 x2 x3 x4];(2)逐步回归.①先在初始模型中取全部自变量:stepwise(x,y)得图Stepwise Plot 和表Stepwise Table.图Stepwise Plot中四条直线都是虚线,说明模型的显著性不好.从表Stepwise Table中看出变量x3和x4的显著性最差.②在图Stepwise Plot中点击直线3和直线4,移去变量x3和x4.移去变量x3和x4后模型具有显著性虽然剩余标准差(RMSE)没有太大的变化,但是统计量F的值明显增大,因此新的回归模型更好.(3)对变量y和x1、x2作线性回归.X=[ones(13,1) x1 x2];b=regress(y,X)得结果:b =52.57731.46830.6623故最终模型为:y=52.5773+1.4683x1+0.6623x2或这种方法4元二次线性回归clc;clear;y=[1.84099 9.67 23.00 38.12 1.848794 6.22 12.22 19.72 1.848794 5.19 10.09 15.31 ];X1=[60.36558 59.5376 58.89861 58.74706 60.59389 60.36558 59.2 58.2 60.36558 59.97068 59.41918 58. X2=[26.1636 26.35804 26.82438 26.91521 25.90346 25.9636 27.19256 27.42153 26.1636 26.07212 26.5872 X3=[0.991227 0.994944 0.981322 0.98374 1.011865 0.991227 1.074772 1.107678 0.991227 0.917904 1.06043 X4=[59.37436 58.54265 57.91729 57.69332 59.58203 59.37436 57.76722 57.42355 59.37436 59.05278 58.3587 format short gX11=[ones(1,length(y));X1;X2;X3;X4]'B1=regress(Y,X11)% 多元一次线性回归[m,n]=size(X11)X22=[];for i=2:nfor j=2:nif i<=jX22=([X22,X11(:,i).*X11(:,j)]);elsecontinueendendendX=[X11,X22];B2=regress(Y,X)% 多元二次线性回归[Y X*B2 Y-X*B2]plot(Y,X11*B1,'o',Y,X*B2,'*')hold on,line([min(y),max(y)],[min(y),max(y)]) axis([min(y) max(y) min(y) max(y)])legend('一次线性回归','二次线性回归')xlabel('实际值');ylabel('计算值')运行结果:Y =1.8419.672338.121.84886.2212.2219.721.84885.1910.0915.311 60.366 26.164 0.99123 59.3741 59.538 26.358 0.99494 58.5431 58.899 26.824 0.98132 57.9171 58.747 26.915 0.98374 57.6931 60.594 25.903 1.0119 59.5821 60.366 25.964 0.99123 59.3741 59.2 27.193 1.0748 57.7671 58.2 27.422 1.1077 57.4241 60.366 26.164 0.99123 59.3741 59.971 26.072 0.9179 59.0531 59.419 26.587 1.0604 58.3591 58.891 27.061 1.1239 57.767B1 =1488.9-4.3582-9.6345-61.514-15.359m =12n =5B2 =3120.4-7129.2-622.23-362.71-105.061388.1120.25199.25379.58170.48-796.41ans =1.841 1.8449 -0.0039029.67 9.67 1.0058e-00923 23 1.397e-00938.12 38.12 3.539e-0101.8488 1.8488 1.6394e-0096.22 6.227.2643e-01012.22 12.22 2.6077e-01019.72 19.72 -2.0489e-0101.8488 1.8449 0.0039025.19 5.19 1.4529e-00910.09 10.09 1.0803e-00915.31 15.31 4.0978e-010由图形可以看出,多元二次线性回归效果非常好,即,相当于Y=3120.4*X1 -7129.2 *X2 + 0*X3+ 0*X4 -622.23*X1*X1 -362.71*X1*X2 -105.06*X1*X3 + 1388.1*X1*X4 +120.25*X2*X2+ 199.25 *X2*X3+ 379.58*X2*X4 + 170.48*X3*X3+ 0*X3*X4 -796.4。

Matlab 多元线性回归

Matlab 多元线性回归
在 Matlab 图示所示:
/输出结果如图所示:/
因 此 我 们 可 得 bˆ0 = −16.0730, , bˆ1 = 0.7194.
bˆ0 的置信区间 ( − 33.7071, 1.5612) ,
bˆ1 的置信区间 (0.6047, 0.834). r2 = 0.9282, F = 180.9531, p = 0.0000.
多元线性回归模型的一般形式为:
Yi =β0 +β1X1i +β2X2i + +βk Xki +μi , i=1,2, ,n
(1)
其中 k 为解释变量的数目, β j ( j = 1,2, ,k) 称为回归系数(regression coefficient)。上
式也被称为总体回归函数的随机表达式。它的非随机表达式为:
Matlab 多元线性回归
1、 多元线性回归
在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。事实上,一种现象 常常是与多个因素相联系的,由多个自变量的最优组合共同来预测或估计因变量,比只用一 个自变量进行预测或估计更有效,更符合实际。
在实际经济问题中,一个变量往往受到多个变量的影响。例如,家庭消费支出,除了受 家庭可支配收入的影响外,还受诸如家庭所有的财富、物价水平、金融机构存款利息等多种 因素的影响,表现在线性回归模型中的解释变量有多个。这样的模型被称为多元线性回归模 型。(multivariable linear regression model )
在 Matlab 图示所示:
/输出结果如图所示:/
bˆ0 = 62.4054, bˆ0 的置信区间 ( − 99.1786, 223.9893) , bˆ1 = 1.5511, bˆ1 的置信区间 (−0.1663, 3.2685) , 因此我们可得 bˆ2 = 0.5102, , bˆ2 的置信区间 (−1.1589, 2.1792) , bˆ3 = 0.1019, bˆ3 的置信区间 (−1.6385, 1.8423) , bˆ4 = −1441. bˆ4 的置信区间 (−1.7791, 1.4910). r2 = 0.9824, F = 111.4792, p = 0.0000. p < 0.05,回归模型 y = −62.4054 +1.5511x1 + 0.5102x2 +0.1019x3 -0.1441x4成立.

Matlab_多元的线性回归

Matlab_多元的线性回归

1、 多元线性回归Matlab 多元线性回归在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。

事实上,一种现象常常是与多个因素相联系的,由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。

在实际经济问题中,一个变量往往受到多个变量的影响。

例如,家庭消费支出,除了受 家庭可支配收入的影响外,还受诸如家庭所有的财富、物价水平、金融机构存款利息等多种 因素的影响,表现在线性回归模型中的解释变量有多个。

这样的模型被称为多元线性回归模型。

(multivariable linear regression model)多元线性回归模型的一般形式为:Y i =0+1 X 1i +2X 2i + …+k X ki +i ,i=1,2,…n(1)其中 k 为解释变量的数目, βj j( j = 1,2,…k )称为回归系数(regression coefficient)。

上式也被称为总体回归函数的随机表达式。

它的非随机表达式为:Y i =0+1 X 1i +2X 2i + …+k X ki , i=1,2, …n kj j也被称为偏回归系数(partial regression coefficient)。

,2、 多元线性回归计算模型Y=0+1 X 1+2X 2+ …+k X k +,~N(0,2) (3)(2)多元性回归模型的参数估计,同一元线性回归方程一样,也是在要求误差平方和(Σe) 为最小的前提下,用最小二乘法或最大似然估计法求解参数。

设( x 11,x 12,…,x 1p ,y 1),…,(x n1,x n2,…,x np ,y n ) 是一个样本,用最大似然估计法估计参数:取,…,,当b 0=,b 1=,…,b p=时,Q=达到最小。

(4)化简可得:ββββμ βββββββββεεδ,ˆ0b 1ˆb p b ˆ0ˆb1ˆb p b ˆ21101)...(ip p i ni i x b x b b y ----∑=⎪⎪⎩⎪⎪⎨⎧-----=∂∂=-----=∂∂∑∑===ni ij ip p i i j n i ip p i i x x b x b b y b Q x b x b b y b Q 1011011100)(20)(2 ⎪⎪⎩⎪⎪⎨⎧-----=∂∂=-----=∂∂∑∑===n i ij ip p i i jn i ip p i i x x b x b b y b Q x b x b b y b Q1011011100)(20)(2引入矩阵: y方程组(5)可以化简得:X X X 可得最大似然估计值:BX ’Y⎪⎪⎪⎪⎪⎭⎪⎪⎪⎪⎪⎬⎫=++++=++++=+++∑∑∑∑∑∑∑∑∑∑∑∑∑∑============n i n i n i n i ni i ip ip p i ip i ip ip n i n i n i i i i ip i p i i i i ni ni ni i ip p i i y x x b x x b x x b x b y x x x b x x b x b x b y x b x b x b n b 111112221101111112122111011122110,,,⎪⎪⎪⎪⎪⎭⎫⎝⎛np n n p p x x xx x x x x x 212222111211111X X X b b b B p ')'(ˆˆˆˆ110-=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=(8)的估计是:公式(8)为P 元经验线性回归方程。

(完整版)Matlab线性回归(拟合)

(完整版)Matlab线性回归(拟合)

Matlab 线性回归(拟合)对于多元线性回归模型:e x x y p p ++++=βββΛ110设变量12,,,p x x x y L 的n 组观测值为12(,,,)1,2,,i i ip i x x x y i n =L L .记 ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=np n n p p x x x x x x x x x x ΛΛΛΛΛΛΛΛ212222*********,⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=n y y y y M 21,则⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=p ββββM 10 的估计值为 y x x x b ')'(ˆ1-==β(11.2) 在Matlab 中,用regress 函数进行多元线性回归分析,应用方法如下:语法:b = regress(y, x)[b, bint, r, rint, stats] = regress(y, x)[b, bint, r, rint, stats] = regress(y, x, alpha)b = regress(y, x),得到的1+p 维列向量b 即为(11.2)式给出的回归系数β的估计值.[b, bint, r, rint, stats]=regress(y, x) 给出回归系数β的估计值b ,β的95%置信区间((1)2p +⨯向量)bint ,残差r 以及每个残差的95%置信区间(2⨯n 向量)rint ;向量stats 给出回归的R 2统计量和F 以及临界概率p 的值.如果i β的置信区间(bint 的第1i +行)不包含0,则在显著水平为α时拒绝0i β=的假设,认为变量i x 是显著的.[b, bint, r, rint, stats]=regress(y, x, alpha) 给出了bint 和rint 的100(1-alpha)%的置信区间.三次样条插值函数的MATLAB 程序matlab 的splinex = 0:10; y = sin(x); %插值点xx = 0:.25:10; %绘图点yy = spline(x,y,xx);plot(x,y,'o',xx,yy)非线性拟合非线性拟合可以用以下命令(同样适用于线形回归分析):1.beta = nlinfit(X,y,fun,beta0)X给定的自变量数据,Y给定的因变量数据,fun要拟合的函数模型(句柄函数或者内联函数形式),beta0函数模型中系数估计初值,beta返回拟合后的系数2.x = lsqcurvefit(fun,x0,xdata,ydata)fun要拟合的目标函数,x0目标函数中的系数估计初值,xdata自变量数据,ydata 函数值数据X拟合返回的系数(拟合结果)nlinfit格式:[beta,r,J]=nlinfit(x,y,’model’, beta0)Beta 估计出的回归系数r 残差J Jacobian矩阵x,y 输入数据x、y分别为n*m矩阵和n维列向量,对一元非线性回归,x为n维列向量。

matlab regress用法

matlab regress用法

matlab regress用法
在MATLAB中,regress函数用于执行多元线性回归分析。

它可以通过拟合线性模型来预测和分析因变量与一个或多个自变量之间的关系。

regress函数的语法如下:
scssCopy code
b = regress(y, X)
参数说明:
•y:因变量的数据向量或矩阵。

•X:自变量的数据矩阵。

每一列代表一个自变量。

返回值:
•b:回归系数的估计值。

示例使用:
假设我们有因变量y和两个自变量x1和x2的数据。

可以按照以下方式使用regress函数:
matlabCopy code
y = [1; 2; 3; 4; 5]; % 因变量数据
x1 = [0.5; 1; 1.5; 2; 2.5]; % 自变量1数据
x2 = [1; 2; 3; 4; 5]; % 自变量2数据
X = [ones(size(y)), x1, x2]; % 构建自变量矩阵,包括常数项
b = regress(y, X); % 执行线性回归分析
% 显示回归系数
disp(’回归系数:’);
disp(b);
上述示例中,我们构建了自变量矩阵X,包括常数项和两个自变量。

然后使用regress函数执行回归分析,并将结果存储在变量b中。

最后,我们显示回归系数。

注意:为了使用regress函数,确保MATLAB Statistics and Machine Learning Toolbox已被正确安装和许可。

希望这个示例能帮助您理解regress函数的用法。

如有任何进一步的问题,请随时提问。

MATLAB回归分析

MATLAB回归分析

MATLAB回归分析回归分析是统计学中常用的一种方法,用于建立一个依赖于自变量(独立变量)的因变量(依赖变量)的关系模型。

在MATLAB环境下,回归分析可以实现简单线性回归、多元线性回归以及非线性回归等。

简单线性回归是一种最简单的回归分析方法,它假设自变量和因变量之间存在线性关系。

在MATLAB中,可以通过`polyfit`函数进行简单线性回归分析。

该函数可以拟合一元数据点集和一维多项式,返回回归系数和截距。

例如:```matlabx=[1,2,3,4,5];y=[2,3,4,5,6];p = polyfit(x, y, 1);slope = p(1);intercept = p(2);```上述代码中,`x`是自变量的数据点,`y`是因变量的数据点。

函数`polyfit`的第三个参数指定了回归的阶数,这里是1,即一次线性回归。

返回的`p(1)`和`p(2)`分别是回归系数和截距。

返回的`p`可以通过`polyval`函数进行预测。

例如:```matlabx_new = 6;y_pred = polyval(p, x_new);```多元线性回归是在有多个自变量的情况下进行的回归分析。

在MATLAB中,可以使用`fitlm`函数进行多元线性回归分析。

例如:```matlabx1=[1,2,3,4,5];x2=[2,4,6,8,10];y=[2,5,7,8,10];X=[x1',x2'];model = fitlm(X, y);coefficients = model.Coefficients.Estimate;```上述代码中,`x1`和`x2`是两个自变量的数据点,`y`是因变量的数据点。

通过将两个自变量放在`X`矩阵中,可以利用`fitlm`函数进行多元线性回归分析。

返回值`model`是回归模型对象,可以通过`model.Coefficients.Estimate`获得回归系数。

多元回归分析报告matlab

多元回归分析报告matlab

回归分析MATLAB 工具箱一、多元线性回归多元线性回归:p p x x y βββ+++=...110 1、确定回归系数的点估计值: 命令为:b=regress(Y, X ) ①b 表示⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=p b βββˆ...ˆˆ10②Y 表示⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=n Y Y Y Y (2)1③X 表示⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=np n n p p x x x x x x x x x X (1)............ (1) (12)12222111211 2、求回归系数的点估计和区间估计、并检验回归模型: 命令为:[b, bint,r,rint,stats]=regress(Y,X,alpha) ①bint 表示回归系数的区间估计. ②r 表示残差. ③rint 表示置信区间.④stats 表示用于检验回归模型的统计量,有三个数值:相关系数r 2、F 值、与F 对应的概率p.说明:相关系数2r 越接近1,说明回归方程越显著;)1,(1-->-k n k F F α时拒绝0H ,F 越大,说明回归方程越显著;与F 对应的概率p α<时拒绝H 0,回归模型成立. ⑤alpha 表示显著性水平(缺省时为0.05)3、画出残差及其置信区间. 命令为:rcoplot(r,rint) 例1.如下程序. 解:(1)输入数据.x=[143 145 146 147 149 150 153 154 155 156 157 158 159 160 162 164]'; X=[ones(16,1) x];Y=[88 85 88 91 92 93 93 95 96 98 97 96 98 99 100 102]'; (2)回归分析及检验.[b,bint,r,rint,stats]=regress(Y,X) b,bint,stats得结果:b = bint =-16.0730 -33.7071 1.5612 0.7194 0.6047 0.8340 stats =0.9282 .9531 0.0000即7194.0ˆ,073.16ˆ10=-=ββ;0ˆβ的置信区间为[-33.7017,1.5612], 1ˆβ的置信区间为[0.6047,0.834]; r 2=0.9282, F=180.9531, p=0.0000,我们知道p<0.05就符合条件, 可知回归模型 y=-16.+0.7194x 成立. (3)残差分析,作残差图. rcoplot(r,rint)从残差图可以看出,除第二个数据外,其余数据的残差离零点均较近,且残差的置信区间均包含零点,这说明回归模型 y=-16.+0.7194x 能较好的符合原始数据,而第二个数据可视为异常点. (4)预测及作图.z=b(1)+b(2)*x plot(x,Y,'k+',x,z,'r')二、多项式回归 (一)一元多项式回归.1、一元多项式回归:1121...+-++++=m m m m a x a x a x a y (1)确定多项式系数的命令:[p,S]=polyfit(x,y,m)说明:x=(x 1,x 2,…,x n ),y=(y 1,y 2,…,y n );p=(a 1,a 2,…,a m+1)是多项式y=a 1x m +a 2x m-1+…+a m x+a m+1的系数;S 是一个矩阵,用来估计预测误差. (2)一元多项式回归命令:polytool(x,y,m) 2、预测和预测误差估计.(1)Y=polyval(p,x)求polyfit 所得的回归多项式在x 处的预测值Y ;(2)[Y,DELTA]=polyconf(p,x,S,alpha)求polyfit 所得的回归多项式在x 处的预测值Y 及预测值的显著性为1-alpha 的置信区间Y ±DELTA ;alpha 缺省时为0.5.例1. 观测物体降落的距离s 与时间t 的关系,得到数据如下表,求s. (关于t 的回归方程2ˆct bt a s++=)解法一:直接作二次多项式回归. t=1/30:1/30:14/30;s=[11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90 85.44 99.08 113.77 129.54 146.48]; [p,S]=polyfit(t,s,2) 得回归模型为:1329.98896.652946.489ˆ2++=t t s解法二:化为多元线性回归. t=1/30:1/30:14/30;s=[11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90 85.44 99.08 113.77 129.54 146.48];T=[ones(14,1) t' (t.^2)']; [b,bint,r,rint,stats]=regress(s',T);b,stats 得回归模型为:22946.4898896.651329.9ˆt t s++= 预测及作图: Y=polyconf(p,t,S) plot(t,s,'k+',t,Y,'r')(二)多元二项式回归多元二项式回归命令:rstool(x,y,’model ’, alpha)说明:x 表示n ⨯m 矩阵;Y 表示n 维列向量;alpha :显著性水平(缺省时为0.05);model 表示由下列4个模型中选择1个(用字符串输入,缺省时为线性模型):linear(线性):m m x x y βββ+++=Λ110purequadratic(纯二次):∑=++++=nj j jjm m x x x y 12110ββββΛinteraction(交叉):∑≤≠≤++++=mk j k j jkm m x x x x y 1110ββββΛquadratic(完全二次):∑≤≤++++=mk j k j jkm m x x x x y ,1110ββββΛ例1. 设某商品的需求量与消费者的平均收入、商品价格的统计数据如下,建立回归模型,预测平均收入为1000、价格为6时的商品需求量. 需求量 100 75 80 70 50 65 90 100 110 60 收入10006001200500300400130011001300300价格5766875439解法一:选择纯二次模型,即2222211122110x x x x y βββββ++++=.直接用多元二项式回归:x1=[1000 600 1200 500 300 400 1300 1100 1300 300]; x2=[5 7 6 6 8 7 5 4 3 9];y=[100 75 80 70 50 65 90 100 110 60]'; x=[x1' x2'];rstool(x,y,'purequadratic')在左边图形下方的方框中输入1000,右边图形下方的方框中输入6,则画面左边的“Predicted Y ”下方的数据变为88.47981,即预测出平均收入为1000、价格为6时的商品需求量为88.4791.在画面左下方的下拉式菜单中选”all ”, 则beta 、rmse 和residuals 都传送到Matlab 工作区中.在Matlab 工作区中输入命令:beta, rmse 得结果:beta = 110.5313 0.1464 -26.5709 -0.0001 1.8475 rmse = 4.5362故回归模型为:2221218475.10001.05709.261464.05313.110x x x x y +--+=剩余标准差为4.5362, 说明此回归模型的显著性较好.解法二:将2222211122110x x x x y βββββ++++=化为多元线性回归:X=[ones(10,1) x1' x2' (x1.^2)' (x2.^2)']; [b,bint,r,rint,stats]=regress(y,X); b,stats 结果为: b =110.5313 0.1464 -26.5709 -0.0001 1.8475 stats =0.9702 40.6656 0.0005三、非线性回归 1、非线性回归:(1)确定回归系数的命令:[beta,r,J]=nlinfit(x,y,’model ’, beta0)说明:beta 表示估计出的回归系数;r 表示残差;J 表示Jacobian 矩阵;x,y 表示输入数据x 、y 分别为矩阵和n 维列向量,对一元非线性回归,x 为n 维列向量;model 表示是事先用m-文件定义的非线性函数;beta0表示回归系数的初值. (2)非线性回归命令:nlintool(x,y,’model ’, beta0,alpha) 2、预测和预测误差估计:[Y,DELTA]=nlpredci(’model ’, x,beta,r,J)表示nlinfit 或nlintool 所得的回归函数在x 处的预测值Y 及预测值的显著性为1-alpha 的置信区间Y ±DELTA. 例1. 如下程序.解:(1)对将要拟合的非线性模型y=a x b e /,建立m-文件volum.m 如下: function yhat=volum(beta,x) yhat=beta(1)*exp(beta(2)./x); (2)输入数据: x=2:16;y=[6.42 8.20 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.80 10.60 10.90 10.76];beta0=[8 2]'; (3)求回归系数:[beta,r ,J]=nlinfit(x',y','volum',beta0); beta (4)运行结果:beta =11.6036 -1.0641 即得回归模型为:xey 10641.16036.11-=(5)预测及作图:[YY,delta]=nlpredci('volum',x',beta,r ,J);plot(x,y,'k+',x,YY,'r')四、逐步回归1、逐步回归的命令:stepwise(x,y,inmodel,alpha)n⨯阶矩阵;y表示因变量数据,1⨯n阶矩阵;inmodel表示矩说明:x表示自变量数据,m阵的列数的指标,给出初始模型中包括的子集(缺省时设定为全部自变量);alpha表示显著性水平(缺省时为0.5).2、运行stepwise命令时产生三个图形窗口:Stepwise Plot,Stepwise Table,Stepwise History.在Stepwise Plot窗口,显示出各项的回归系数及其置信区间.(1)Stepwise Table窗口中列出了一个统计表,包括回归系数及其置信区间,以及模型的统计量剩余标准差(RMSE)、相关系数(R-square)、F值、与F对应的概率P.例1. 水泥凝固时放出的热量y与水泥中4种化学成分x1、x2、x3、x4有关,今测得一组数据如下,试用逐步回归法确定一个线性模型.解:(1)数据输入:x1=[7 1 11 11 7 11 3 1 2 21 1 11 10]';x2=[26 29 56 31 52 55 71 31 54 47 40 66 68]';x3=[6 15 8 8 6 9 17 22 18 4 23 9 8]';x4=[60 52 20 47 33 22 6 44 22 26 34 12 12]';y=[78.5 74.3 104.3 87.6 95.9 109.2 102.7 72.5 93.1 115.9 83.8 113.3 109.4]'; x=[x1 x2 x3 x4];(2)逐步回归.①先在初始模型中取全部自变量:stepwise(x,y)得图Stepwise Plot 和表Stepwise Table.图Stepwise Plot中四条直线都是虚线,说明模型的显著性不好.从表Stepwise Table中看出变量x3和x4的显著性最差.②在图Stepwise Plot中点击直线3和直线4,移去变量x3和x4.移去变量x3和x4后模型具有显著性虽然剩余标准差(RMSE)没有太大的变化,但是统计量F的值明显增大,因此新的回归模型更好.(3)对变量y和x1、x2作线性回归.X=[ones(13,1) x1 x2];b=regress(y,X)得结果:b =52.57731.46830.6623故最终模型为:y=52.5773+1.4683x1+0.6623x2或这种方法4元二次线性回归clc;clear;y=[1.84099 9.67 23.00 38.12 1.848794 6.22 12.22 19.72 1.848794 5.19 10.09 15.31 ];X1=[60.36558 59.5376 58.89861 58.74706 60.59389 60.36558 59.2 58.2 60.36558 59.97068 59.41918 5 X2=[26.1636 26.35804 26.82438 26.91521 25.90346 25.9636 27.19256 27.42153 26.1636 26.07212 26.27.06063];X3=[0.991227 0.994944 0.981322 0.98374 1.011865 0.991227 1.074772 1.107678 0.991227 0.917904 1 1.1239];X4=[59.37436 58.54265 57.91729 57.69332 59.58203 59.37436 57.76722 57.42355 59.37436 59.05278 57.76687];format short gY=y'X11=[ones(1,length(y));X1;X2;X3;X4]'B1=regress(Y,X11)% 多元一次线性回归[m,n]=size(X11)X22=[];for i=2:nfor j=2:nif i<=jX22=([X22,X11(:,i).*X11(:,j)]);elsecontinueendendendX=[X11,X22];B2=regress(Y,X)% 多元二次线性回归[Y X*B2 Y-X*B2]plot(Y,X11*B1,'o',Y,X*B2,'*')hold on,line([min(y),max(y)],[min(y),max(y)]) axis([min(y) max(y) min(y) max(y)]) legend('一次线性回归','二次线性回归') xlabel('实际值');ylabel('计算值')运行结果:Y =1.8419.672338.121.84886.2212.2219.721.84885.1910.0915.31X11 =1 60.366 26.164 0.99123 59.3741 59.538 26.358 0.99494 58.5431 58.899 26.824 0.98132 57.9171 58.747 26.915 0.98374 57.6931 60.594 25.903 1.0119 59.5821 60.366 25.964 0.99123 59.3741 59.2 27.193 1.0748 57.7671 58.2 27.422 1.1077 57.4241 60.366 26.164 0.99123 59.3741 59.971 26.072 0.9179 59.1 59.419 26.587 1.0604 58.3591 58.891 27.061 1.1239 57.767 B1 =1488.9-4.3582-9.6345-61.514-15.359m =12n =5B2 =3120.4-7129.2-622.23-362.71-105.061388.1120.25.25379.58170.48-796.41ans =1.841 1.8449 -0.0039029.67 9.67 1.0058e-00923 23 1.397e-00938.12 38.12 3.539e-1.8488 1.8488 1.6394e-0096.22 6.227.2643e-12.22 12.22 2.6077e-19.72 19.72 -2.0489e-1.8488 1.8449 0.0039025.19 5.19 1.4529e-00910.09 10.09 1.0803e-00915.31 15.31 4.0978e-由图形可以看出,多元二次线性回归效果非常好,即,相当于Y=3120.4*X1 -7129.2 *X2 + 0*X3 + 0*X4 -622.23*X1*X1 -362.71*X1*X2 -105.06*X1*X3 + 1388 120.25*X2*X2+ .25 *X2*X3+ 379.58*X2*X4 + 170.48*X3*X3+ 0*X3*X4 -796.41*X4*X4。

基于Matlab的数据多元回归分析的研究

基于Matlab的数据多元回归分析的研究

基于Matlab的数据多元回归分析的研究摘要多元线性回归是利用MATLAB软件研究一个变量与多个变量的定量关系,MATLAB(矩阵实验室,是MATrix LABoratory的缩写)是一套高性能的数值运算和可视化软件,它集矩阵运算、数值分析、信号处理和图形显示于一体,构成了一个界面友好、使用方便的用户环境,是实现数据分析与处理的有效工具,其中MATLAB统计工具箱更为人们提供了一个强有力的数据统计分析工具。

利用MATLAB统计工具箱来进行数据的多元回归分析使得分析的样本容量扩大,增加了统计推断的正确性,也促进了包含大量计算的多元统计分析的发展和运用。

本课题研究了在MATLAB软件平台上实现数据的多元统计分析,具体包括一元线性回归分析,非线性回归分析,多元线性回归分析,通过对基础数据分析函数polyfit(一元回归);regress(多元回归);及nlinfit(非线性回归)的学习。

根据已得的实验结果以及以往的经验来建立统计模型,并研究变量之间的相关关系,建立起变量之间关系的近似表达式,并由此对相应的变量进行预测和控制。

根据所收集的数据,通过本文的研究方法进行一一分析,掌握它们的相关关系,可以找出数据中我们最需要的信息,从而进一步对总体的特性进行进一步的判断,把握规律,并将研究结果广泛运用于各种实际应用的预测和判断之中。

关键词:polyfit,regress,置信区间,最小二乘估计目录绪论....................................................................................................... - 3 -1.1研究的背景............................................................................................ - 3 -1.2研究的主要内容................................. - 4 -1.3应解决的关键问题.............................................................................. - 4 -2 MATLAB数据分析.......................................................................... - 4 -2.1 MATLAB重点基础预备....................................................................... - 4 -2.1.1 MATLAB界面掌握 ............................................................................... - 4 -2.1.2矩阵及其运算 ....................................................................................... - 5 -2.2数据分析 ...................................... - 6 -2.2.1样本数据的基本统计量.................................................................. - 6 -3 一元回归分析 ............................................................................... - 7 -3.1一元回归模型 ....................................................................................... - 7 -3.1.1一元线性回归 ....................................................................................... - 7 -3.1.2一元多项式回归.................................................................................. - 8 -3.2一元非线性回归................................................................................... - 9 -3.2.1非线性曲线选择.................................................................................. - 9 -3.2.2非线性回归命令的调用格式 ....................................................... - 9 -3.3一元回归建模实例............................................................................ - 11 -4 多元线性回归模型..................................................................... - 13 -4.1多元线性回归初级分析................................................................... - 13 -4.1.1多元回归基本概念........................................................................... - 13 -4.1.2建立多元线性回归建模的基本步骤 ..................................... - 14 -4.2 MATLAB的回归分析命令 ................................................................ - 15 -4.2.1 多元回归建模命令 ......................................................................... - 15 -4.2.2 多元回归辅助图形命令............................................................... - 15 -4.3 一元回归建模实例........................................................................... - 16 -5 GUI界面的设计.......................................................................... - 23 -5.1 GUI界面的介绍................................................................................. - 23 -5.2 GUI的设计流程 .............................................................................. - 23 -5.2 实例的GUI设计............................................................................... - 25 -结论................................................................................................. - 28 -参考文献 ............................................................................................. - 28 -附录................................................................................................ - 29 -绪论1.1研究的背景MATLAB是一套集高性能的数值计算和可视化整理、计算、绘制图表等于一身的数学工具。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

RSS2 /((n c) / 2 k 1) RSS2 F ~ F ((n c) / 2 k 1, (n c) / 2 k 1) RSS1 /((n c) / 2 k 1) RSS1
其中,n为样本容量,k为自变量个数. 然后对残差进行自相关性的检验,通常我们利用DW检 验进行残差序列自相关性的检验。该检验的统计量为:
模型建立
血压y,年龄x1,体重指数x2,吸烟习惯x3
y与x1的散点图 线性回归模型
y与x2的散点图
y 0 1 x1 2 x2 3 x3
回归系数0, 1, 2, 3 由数据估计, 是随机误差
n=30;m=3; y=[144 215 138 145 162 142 170 124 158 154 162 150 140 110 128 130 135 114 116 124 136 142 120 120 160 158 144 130 125 175]; x1=[39 47 45 47 65 46 67 42 67 56 64 56 59 34 42 48 45 18 20 19 36 50 39 21 44 53 63 29 25 69]; x2=[24.2 31.1 22.6 24.0 25.9 25.1 29.5 19.7 27.2 19.3 28.0 25.8 27.3 20.1 21.7 22.2 27.4 18.8 22.6 21.5 25.0 26.2 23.5 20.3 27.1 28.6 28.3 22.0 25.3 27.4]; x3=[0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 1 0 0 0 ... 0 0 1 0 0 1 1 0 1 0 1];
0 1 2 3
回归系数估计值 回归系数置信区间 58.5101 [29.9064 87.1138] 0.4303 [0.1273 0.7332] 2.3449 [0.8509 3.8389]
ˆ 58.5101 0.4303 y x1 2.3449x2 10.3065 x3
此时可见第二与第十二个点是异常点,于是删除 上述两点,再次进行回归得到改进后的回归模型的系 数、系数置信区间与统计量
0 1 2 3
回归系数估计值 回归系数置信区间 45.3636 [3.5537 87.1736] 0.3604 [-0.0758 0.7965 ] 3.0906 [1.0530 5.1281]
剔除异常点 (第2点和第 10点)后
回归系数
10.3065 [3.3878 17.2253] R2= 0.8462 F= 44.0087 p<0.0001 s2 =53.6604
DW (et et 1 ) / et
2 t 2 t 1 n n 2
其中 e t 为残差序列,对于计算出的结果通过查 表决定是否存在自相关性。 若 du<DW<4-du,则不存在自相关性; 若 DW<dl,则存在一阶正相关; DW>4-dl,则存在一阶负相关; 若 dl<DW<du 或4-du<DW<4-dl ,则无法判断
X=[ones(n,1), x1',x2',x3']; [b,bint,r,rint,s]=regress(y',X); s2=sum(r.^2)/(n-m-1); b,bint,s,s2 rcoplot(r,rint)
模型 求解
xueya01.m
回归系数
11.8246 [-0.1482 23.7973] R2= 0.6855 F= 18.8906 p<0.0001 s2 =169.7917
2.线性回归
b=regress(y,X) [b,bint,r,rint,s]=regress(y,X,alpha) 输入: y~因变量(列向量), X~1与自变量组成的矩阵, Alpha~显著性水平(缺省时设定为0.05) ˆ , ˆ , 输出:b=( ),bint: b的置信区间,
0 1
r:残差(列向量),rint: r的置信区间
s: 3个统计量:决定系数R2,F值, F(1,n-2)分布大于 F值的概率p,p<时回归模型有效
rcoplot(r,rint)
ห้องสมุดไป่ตู้
残差及其置信区间作图
回归 模型
序 号 1 血 压 144
例3: 血压与年龄、体重指数、吸烟习惯
年 龄 39 体重 指数 24.2 吸烟 习惯 0 序 号 21 血 压 136 年 龄 36 体重 指数 25.0 吸烟 习惯 0
回归系数 回归系数估计值 58.5101 0.4303 2.3449 10.3065 回归系数置信区间 [29.9064 87.1138] [0.1273 0.7332] [0.8509 3.8389] [3.3878 17.2253]
0 1 2 3
R2= 0.8462 F= 44.0087 p<0.0001 s2 =53.6604
这时置信区间不包含零点,F统计量增大,可决系 数从0.6855增大到0.8462 ,我们得到回归模型为:
ˆ 58.5101 0.4303x1 2.3449x2 10.3065x3 y
通常,进行多元线性回归的步骤如下: (1)做自变量与因变量的散点图,根据散点图的形 状决定是否可以进行线性回归; (2)输入自变量与因变量; (3)利用命令: [b,bint,r,rint,s]=regress(y,X,alpha),rcoplot(r,rint) 得到回归模型的系数以及异常点的情况;
(4)对回归模型进行检验 首先进行残差的正态性检验:jbtest,ttest
其次进行残差的异方差检验: 戈德菲尔德一匡特 (Goldfeld—Quandt)检验 戈德菲尔德检验,简称为G—Q检验.为了检验异方差 性,将样本按解释变量排序后分成两部分,再利用样 本1和样本2分别建立回归模型,并求出各自的残差平 方和RSSl和RSS2。如果误差项的离散程度相同(即为 同方差的),则RSSl和RSS2的值应该大致相同;若两 者之间存在显著差异,则表明存在异方差. 检验过程 中为了“夸大”残差的差异性,一般先在样本中部去 掉C个数据(通常取c=n/4),再利用F统计量判断差 异的显著性:
下面我们对模型进行检验: (1)残差的正态检验: 由jbtest检验,h=0表明残差服从正态分布,进而由t检 验可知h=0,p=1,故残差服从均值为零的正态分布; (2)残差的异方差检验: 我们将28个数据从小到大排列,去掉中间的6个数据, 得到F统计量的观测值为:f =1.9092, 由F(7,7)=3.79,可知:f =1.9092<3.79,故不存在异方差. (3)残差的自相关性检验: 计算得到:dw = 1.4330,查表后得到:dl=0.97 , du=1.41, 由于 1.41=du<dw=1.433<4-du=2.59 ,残差不存在自相关性.
2
3 10
215
138 154
47
45 56
31.1
22.6 19.3
1
0 0
22
23 30
142
120 175
50
39 69
26.2
23.5 27.4
1
0 1
体重指数 = 体重(kg)/身高(m)的平方 吸烟习惯: 0表示不吸烟,1表示吸烟
建立血压与年龄、体重指数、吸烟习惯之间的回归模型
相关文档
最新文档