17实验十七--回归分析.doc

上传人:wj 文档编号:84468 上传时间:2022-10-02 格式:DOC 页数:14 大小:577.50KB
下载 相关 举报
17实验十七--回归分析.doc_第1页
第1页 / 共14页
17实验十七--回归分析.doc_第2页
第2页 / 共14页
17实验十七--回归分析.doc_第3页
第3页 / 共14页
17实验十七--回归分析.doc_第4页
第4页 / 共14页
17实验十七--回归分析.doc_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

17实验十七--回归分析.doc

《17实验十七--回归分析.doc》由会员分享,可在线阅读,更多相关《17实验十七--回归分析.doc(14页珍藏版)》请在冰豆网上搜索。

17实验十七--回归分析.doc

实验十七回归分析

一实验目的

学习用MATLAB求解一元线性回归问题.学会正确使用命令Regress,并从输出表中读懂线性回归模型中各参数的估计,回归方程,线性假设的显著性检验结果,因变量Y在观察点的预测区间等.

二实验准备

1.多元线性回归的数学模型为

,其中,,,

为参数,记,残差的每一分量定义为,.

残差平方和,最小二乘估计就是选择参数使残差平方和最小.

称为总的偏差平方和;称为回归平方和;

可以证明平方和的分解公式:

.

决定系数是反映模型是否有效的指标之一.,越接近于1,模型的有效性越好.

,是检验的检验统计量,在F的值偏大时拒绝.

是回归模型中的无偏估计.

一元线性回归是多元线性回归的特例,只要令.

2.一元线性回归模型中个值的预测区间

当被拒绝,即判断模型有效后,就可以从自变量的一个给定值预测因变量的理论值,预测值实际上是一个点估计,记作.显然可取

(1)

这里的有如下的统计意义:

是无偏估计,即.在给定显著性水平下,预测区间(时,有95%的可能落在此区间)为

(2)

其中,.虽然这个结果比较复杂,但是当很大且接近时,可以忽视上式根号内的后两项,且接近于的分位数,上述预测区间简化为

(3)

如果因为或的置信区间包含零点而接受,那也只是说明与之间没有合适的线性模型,但是两者之间可能存在其它关系.

3.多元线性回归模型中个值的预测区间

当模型通过有效性检验后,可由自变量的任一给定值预测因变量的理论值,记作,显然

(4)

在给定显著性水平下的预测区间为

,(5)

其中.当很大且接近时,上述预测区间也可简化为

(6)

三学习MATLAB命令

1.MATLAB用于一元或多元线性回归的命令是regress,其格式为

b=regress(y,X)%简单形式

[b,bint,r,rint,stats]=regress(y,X,alpha)%完整形式

输入参数及意义:

因变量y(列向量),矩阵X(n行p+1列,左边第一列为1,这时回归模型中有常数项),alpha是显著性水平(默认时设定为0.05).

输出参数及意义:

为p+1个模型参数的最小二乘估计,bint是参数的置信区间,r是残差(列向量),rint是残差的置信区间,stats包含4个统计量:

第1个是决定系数;第2个是作回归方程的显著性检验的统计量的值;第3个是分布大于F值的概率(检验的P-值),时拒绝,回归模型有效;第4个是(剩余方差,MATLAB7.0以前版本没有第4个统计量,可由sum(r.^2)/(n-p-1)计算.

2.多项式回归命令polyfit,其格式是

a=polyfit(x,y,m)

输入参数及意义:

x,y是要拟合的数据组(长度相同的向量),m为拟合多项式的次数.

输出a为拟合多项式

的系数(降幂排列),注意:

顺序与regress的输出相反.

下面的命令常与polyfit连用,计算上述多项式在x处的值y:

y=polyval(a,x)

3.非线性回归命令nlinfit,其格式是

[b,R,J]=nlinfit(x,y,’model’,b0)

输入参数及意义:

x是自变量数据矩阵,每列一个变量;y是因变量数据向量;model是模型的函数名(M文件或inline形式的函数),形式为,b为参数,b0为参数迭代初始值.

输出参数及意义:

b是参数的估计值;R是残差,J返回用于估计预测误差的Jacobi矩阵.

四实验内容

1.一元线性回归

例1表17.1列出了18个5-8岁儿童的重量(这是容易测得的)和体积(这是难以测量的).

表17.1

重量(千克)

17.1

10.5

13.8

15.7

11.9

10.4

15.0

16.0

17.8

体积(立方分米)

16.7

10.4

13.5

15.7

11.6

10.2

14.5

15.8

17.6

重量(千克)

15.8

15.1

12.1

18.4

17.1

16.7

16.5

15.1

15.1

体积(立方分米)

15.2

14.8

11.9

18.3

16.7

16.6

15.9

15.1

14.5

(1)画出散点图.

(2)求关于的线性回归方程,并作回归分析.(3)求=14.0时的置信水平为0.95的预测区间.

(1)输入数据,并输入作散点图命令

x=[17.110.513.815.711.910.415.016.017.815.815.112.118.417.116.716.515.115.1];%输入自变量x的观察值

y=[16.710.413.515.711.610.214.515.817.615.214.811.918.316.716.615.915.114.5];%输入因变量y的观察值

plot(x,y,'*')%作散点图

输出结果是图17.1

图17.1

(2)作一元回归分析,输入

n=length(y);

X=[ones(n,1),x'];%1与自变量X组成的输入矩阵

[b,bint,r,rint,s]=regress(y',X);

b,bint,s

rcoplot(r,rint)%残差及其置信区间作图

执行后得到输出结果:

b=

-0.1040

0.9881

bint=

-0.76550.5574

0.94451.0316

s=

1.0e+003*

0.00102.31190

这个结果可整理如表17.2

表17.2例1(重量与体积)的计算结果

回归系数

回归系数估计值

回归系数置信区间

-0.1040

[-0.7655,0.5574]

0.9881

[0.9445,1.0316]

一元回归方程为

;

从几个方面都可以检验模型是有效的:

F检验的P-值接近于零;的置信区间不含零点;;用MATLAB命令finv(0.95,1,16)计算得到.

残差及置信区间如图17.2

图17.2

(3)将上面的回归系数估计值代入回归方程,对重量为14.0kg的儿童的体积(个值)进行预测,得

在下,体积预测区间简化为,输入计算指令

t1=13.7287-norminv(0.975,0,1)*sqrt(sum(r.^2)/16)

t2=13.7287+norminv(0.975,0,1)*sqrt(sum(r.^2)/16)

输出

t1=13.3333

t2=14.1241

即14.0kg的儿童的体积(个值)的置信度为0.95的预测区间为[13.3340,14.1248].也可以用命令

polytool(x,y,1,0.05)

作出散点图及拟合直线,并对x=14.0时的y进行预报(输出结果略,详见例4).

例2为了了解血压随年龄的增长而升高的关系,调查了30个成年人的血压(收缩压mmHg),如表17.3.我们希望用这组数据确定血压与年龄(岁)的关系,并且由此从年龄预测血压可能的变化范围,回答“平均说来60岁比50岁的人血压高多少”的问题.

表17.330个人的血压与年龄

序号

血压

年龄

序号

血压

年龄

序号

血压

年龄

1

144

39

11

162

64

21

136

36

2

215

47

12

150

56

22

142

50

3

138

45

13

140

59

23

120

39

4

145

47

14

110

34

24

120

21

5

162

65

15

128

42

25

160

44

6

142

46

16

130

48

26

158

53

7

170

67

17

135

45

27

144

63

8

124

42

18

114

18

28

130

29

9

158

67

19

116

20

29

125

25

10

154

56

20

124

19

30

175

69

分析记血压(因变量),年龄(自变量)表17.3的数据为用MATLAB将它们作图,如图17.3.从图形直观地看,与大致呈线性关系,即根据试验数据从统计推断的角度讨论,的置信区间和假设检验,进而对任意的年龄给出的预测区间,属于一元线性回归分析.

图17.3血压与年龄的散点图

MATLAB编程如下:

y=[144215138145162142170124158154162150140110128130135114116124136142120120160158144130125175];

x=[394745476546674267566456593442484518201936503921445363292569];

n=30;

X=[ones(n,1),x'];%1与自变量组成的输入矩阵

[b,bint,r,rint,s]=regress(y',X);

plot(x,y,'*')%血压与年龄的散点图

b,bint,s

rcoplot(r,rint)%残差及其置信区间作图

b=

98.4084

0.9732

bint=

78.7484118.0683

0.56011.3864

s=

0.454023.28340.0000

这个结果可以整理如表17.4

表17.4年龄与血压的计算结果

回归系数

回归系数估计值

回归系数置信区间

98.4084

[78.7484118.0683]

0.9732

[0.56011.3864]

从几个方面都可以检验模型是有效的:

F检验的P-值接近于零;的置信区间不含零点;;用MATLAB命令finv(0.95,1,28)计算得到但是的置信区间较长,较小,说明模型精度不高.

残差及置信区间如图17.4,图中第二个点残差的置信区间不包括零点,可以认为这个数据是异常的(残差应服从均值为0的正态分布),它偏离数据整体的变化趋势,给模型的有效性和精度带来不利的影响,称异常点或离群点,应予以剔除.

将原始数据中的第二个剔除后重新计算得到表17.5

表17.5剔除第二个数据后的计算结果

回归系数

回归系数估计值

回归系数置信区间

96.8665

[85.4771108.2559]

0.9533

[0.71401.1925]

可以看

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

当前位置:首页 > 农林牧渔 > 林学

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

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