matlab多元线性回归与逐步回归实验1
利用Matlab进行线性回归分析

利用Matlab进行线性回归分析回归分析是处理两个及两个以上变量间线性依存关系的统计方法。
可以通过软件Matlab实现。
1.利用Matlab软件实现在Matlab中,可以直接调用命令实现回归分析,(1)[b,bint,r,rint,stats]=regress(y,x),其中b是回归方程中的参数估计值,bint 是b的置信区间,r和rint分别表示残差及残差对应的置信区间。
stats包含三个数字,分别是相关系数,F统计量及对应的概率p值。
(2)recplot(r,rint)作残差分析图。
(3)rstool(x,y)一种交互式方式的句柄命令。
以下通过具体的例子来说明。
例现有多个样本的因变量和自变量的数据,下面我们利用Matlab,通过回归分析建立两者之间的回归方程。
% 一元回归分析x=[1097 1284 1502 1394 1303 1555 1917 2051 2111 2286 2311 2003 2435 2625 2948 3, 55 3372];%自变量序列数据y=[698 872 988 807 738 1025 1316 1539 1561 1765 1762 1960 1902 2013 2446 2736 2825];%因变量序列数据X=[ones(size(x')),x'],pause[b,bint,r,rint,stats]=regress(y',X,0.05),pause%调用一元回归分析函数rcoplot(r,rint)%画出在置信度区间下误差分布。
% 多元回归分析% 输入各种自变量数据x1=[5.5 2.5 8 3 3 2.9 8 9 4 6.5 5.5 5 6 5 3.5 8 6 4 7.5 7]';x2=[31 55 67 50 38 71 30 56 42 73 60 44 50 39 55 7040 50 62 59]';x3=[10 8 12 7 8 12 12 5 8 5 11 12 6 10 10 6 11 11 9 9]';x4=[8 6 9 16 15 17 8 10 4 16 7 12 6 4 4 14 6 8 13 11]';%输入因变量数据y=[79.3 200.1 163.1 200.1 146.0 177.7 30.9 291.9 160 339.4 159.6 86.3 237.5 107.2 155 201.4 100.2 135.8 223.3 195]';X=[ones(size(x1)),x1,x2,x3,x4];[b,bint,r,rint,stats]=regress(y,X)%回归分析Q=r'*rsigma=Q/18rcoplot(r,rint);%逐步回归X1=[x1,x2,x3,x4];stepwise(X1,y,[1,2,3])%逐步回归% X2=[ones(size(x1)),x2,x3];% X3=[ones(size(x1)),x1,x2,x3];% X4=[ones(size(x1)),x2,x3,x4];% [b1,b1int,r1,r1int,stats1]=regress(y,X2)% [b2,b2int,r2,r2int,stats2]=regress(y,X3);% [b3,b3int,r3,r3int,stats3]=regress(y,X4);。
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多元线性回归与逐步回归实验1

《模糊数学》实验报告实验名称:多元线性回归与逐步回归实验目的1.熟练掌握现行回归模型的建模方法,掌握regress命令的使用方法。
2.掌握编程求总离差平方和TSS、回归平方和RSS、残差平方和ESS等相关统计量。
3. 掌握逐步回归的思想与方法,掌握stepwise命令的使用方法。
实验主要内容(具体题目、解答过程及程序)一、实验数据与实验内容:选取1989—2003年的全国的统计数据,考虑的自变量包括:工业总产值,)(1x农业总产值,建筑业总产值,社会商品零售总额,全民人口数,)(2x)(3x)(4x)(5x受灾面积,国家财政收入,单位均为亿元。
数据见表3.17。
)(6x)(y表1 1989至2003 年统计数据年份x1x2x3x4x5x6y19896484.004100.60794.008101.40112704.046991.002664.9019906858.004954.30859.408300.10114333.038474.002937.1019918087.105146.401015.109415.60115823.055472.003149.48199210284.505588.001415.0010993.70117171.051333.003483.37199314143.806605.102284.7012462.10118517.048829.004348.95199419359.609169.203012.6016264.70119850.055043.005218.10199524718.3011884.603819.6020620.00121121.045821.006242.20199629082.6013539.804530.5024774.10122389.046989.007407.99199732412.1013852.504810.6027298.90123626.053429.008651.14199833387.9014241.905231.4029152.50124761.050145.009875.95199935087.2014106.205470.6031134.70125786.049981.0011444.08200039047.3013873.605888.0034152.60126743.054688.0013395.23200142374.6014462.806375.4037595.20127627.052215.0016386.04200245975.2014931.507005.0042027.10128453.047119.0018903.64200353092.9014870.108181.3045842.00129227.054506.0021715.25(1)建立多元回归模型;(2)用逐步回归求国家财政收入与6个因素的回归关系.y二、实验程序:程序1clear,clcA=[6484.00 4100.60 794.00 8101.40 112704.0 46991.00 2664.90;6858.00 4954.30859.40 8300.10 114333.038474.00 2937.10;8087.105146.401015.109415.60115823.055472.003149.48;10284.505588.001415.0010993.70117171.051333.003483.37; 14143.806605.102284.7012462.10118517.048829.004348.95; 19359.609169.203012.6016264.70119850.055043.005218.10; 24718.3011884.603819.6020620.00121121.045821.006242.20; 29082.6013539.804530.5024774.10122389.046989.007407.99; 32412.1013852.504810.6027298.90123626.053429.008651.14; 33387.9014241.905231.4029152.50124761.050145.009875.95; 35087.2014106.205470.6031134.70125786.049981.0011444.08; 39047.3013873.605888.0034152.60126743.054688.0013395.23; 42374.6014462.806375.4037595.20127627.052215.0016386.04; 45975.2014931.507005.0042027.10128453.047119.0018903.64; 53092.9014870.108181.3045842.00129227.054506.0021715.25];%自变量数据[m,n]=size(A);subplot(3,2,1),plot(A(:,1),A(:,7),'+')xlabel('x1(工业总产值)')ylabel('y(国家财政收入)')subplot(3,2,2),plot(A(:,2),A(:,7),'*')xlabel('x2(农业总产值)')ylabel('y(国家财政收入)')subplot(3,2,3),plot(A(:,3),A(:,7),'o')xlabel('x3(建筑业总产值)')ylabel('y(国家财政收入)')subplot(3,2,4),plot(A(:,4),A(:,7),'+')xlabel('x4(社会商品零售总额)')ylabel('y(国家财政收入)')subplot(3,2,5),plot(A(:,5),A(:,7),'*')xlabel('x5(全民人口数)')ylabel('y(国家财政收入)')subplot(3,2,6),plot(A(:,6),A(:,7),'o')xlabel('x6(受灾面积)')ylabel('y(国家财政收入)')x=[ones(m,1),A(:,1),A(:,2),A(:,3),A(:,4),A(:,5),A(:,6)];%构造设计矩阵y=A(:,7);[n,p]=size(x);%矩阵x0的行数即样本容量[db,dbint,dr,drint,dstats]=regress(y,x)%调用多元回归分析命令TSS=y'*(eye(n)-1/n*ones(n,n))*y%计算TSSH=x*inv((x'*x))*x';%计算对称幂等矩阵ESS=y'*(eye(n)-H)*y%计算ESSRSS=y'*(H-1/n*ones(n,n))*y%计算RSSMRS=RSS/p%计算MRSMSE=ESS/(n-p-1)%计算MSE%F检验F0=(RSS/p)/(ESS/(n-p-1))%计算F0。
Matlab实现多元的回归实例

Matlab 实现多元回归实例(一)一般多元回归一般在生产实践和科学研究中,人们得到了参数(),,n x x x =⋅⋅⋅1和因变量y 的数据,需要求出关系式()y f x =,这时就可以用到回归分析的方法。
如果只考虑f 是线性函数的情形,当自变量只有一个时,即,(),,n x x x =⋅⋅⋅1中n =1时,称为一元线性回归,当自变量有多个时,即,(),,n x x x =⋅⋅⋅1中n ≥2时,称为多元线性回归。
进行线性回归时,有4个基本假定: ① 因变量与自变量之间存在线性关系; ② 残差是独立的; ③ 残差满足方差奇性; ④ 残差满足正态分布。
在Matlab 软件包中有一个做一般多元回归分析的命令regeress ,调用格式如下:[b, bint, r, rint, stats] = regress(y,X,alpha) 或者[b, bint, r, rint, stats] = regress(y,X) 此时,默认alpha = 0.05. 这里,y 是一个1n ⨯的列向量,X 是一个()1n m ⨯+的矩阵,其中第一列是全1向量(这一点对于回归来说很重要,这一个全1列向量对应回归方程的常数项),一般情况下,需要人工造一个全1列向量。
回归方程具有如下形式:011m m y x x λλλε=++⋅⋅⋅++其中,ε是残差。
在返回项[b,bint,r,rint,stats]中, ①01m b λλλ=⋅⋅⋅是回归方程的系数;②int b 是一个2m ⨯矩阵,它的第i 行表示i λ的(1-alpha)置信区间; ③r 是1n ⨯的残差列向量;④int r 是2n ⨯矩阵,它的第i 行表示第i 个残差i r 的(1-alpha)置信区间; 注释:残差与残差区间杠杆图,最好在0点线附近比较均匀的分布,而不呈现一定的规律性,如果是这样,就说明回归分析做得比较理想。
⑤ 一般的,stast 返回4个值:2R 值、F_检验值、阈值f ,与显著性概率相关的p 值(如果这个p 值不存在,则,只输出前3项)。
matlab多元回归方程系数求解

matlab多元回归方程系数求解英文回答:To solve a multiple regression equation in MATLAB, you can use the "regress" function. This function takes in two arguments: the dependent variable and the independent variables. The dependent variable should be a column vector, and the independent variables should be a matrix where each column represents a different independent variable.Here's an example to illustrate how to use the "regress" function in MATLAB:matlab.% Create a sample dataset.x1 = [1; 2; 3; 4; 5];x2 = [2; 4; 6; 8; 10];y = [5; 10; 15; 20; 25];% Create a matrix of independent variables.X = [ones(size(x1)), x1, x2];% Solve the multiple regression equation.[b, bint, r, rint, stats] = regress(y, X);In this example, we have two independent variables (x1 and x2) and one dependent variable (y). We create a matrix X that includes a column of ones (for the intercept term) and the two independent variables. Then, we use the "regress" function to solve the multiple regression equation.The function returns several outputs. The "b" variable contains the estimated coefficients of the regression equation. In this case, b will be a column vector with three elements, representing the intercept term and thecoefficients for x1 and x2. The "bint" variable containsthe confidence intervals for the coefficients. The "r" variable contains the residuals (the differences betweenthe observed and predicted values), and the "rint" variable contains the confidence intervals for the residuals. Finally, the "stats" variable contains additionalstatistics, such as the R-squared value and the F-statistic.中文回答:要在MATLAB中求解多元回归方程,可以使用"regress"函数。
多元线性回归与逐步回归

实 1.熟练掌握线性回归模型的建立方法,掌握 regress 命令的使用方法。
验 2.掌握编程求总离差平方和 TSS、回归平方和 RSS、残差平方和 ESS 等相关统计量。
目 3.掌握逐步回归的思想与方法,掌握 stepwise 命令的使用方法。
的 1、建立多元回归模型: 编写程序如下:
A=[6484.00 4100.60 794.00 8101.40 112704.0 46991.00 2664.90 6858.00 4954.30 859.40 8300.10 114333.0 38474.00 2937.10 8087.10 5146.40 1015.10 9415.60 115823.0 55472.00 3149.48 10284.50 5588.00 1415.00 10993.70 117171.0 51333.00 3483.37 14143.80 6605.10 2284.70 12462.10 118517.0 48829.00 4348.95 19359.60 9169.20 3012.60 16264.70 119850.0 55043.00 5218.10 24718.30 11884.60 3819.60 20620.00 121121.0 45821.00 6242.20 29082.60 13539.80 4530.50 24774.10 122389.0 46989.00 7407.99 32412.10 13852.50 4810.60 27298.90 123626.0 53429.00 8651.14 实 33387.90 14241.90 5231.40 29152.50 124761.0 50145.00 9875.95 35087.20 14106.20 5470.60 31134.70 125786.0 49981.00 11444.08 39047.30 13873.60 5888.00 34152.60 126743.0 54688.00 13395.23 验 42374.60 14462.80 6375.40 37595.20 127627.0 52215.00 16386.04 45975.20 14931.50 7005.00 42027.10 128453.0 47119.00 18903.64 53092.90 14870.10 8181.30 45842.00 129227.0 54506.00 21715.25 内 ]; subplot(3,2,1),plot(A(:,1),A(:,7),'*'), xlabel('x1(工业总产值)') 容 ylabel('y(国家财政收入)') subplot(3,2,2),plot(A(:,2),A(:,7),'*'), xlabel('x2(农业总产值)') ylabel('y(国家财政收入)')
多元回归分析报告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 工具箱一、多元线性回归多元线性回归: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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
表11989至2003 年统计数据
年份
x1
x2
x3
x4
x5
x6
y
1989
6484.00
4100.60
794.00
5218.10
1995
24718.30
11884.60
3Байду номын сангаас19.60
20620.00
121121.0
45821.00
6242.20
1996
29082.60
13539.80
4530.50
24774.10
122389.0
46989.00
7407.99
1997
32412.10
13852.50
4810.60
5588.00
1415.00
10993.70
117171.0
51333.00
3483.37
1993
14143.80
6605.10
2284.70
12462.10
118517.0
48829.00
4348.95
1994
19359.60
9169.20
3012.60
16264.70
119850.0
55043.00
6858.00 4954.30859.40 8300.10 114333.038474.00 2937.10;
8087.105146.401015.109415.60115823.055472.003149.48;
10284.505588.001415.0010993.70117171.051333.003483.37;
表2 的最小二乘估计
变量
值
-6922.6
0.1
-0.9
0
0.6
0.1
0
表3方差分析表
方差来源
平方和
自由度
均方和
F
p
回归
5.2695e+008
6
7.5278e+007
465.4205
0
误差
1.1322e+006
8
1.6174e+005
总计
5.2808e+008
14
检验: 不全为0
由表2可知,统计量 ,在显著性水平 ,查 分布表,得临界值 。由 ,所以拒绝 ,接受备择假设。则总体回归系数不全为0,即表明模型的线性关系在95%的置信水平下显著成立。
14143.806605.102284.7012462.10118517.048829.004348.95;
19359.609169.203012.6016264.70119850.055043.005218.10;
24718.3011884.603819.6020620.00121121.045821.006242.20;
47119.00
18903.64
2003
53092.90
14870.10
8181.30
45842.00
129227.0
54506.00
21715.25
(1)建立多元回归模型;
(2)用逐步回归求国家财政收入 与6个因素的回归关系.
、实验程序:
程序1
clear,clc
A=[6484.00 4100.60 794.00 8101.40 112704.0 46991.00 2664.90;
ESS=y'*(eye(n)-H)*y%计算ESS
RSS=y'*(H-1/n*ones(n,n))*y%计算RSS
MRS=RSS/p%计算MRS
MSE=ESS/(n-p-1)%计算MSE
%F检验
F0=(RSS/p)/(ESS/(n-p-1))%计算F0
程序2:
X=[A(:,1),A(:,2),A(:,3),A(:,4),A(:,5),A(:,6)];
27298.90
123626.0
53429.00
8651.14
1998
33387.90
14241.90
5231.40
29152.50
124761.0
50145.00
9875.95
1999
35087.20
14106.20
5470.60
31134.70
125786.0
49981.00
11444.08
2000
《模糊数学》实验报告
实验名称:多元线性回归与逐步回归
实
验
目
的
1.熟练掌握现行回归模型的建模方法,掌握regress命令的使用方法。
2.掌握编程求总离差平方和TSS、回归平方和RSS、残差平方和ESS等相关统计量。
3.掌握逐步回归的思想与方法,掌握stepwise命令的使用方法。
实验主要内容
(具体题目、解答过程及程序)
xlabel('x1(工业总产值)')
ylabel('y(国家财政收入)')
subplot(3,2,2),plot(A(:,2),A(:,7),'*')
xlabel('x2(农业总产值)')
ylabel('y(国家财政收入)')
subplot(3,2,3),plot(A(:,3),A(:,7),'o')
45975.2014931.507005.0042027.10128453.047119.0018903.64;
53092.9014870.108181.3045842.00129227.054506.0021715.25];%自变量数据
[m,n]=size(A);
subplot(3,2,1),plot(A(:,1),A(:,7),'+')
8101.40
112704.0
46991.00
2664.90
1990
6858.00
4954.30
859.40
8300.10
114333.0
38474.00
2937.10
1991
8087.10
5146.40
1015.10
9415.60
115823.0
55472.00
3149.48
1992
10284.50
stepwise(X,y,[1,2,3,4,5,6],0.05,0.10)
%in=[1,2,3,4,5,6]表示x1、x2、x3、x4、x5、x6均保留在模型中
、实验结果与分析:
多元回归模型
运行程序可得到国家财政收入与各因素的散点图(见图1)。
图1国家财政收入与各因素的散点图
得到 的最小二乘估计(见表2)及方差分析表(见表3):
xlabel('x3(建筑业总产值)')
ylabel('y(国家财政收入)')
subplot(3,2,4),plot(A(:,4),A(:,7),'+')
xlabel('x4(社会商品零售总额)')
ylabel('y(国家财政收入)')
subplot(3,2,5),plot(A(:,5),A(:,7),'*')
逐步回归
图2国家财政收入与各因素的散点图
图3国家财政收入与各因素的散点图
由图2至图3:点击all step至出现move to no more。得到回归方程:
其中,蓝色行是被保留的有效行,红色行代表被踢出的变量。
图3中显示了模型参数 ,修正的 , ,与显著性概率相关的 。以上指标值都很好,说明回归效果比较理想。
29082.6013539.804530.5024774.10122389.046989.007407.99;
32412.1013852.504810.6027298.90123626.053429.008651.14;
33387.9014241.905231.4029152.50124761.050145.009875.95;
xlabel('x5(全民人口数)')
ylabel('y(国家财政收入)')
subplot(3,2,6),plot(A(:,6),A(:,7),'o')
xlabel('x6(受灾面积)')
ylabel('y(国家财政收入)')
x=[ones(m,1),A(:,1),A(:,2),A(:,3),A(:,4),A(:,5),A(:,6)];%构造设计矩阵
y=A(:,7);
[n,p]=size(x);%矩阵x0的行数即样本容量
[db,dbint,dr,drint,dstats]=regress(y,x)%调用多元回归分析命令
TSS=y'*(eye(n)-1/n*ones(n,n))*y%计算TSS
H=x*inv((x'*x))*x';%计算对称幂等矩阵
39047.30
13873.60
5888.00
34152.60
126743.0
54688.00
13395.23
2001
42374.60
14462.80
6375.40
37595.20
127627.0
52215.00
16386.04
2002