Matlab多变量回归分析教程.docx

上传人:b****1 文档编号:14338361 上传时间:2023-06-22 格式:DOCX 页数:16 大小:1.59MB
下载 相关 举报
Matlab多变量回归分析教程.docx_第1页
第1页 / 共16页
Matlab多变量回归分析教程.docx_第2页
第2页 / 共16页
Matlab多变量回归分析教程.docx_第3页
第3页 / 共16页
Matlab多变量回归分析教程.docx_第4页
第4页 / 共16页
Matlab多变量回归分析教程.docx_第5页
第5页 / 共16页
Matlab多变量回归分析教程.docx_第6页
第6页 / 共16页
Matlab多变量回归分析教程.docx_第7页
第7页 / 共16页
Matlab多变量回归分析教程.docx_第8页
第8页 / 共16页
Matlab多变量回归分析教程.docx_第9页
第9页 / 共16页
Matlab多变量回归分析教程.docx_第10页
第10页 / 共16页
Matlab多变量回归分析教程.docx_第11页
第11页 / 共16页
Matlab多变量回归分析教程.docx_第12页
第12页 / 共16页
Matlab多变量回归分析教程.docx_第13页
第13页 / 共16页
Matlab多变量回归分析教程.docx_第14页
第14页 / 共16页
Matlab多变量回归分析教程.docx_第15页
第15页 / 共16页
Matlab多变量回归分析教程.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Matlab多变量回归分析教程.docx

《Matlab多变量回归分析教程.docx》由会员分享,可在线阅读,更多相关《Matlab多变量回归分析教程.docx(16页珍藏版)》请在冰点文库上搜索。

Matlab多变量回归分析教程.docx

Matlab多变量回归分析教程

本次(běncì)教程的主要内容包含:

一、多元(duōyuán)线性回归  2#

多元(duōyuán)线性回归:

regress

二、多项式回归(huíguī)  3#

一元(yīyuán)多项式:

polyfit或者polytool

多元二项式:

rstool或者rsmdemo

三、非线性回归  4#

非线性回归:

nlinfit

四、逐步回归  5#

逐步回归:

stepwise

一、多元线性回归

多元线性回归:

 

 

1、b=regress(Y,X)   确定回归系数的点估计值

 

 

 

2、[b,bint,r,rint,stats]=regress(Y,X,alpha)    求回归系数的点估计和区间估计、并检验回归模型

①bint表示回归系数的区间估计.

②r表示残差

③rint表示置信区间

④stats表示用于检验回归模型的统计量,有三个数值:

相关系数r2、F值、与F对应的概率p

说明:

相关系数r2越接近1,说明回归方程越显著; 

 时拒绝H0,F越大,

说明回归方程越显著;与F对应的概率p<α时拒绝H0

⑤alpha表示显著性水平(缺省时为0.05)

3、rcoplot(r,rint)    画出残差及其置信区间

具体参见下面的实例演示

4、实例演示,函数使用说明

(1)输入数据

1.>>x=[143145146147149150153154155156157158159160162164]';

2.>>X=[ones(16,1)x];

3.>>Y=[8885889192939395969897969899100102]';

复制代码

(2)回归分析及检验

1.  >>[b,bint,r,rint,stats]=regress(Y,X)

2.

3.b=

4.

5.  -16.0730

6.  0.7194

7.

8.

9.bint=

10.

11.  -33.7071  1.5612

12.  0.6047  0.8340

13.

14.

15.r=

16.

17.  1.2056

18.  -3.2331

19.  -0.9524

20.  1.3282

21.  0.8895

22.  1.1702

23.  -0.9879

24.  0.2927

25.  0.5734

26.  1.8540

27.  0.1347

28.  -1.5847

29.  -0.3040

30.  -0.0234

31.  -0.4621

32.  0.0992

33.

34.

35.rint=

36.

37.  -1.2407  3.6520

38.  -5.0622  -1.4040

39.  -3.5894  1.6845

40.  -1.2895  3.9459

41.  -1.8519  3.6309

42.  -1.5552  3.8955

43.  -3.7713  1.7955

44.  -2.5473  3.1328

45.  -2.2471  3.3939

46.  -0.7540  4.4621

47.  -2.6814  2.9508

48.  -4.2188  1.0494

49.  -3.0710  2.4630

50.  -2.7661  2.7193

51.  -3.1133  2.1892

52.  -2.4640  2.6624

53.

54.

55.stats=

56.

57.  0.9282  180.9531  0.0000  1.7437

复制代码

运行结果解读如下

参数回归结果为 

 ,对应的置信区间分别为[-33.7017,1.5612]和[0.6047,0.834]

r2=0.9282(越接近于1,回归效果越显著),F=180.9531,p=0.0000,由p<0.05,可知回归模型

y=-16.073+0.7194x成立

(3)残差分析作残差图

1.rcoplot(r,rint)

复制代码

从残差图可以看出,除第二个数据外,其余数据的残差离零点均较近,且残差的置信区间均包含零点,

这说明回归模型y=-16.073+0.7194x能较好的符合原始数据,而第二个数据可视为异常点。

(4)预测及作图

1.z=b

(1)+b

(2)*x

2.plot(x,Y,'k+',x,z,'r')

二、多项式回归(huíguī)

一元多项式回归

1、一元多项式回归函数     

 

(1)[p,S]=polyfit(x,y,m)    确定多项式系数的MATLAB命令

说明:

x=(x1,x2,…,xn),y=(y1,y2,…,yn);p=(a1,a2,…,am+1)是多项式y=a1xm+a2xm-1+…+amx+am+1的系数;S是一个矩阵,

用来估计预测误差

(2)polytool(x,y,m)  调用多项式回归GUI界面,参数意义同polyfit

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

3、实例演示说明

观测物体降落的距离s与时间t的关系,得到数据如下表,求s的表达式(即回归方程s=a+bt+ct2)

t(s)1/302/303/304/305/306/307/30

s(cm)11.8615.6720.6026.6933.7141.9351.13

t(s)8/309/3010/3011/3012/3013/3014/30

s(cm)61.4972.9085.4499.08113.77129.54146.48

解法一:

直接作二次多项式回归

1.>>t=1/30:

1/30:

14/30;

2.>>s=[11.8615.6720.6026.6933.7141.9351.1361.4972.9085.4499.08113.77129.54146.48];

3.>>[p,S]=polyfit(t,s,2)

4.

5.p=

6.

7.  489.2946  65.8896  9.1329

8.

9.

10.S= 

11.

12.      R:

[3x3double]

13.    df:

11

14.  normr:

0.1157

复制代码

故回归模型为 

 

解法二:

化为多元线性回归

1.>>t=1/30:

1/30:

14/30;

2.>>s=[11.8615.6720.6026.6933.7141.9351.1361.4972.9085.4499.08113.77129.54146.48];

3.>>T=[ones(14,1)t'(t.^2)'];

4.>>[b,bint,r,rint,stats]=regress(s',T)

5.

6.b=

7.

8.  9.1329

9.  65.8896

10.  489.2946

11.

12.

13.bint=

14.

15.  9.0614  9.2044

16.  65.2316  66.5476

17.  488.0146  490.5747

18.

19.

20.r=

21.

22.  -0.0129

23.  -0.0302

24.  -0.0148

25.  0.0732

26.  0.0040

27.  0.0474

28.  -0.0165

29.  -0.0078

30.  -0.0363

31.  -0.0222

32.  0.0046

33.  -0.0059

34.  -0.0237

35.  0.0411

36.

37.

38.rint=

39.

40.  -0.0697  0.0439

41.  -0.0956  0.0352

42.  -0.0876  0.0580

43.  0.0182  0.1283

44.  -0.0709  0.0789

45.  -0.0192  0.1139

46.  -0.0894  0.0563

47.  -0.0813  0.0658

48.  -0.1062  0.0335

49.  -0.0955  0.0511

50.  -0.0704  0.0796

51.  -0.0793  0.0675

52.  -0.0904  0.0429

53.  -0.0088  0.0910

54.

55.

56.stats=

57.

58.  1.0e+007*

59.

60.  0.0000  1.0378      0  0.0000

复制代码

故回归模型为:

 

 

预测及作图

1.Y=polyconf(p,t,S);

2.plot(t,s,'k+',t,Y,'r')

复制代码

多元二项式回归

1、多元二项式回归Matlab命令

rstool(x,y,'model',alpha)    

输入参数说明:

x:

n*m矩阵;

Y:

n维列向量;

alpha:

显著性水平(缺省时为0.05);

mode:

由下列4个模型中选择1个(用字符串输入,缺省时为线性模型)

 

2、实例演示说明

设某商品的需求量与消费者的平均收入、商品价格的统计数据如下,建立回归模型,预测平均收入为1000、

价格为6时的商品需求量

需求量10075807050659010011060

收入1000600  1200500300400130011001300300

价格5766875439

解法一:

选择纯二次模型

1.%直接用多元二项式回归如下

2.x1=[10006001200500300400130011001300300];

3.x2=[5766875439];

4.y=[10075807050659010011060]';

5.x=[x1'x2'];

6.rstool(x,y,'purequadratic')

复制代码

在x1对应的文本框中输入1000,X2中输入6,敲回车键,此时图形和相关数据会自动更新

此时在GUI左边的“PredictedY1”下方的数据变为88.47981,表示平均收入为1000、价格为6时商品需

求量为88.4791

点击左下角的Export按钮,将会导出回归的相关参数beta、rmse和residuals到工作空间(workspace)

在Export按钮下面可以选择回归类型

在Matlab命令窗口中输入

1.>>beta,rmse

复制代码

将得到如下结果

1.beta=

2.        110.5313

3.        0.1464

4.        -26.5709

5.        -0.0001

6.        1.8475

7.      rmse=

8.          4.5362

复制代码

故回归模型为 

 

解法二:

将上面的模型转换为多元线性回归

1.>>X=[ones(10,1)x1'x2'(x1.^2)'(x2.^2)'];

2.>>[b,bint,r,rint,stats]=regress(y,X);

3.>>b,stats

4.

5.b=

6.

7.  110.5313

8.  0.1464

9.  -26.5709

10.  -0.0001

11.  1.8475

12.

13.

14.stats=

15.

16.  0.9702  40.6656  0.0005  20.5771

三、非线性回归(huíguī)

1、非线性回归

[beta,r,J]=nlinfit(x,y,'modelfun',beta0)      非线性回归系数的命令

nlintool(x,y,'modelfun',beta0,alpha)    非线性回归GUI界面

参数说明

beta:

估计出的回归系数;

r:

残差;

J:

Jacobian矩阵;

x,y:

输入数据x、y分别为矩阵和n维列向量,对一元非线性回归,x为n维列向量;

modelfun:

M函数、匿名函数或inline函数,定义的非线性回归函数;

beta0:

回归系数的初值;

2、预测和预测误差估计

[Y,DELTA]=nlpredci('modelfun',x,beta,r,J)

获取x处的预测值Y及预测值的显著性为1-alpha的置信区间Y±DELTA

3、实例演示说明

解:

(1)对将要拟合的非线性模型,建立M函数如下

1.functionyhat=modelfun(beta,x)

2.%beta是需要回归的参数

3.%x是提供的数据

4.yhat=beta

(1)*exp(beta

(2)./x);

复制代码

(2)输入数据

1.x=2:

16;

2.y=[6.428.209.589.59.7109.939.9910.4910.5910.6010.8010.6010.9010.76];

3.beta0=[82]';

复制代码

(3)求回归系数

1.[beta,r,J]=nlinfit(x',y',@modelfun,beta0);

2.beta

3.

4.beta=

5.          11.6036

6.          -1.0641

复制代码

即得回归模型为 

 

(4)预测及作图

1.[YY,delta]=nlpredci('modelfun',x',beta,r,J);

2.plot(x,y,'k+',x,YY,'r')

复制代码

四、逐步回归

1、逐步回归的命令

stepwise(x,y,inmodel,alpha)  根据数据进行分步回归

stepwise    直接调出分步回归GUI界面

输入参数说明

x:

自变量数据,阶矩阵;

y:

因变量数据,阶矩阵;

inmodel:

矩阵的列数的指标,给出初始模型中包括的子集(缺省时设定为全部自变量);

alpha:

显著性水平(缺省时为0.5);

2、实例演示分析

水泥凝固时放出的热量y与水泥中4种化学成分x1、x2、x3、x4有关,今测得一组数据如下,试

用逐步回归法确定一个线性模型

序号    1    2    3    4    5  6 7 8  9 10   11    12    13

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)数据输入

1.x1=[7111117113122111110]';

2.x2=[26295631525571315447406668]';

3.x3=[615886917221842398]';

4.x4=[6052204733226442226341212]';

5.y=[78.574.3104.387.695.9109.2102.772.593.1115.983.8113.3109.4]';

6.x=[x1x2x3x4];

复制代码

(2)逐步回归

①先在初始模型中取全部自变量

1.stepwise(x,y)

复制代码

内容总结

(1)本次教程的主要内容包含:

一、多元线性回归  2#

多元线性回归:

regress

二、多项式回归  3#

一元多项式:

polyfit或者polytool

多元二项式:

rstool或者rsmdemo

三、非线性回归  4#

非线性回归:

nlinfit

四、逐步回归  5#

逐步回归:

stepwise

一、多元线性回归

 

二、多项式回归

三、非线性回归

四、逐步回归

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2