Matlab实现多元回归实例.docx

上传人:b****3 文档编号:871462 上传时间:2022-10-13 格式:DOCX 页数:14 大小:203.26KB
下载 相关 举报
Matlab实现多元回归实例.docx_第1页
第1页 / 共14页
Matlab实现多元回归实例.docx_第2页
第2页 / 共14页
Matlab实现多元回归实例.docx_第3页
第3页 / 共14页
Matlab实现多元回归实例.docx_第4页
第4页 / 共14页
Matlab实现多元回归实例.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Matlab实现多元回归实例.docx

《Matlab实现多元回归实例.docx》由会员分享,可在线阅读,更多相关《Matlab实现多元回归实例.docx(14页珍藏版)》请在冰豆网上搜索。

Matlab实现多元回归实例.docx

Matlab实现多元回归实例

Matlab实现多元回归实例

(一)一般多元回归

一般在生产实践和科学研究中,人们得到了参数xXi,,Xn和因变量y的数据,需要求出关系式yfX,这时就可以用到回归分析的方法。

如果只考虑f是线性函数的情形,当自变量只有一个时,即,XXi,,Xn中n1时,称

为一元线性回归,当自变量有多个时,即,X%,,Xn中n2时,称为多元

线性回归。

进行线性回归时,有4个基本假定:

1因变量与自变量之间存在线性关系;

2残差是独立的;

3残差满足方差奇性;

4残差满足正态分布。

在Matlab软件包中有一个做一般多元回归分析的命令regeress调用格式如

下:

[b,bint,r,rint,stats]=regress(y,X,alpha)或者

[b,bint,r,rint,stats]=regress(y,X)此时,默认alpha=0.05.

这里,y是一个n1的列向量,X是一个nm1的矩阵,其中第一列是全1向量(这一点对于回归来说很重要,这一个全1列向量对应回归方程的常数项),一般情况下,需要人工造一个全1列向量。

回归方程具有如下形式:

y01X1mXm

其中,是残差。

在返回项[b,bint,r,rint,stats]中,

1b01m是回归方程的系数;

2bint是一个m2矩阵,它的第i行表示i的(1-alpha)置信区间;

3r是n1的残差列向量;

4rint是n2矩阵,它的第i行表示第i个残差匚的(1-alpha)置信区间;

注释:

残差与残差区间杠杆图,最好在0点线附近比较均匀的分布,而不呈现一定的规律性,如果是这样,就说明回归分析做得比较理想。

5一般的,stast返回4个值:

R2值、F_检验值、阈值f,与显著性概率相关

的p值(如果这个p值不存在,贝U,只输出前3项)。

注释:

(1)一般说来,R2值越大越好。

(2)人们一般用以下统计量对回归方程做显著性检验:

F_检验、t_检验、以及相关系数检验法。

Matlab软件包输出F_检验值和阈值f。

一般说来,F_检验值越大越好,特别的,应该有F_检验值f。

(3)与显著性概率相关的p值应该满足palpha。

如果palpha,则说明回归方程中有多余的自变量,可以将这些多余的自变量从回归方程中剔除(见下面逐步回归的内容)。

这几个技术指标说明拟合程度的好坏。

这几个指标都好,就说明回归方程是有意义的。

例1(Hamilton,1987)数据如下:

序号

Y

X1

X2

1

12.37

2.23

9.66

2

12.66

2.57

8.94

3

12.00

3.87

4.40

4

11.93

3.10

6.64

5

11.06

3.39

4.91

6

13.03

2.83

8.52

7

13.13

3.02

8.04

8

11.44

2.14

9.05

9

12.86

3.04

7.71

10

10.84

3.26

5.11

11

11.20

3.39

5.05

12

11.56

2.35

8.51

13

10.83

2.76

6.59

14

12.63

3.90

4.90

15

12.46

3.16

6.96

第一步分析数据

在Matlab软件包中分析是否具有线性关系,并作图观察,M—文件

opt_hanmilton_1987:

x1=[2.23,2.57,3.87,3.10,3.39,2.83,3.02,2.14,3.04,3.26,3.39,2.35,2.76,3.90,3.16];

x2=[9.66,8.94,4.40,6.64,4.91,8.52,8.04,9.05,7.71,5.11,5.05,8.51,6.59,4.90,6.96];y=[12.37,12.66,12.00,11.93,11.06,13.03,13.13,11.44,12.86,10.84,11.20,11.56,10.83,12.63,12.46];

corrcoef(x1,y)

corrcoef(x2,y)

plot3(x1,x2,y,'*')

得到结果:

ans=

1.00000.0025

0.00251.0000

ans=

1.00000.4341

0.43411.0000

即,corrcoef(x1,y)=0.0025,corrcoef(x2,y)=0.4341,说明没有非常明显的单变量线性关系。

图形如下:

 

这说明,y,x1,x2在一个平面上,满足线性关系:

a1x1a2x2bya

或者,换成一个常见的形式ya0a1x1a2x2

其中,是残差。

于是,在Matlab软件包中做线性多元回归,写一个M—文件opt_regress_hamilton

x1=[2.23,2.57,3.87,3.10,3.39,2.83,3.02,2.14,3.04,3.26,3.39,2.35,2.76,3.90,3.16]';

x2=[9.66,8.94,4.40,6.64,4.91,8.52,8.04,9.05,7.71,5.11,5.05,8.51,6.59,4.90,6.96]';

y=[12.37,12.66,12.00,11.93,11.06,13.03,13.13,11.44,12.86,10.84,11.20,11.56,10.83,12

.63,12.46]';

e=ones(15,1);

x=[e,x1,x2];

[b,bint,r,rint,stats]=regress(y,x,0.05)

rcoplot(r,rint)

其中,rcoplot(Residualcaseorderplo)表示画出残差与残差区间的杠杆图。

行后得到:

b=

-4.5154

3.0970

1.0319

bint=

-4.6486-4.3822

3.07033.1238

1.02381.0399r=

0.0113

-0.0087

-0.0102

-0.0069

0.0101

-0.0106

-0.0037

-0.0105

0.0049

-0.0136

0.0057

0.0163

-0.0023

0.0110

0.0071

rint=

-0.00870.0314

-0.03030.0128

-0.03010.0098

-0.02990.0162

-0.01060.0308

-0.03130.0102

-0.02520.0178

-0.02990.0089

-0.01740.0272

-0.03310.0058

-0.01610.0275

-0.00270.0354

-0.02360.0190

-0.00790.0299

-0.01560.0298

stats=

1.0e+004*

00.0000

0.00013.9222

即,y4.5153.097X,1.0319x2。

置信度95%,且R21.0,F_检验值392220,与显著性概率0.05相关的

p0.00000.05,这说明,回归方程中的每个自变量的选取,都是有意义的。

残差杠杆图:

C3EDIO0102

D.D.aD-D.

从杠杆图看出,所有的残差都在0点附近均匀分布,区间几乎都位于0.03,0.03之间,即,没有发现高杠杆点,也就是说,数据中没有强影响点、异常观测点。

综合起来看,以上回归结果(回归函数、拟合曲线或曲面)近乎完美。

(二)逐步回归

假设已有数据X和丫,在Matlab软件包中,使用stepwise命令进行逐步回命令的使用格式如下:

stepwise(X,Y)

注意:

应用stepwise命令做逐步回归,数据矩阵X的第一列不需要人工加一个全1向量,程序会自动求出回归方程的常数项(intercept)。

在应用stepwise命令进行运算时,程序不断提醒将某个变量加入(Movein)回归方程,或者提醒将某个变量从回归方程中剔除(Moveout)。

注释:

①使用stepwise命令进行逐步回归,既有剔除变量的运算,也有引入变量的运算,它是目前应用较为广泛的一种多元回归方法。

②在运行stepwise(X,Y)

命令时,默认显著性概率0.05。

例2(Hald,1960)Hald数据是关于水泥生产的数据。

某种水泥在凝固时放出的热量丫(单位:

卡/克)与水泥中4种化学成分所占的百分比有关:

x1:

3CaoAI2O3

X2:

3CaoSio2

X3:

4CaoAI2O3Fe2Q

X4:

2CaoSiQ

在生产中测得13组数据:

序号

X1

X2

X3

X4

Y

1

7

26

6

P60

78.5

2

1

29

15

52

74.3

3

11

56

8

20

104.3

4

11

31

8

47

87.6

5

7

52

6

33

95.9

6

11

55

9

「22

109.2

7

3

71

17

6

102.7

8

1

31

22

44

72.5

9

2

54

18

「22

93.1

10

21

47

4

26

115.9

11

1

40

23

34

83.8

12

11

66

9

12

113.3

13

10

68

8

12

109.4

求出关系式丫fX。

解:

(1)本问题涉及的数据是5维的,不能画图观察。

先做异常值分析。

X=[7,26,6,60;1,29,15,52;11,56,8,20;11,31,8,47;7,52,6,33;11,55,9,22;3,71,17,6;1,31,2

2,44;2,54,18,22;21,47,4,26;1,40,23,34;11,66,9,12;10,68,8,12];

丫=[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]';

A=[X,Y];

mahal(A,A)

程序执行后得到结果:

ans=

5.6803

3.6484

6.7002

3.3676

3.3839

4.4300

4.0080

6.5067

3.0849

7.5016

5.1768

2.4701

可以认为数据都是正常的。

(2)一般多元回归。

在Matlab软件包中写一个M—文件opt_cement_1:

X=[7,26,6,60;1,29,15,52;11,56,8,20;11,31,8,47;

7,52,6,33;11,55,9,22;3,71,17,6;1,31,22,44;

2,54,18,22;21,47,4,26;1,40,23,34;11,66,9,12;

10,68,8,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]';

a1=ones(13,1);

A=[a1,X];

[b,bint,r,rint,stat]=regress(Y,A)

rcoplot(r,rint)

程序执行后

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

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1