Matlab实现多元回归实例Word文档下载推荐.docx

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

Matlab实现多元回归实例Word文档下载推荐.docx

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

Matlab实现多元回归实例Word文档下载推荐.docx

注释:

(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

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

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组数据:

X3

X4

26

P60

78.5

29

52

74.3

56

20

104.3

31

47

87.6

33

95.9

55

「22

109.2

71

17

102.7

22

44

72.5

54

18

「22

93.1

21

115.9

40

23

34

83.8

66

113.3

68

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)

程序执行后得到结果:

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:

1,31,22,44;

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)

程序执行后

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

当前位置:首页 > 人文社科 > 法律资料

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

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