第八章统计回归模型.docx

上传人:b****3 文档编号:5293818 上传时间:2022-12-15 格式:DOCX 页数:25 大小:260.80KB
下载 相关 举报
第八章统计回归模型.docx_第1页
第1页 / 共25页
第八章统计回归模型.docx_第2页
第2页 / 共25页
第八章统计回归模型.docx_第3页
第3页 / 共25页
第八章统计回归模型.docx_第4页
第4页 / 共25页
第八章统计回归模型.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

第八章统计回归模型.docx

《第八章统计回归模型.docx》由会员分享,可在线阅读,更多相关《第八章统计回归模型.docx(25页珍藏版)》请在冰豆网上搜索。

第八章统计回归模型.docx

第八章统计回归模型

第八章--统计回归模型

第八章统计回归模型

回归分析是研究一个变量

与其它若干变量

之间相关关系的一种数学工具.它是在一组试验或观测数据的基础上,寻找被随机性掩盖了的变量之间的依存关系.粗略的讲,可以理解为用一种确定的函数关系去近似代替比较复杂的相关关系.这个函数称为回归函数.

回归分析所研究的主要问题是如何利用变量

的观察值(样本),对回归函数进行统计推断,包括对它进行估计及检验与它有关的假设等.

回归分析包含的内容广泛.此处将讨论多项式回归、多元线性回归、非线性回归以及逐步回归.

一、多项式回归

(1)一元多项式回归

一元多项式回归模型的一般形式为

.

如果从数据的散点图上发现

呈现较明显的二次(或高次)函数关系,则可以选用一元多项式回归.

1.用函数polyfit估计模型参数,其具体调用格式如下:

p=polyfit(x,y,m)p返回多项式系数的估计值;m设定多项式的最高次数;x,y为对应数据点值.

[p,S]=polyfit(x,y,m)S是一个矩阵,用来估计预测误差.

2.输出预估值与残差的计算用函数polyval实现,其具体调用格式如下:

Y=polyval(p,X)求polyfit所得的回归多项式在X处的预测值Y.

[Y,DELTA]=polyval(p,X,S)p,S为polyfit的输出,DELTA为误差估计.在线性回归模型中,Y±DELTA以50%的概率包含函数在X处的真值.

3.模型预测的置信区间用polyconf实现,其具体调用格式如下:

[Y,DELTA]=polyconf(p,X,S,alpha)求polyfit所得的回归多项式在X处的预测值Y及预测值的显著性为1-alpha的置信区间Y±DELTA,alpha缺省时为0.05.

4.交互式画图工具polytool,其具体调用格式如下:

polytool(x,y,m);

polytool(x,y,m,alpha);

用m次多项式拟合x,y的值,默认值为1,alpha为显著性水平,默认值为0.05.

例1观测物体降落的距离s与时间t的关系,得到数据如下表,求s.

t(s)

1/30

2/30

3/30

4/30

5/30

6/30

7/30

s(cm)

11.86

15.67

20.60

26.69

33.71

41.93

51.13

t(s)

8/30

9/30

10/30

11/30

12/30

13/30

14/30

s(cm)

61.49

72.90

85.44

99.08

113.77

129.54

146.48

解根据数据的散点图,应拟合为一条二次曲线.选用二次模型,具体代码如下:

%%%输入数据

t=1/30:

1/30:

14/30;

s=[11.8615.6720.6026.6933.7141.9351.1361.4972.9085.4499.08113.77129.54146.48];

%%%多项式系数拟合

[p,S]=polyfit(t,s,2);

则得回归模型为:

.

%%%y的拟合值及预测值y的置信半径delta

[y,dalta]=polyconf(p,t,S);

得结果如下:

y=

Columns1through11

11.872915.700220.614826.616833.706041.882651.146561.497872.936385.462299.0754

Columns12through14

113.7759129.5637146.4389

dalta=

Columns1through11

0.09370.08650.08290.08160.08170.08230.08270.08270.08230.08170.0816

Columns12through14

0.08290.08650.0937

%%%交互式画图

polytool(t,s,2);

polytool所得的交互式图形如图8-1所示.

 

图8-1

(2)多元二项式回归

多元二项式回归模型的一般形式为

.

多元二项式回归命令:

rstool(x,y,’model’,alpha)x表示n⨯m矩阵;y表示n维列向量;alpha为显著性水平(缺省时为0.05);model表示由下列4个模型中选择1个(用字符串输入,缺省时为线性模型):

linear(线性):

purequadratic(纯二次):

interaction(交叉):

quadratic(完全二次):

.

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

需求量

100

75

80

70

50

65

90

100

110

60

收入

1000

600

1200

500

300

400

1300

1100

1300

300

价格

5

7

6

6

8

7

5

4

3

9

解选择纯二次模型,即

.

%%%输入数据

x1=[10006001200500300400130011001300300];

x2=[5766875439];

x=[x1'x2'];

y=[10075807050659010011060]';

%%%多元二项式回归

rstool(x,y,'purequadratic');

得如下结果:

图8-2

得到一个如图所示的交互式画面,左边是x1(=1000)固定时的曲线y(x1)及其置信区间,右边是x2(=6)固定时的曲线y(x2)及其置信区间.用鼠标移动图中的十字线,或在图下方窗口内输入,可改变x1,x2.在左边图形下方的方框中输入1000,右边图形下方的方框中输入6,则画面左边的“PredictedY1”下方的数据变为88.4791,即预测出平均收入为1000、价格为6时的商品需求量为88.4791.

在画面左下方单击”Export”,在出现的窗体中单击”ok”按钮,则beta、rmse和residuals都传送到Matlab工作区中.

在Matlab工作区中输入命令:

beta,rmse,得结果:

beta=110.53130.1464-26.5709-0.00011.8475

rmse=4.5362

故回归模型为:

剩余标准差为4.5362,说明此回归模型的显著性较好.

二、多元线性回归

多元线性回归模型的一般形式为

.

在Matlab统计工具箱中使用函数regress实现多元线性回归.具体调用格式为:

b=regress(Y,X)

[b,bint,r,rint,stats]=regress(Y,X,alpha)

其中

.对于一元线性回归,取

即可.b为输出向量;b,bint表示回归系数估计值和它们的置信区间;r表示残差;rint表示残差的置信区间;stats表示用于检验回归模型的统计量,有四个数值:

相关系数

值、与

值对应的概率

的值.相关系数

越接近1,说明回归方程越显著;

时拒绝

越大,说明回归方程越显著;与

对应的概率

时拒绝

,回归模型成立;alpha表示显著性水平(缺省时为0.05).

残差及其置信区间可以用命令rcoplot(r,rint)画出.

例3已知某湖泊八年来湖水中COD浓度实测值(y)与影响因素,如湖区工业产值(x1)、总人口数(x2)、捕鱼量(x3)、降水量(x4)的资料,建立y的水质分析模型.

湖水浓度与影响因素数据表

x1

1.376

1.375

1.387

1.401

1.412

1.428

1.445

1.477

x2

0.450

0.475

0.485

0.500

0.535

0.545

0.550

0.575

x3

2.170

2.554

2.676

2.713

2.823

3.088

3.122

3.262

x4

0.8922

1.1610

0.5346

0.9589

1.0239

1.0499

1.1065

1.1387

y

5.19

5.30

5.60

5.82

6.00

6.06

6.45

6.95

解作出因变量y与各自变量的样本散点图

作散点图的目的主要是观察因变量y与各自变量间是否有比较好的线性关系,以便选择恰当的数学模型形式.图8-3、图8-4、图8-5、图8-6分别为y与x1、x2、x3、x4的散点图.从图中可以看出这些点大致分布在一条直线旁边,因此有较好的线性关系,可以采用线性回归.

图8-3y与x1的散点图图8-4y与x2的散点图

图8-5y与x3的散点图图8-6y与x4的散点图

在Matlab中实现回归的具体代码如下:

%%%输入数据

x1=[1.3761.3751.3871.4011.4121.4281.4451.477];

x2=[0.4500.4750.4850.5000.5350.5450.5500.575];

x3=[2.1702.5542.6762.7132.8233.0883.1223.262];

x4=[0.89221.16100.53460.95891.02391.04991.10651.1387];

x=[ones(8,1)x1'x2'x3'x4'];

y=[5.195.305.605.826.006.066.456.95];

%%%多元线性回归

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

得如下结果:

b=

-13.9849

13.1920

2.4228

0.0754

-0.1897

bint=

-26.0019-1.9679

1.413024.9711

-14.280819.1264

-1.48591.6366

-0.96380.5844

r=

-0.0618

0.0228

0.0123

0.0890

0.0431

-0.1473

0.0145

0.0274

rint=

-0.1130-0.0107

-0.16410.2098

-0.10510.1297

-0.25420.4321

-0.02920.1153

-0.2860-0.0085

-0.34780.3769

-0.19380.2486

stats=

0.984647.96540.00470.0123

故回归模型为:

此外,由stats的值可知

%%%残差分析,作残差图

rcoplot(r,rint)

图8-7

从残差图可以看出,除第一和第六个数据外,其余数据的残差离零点均较近,且残差的置信区间均包含零点.第一和第六个数据可视为异常点,将其去掉后重新拟合可得新的回归模型.

三、非线性回归

非线性回归模型的一般形式为

,其中

对回归系数

是非线性的.

非线性回归包括如下几个用于计算回归参数、预测输出、置信区间以及输出交互图像的函数.

1.非线性最小二乘参数估计

对于非线性方程的的系数估计通常采用最小二乘估计,又叫做非线性最小二乘回归.在Matlab中采用nlinfit实现,其调用格式如下:

beta=nlinfit(x,y,fun,beta0)

返回非线性回归方程系数的最小二乘估计值.非线性方程由fun给定,fun为用户提供形如

的函数,beta为待估系数

;beta0为回归系数

的初值.

[beta,r,J]=nlinfit(x,y,fun,beta0)

返回回归系数beta、残差r、Jacobi矩阵J.

2.最小二乘估计参数的置信区间

求非线性最小二乘估计的系数的置信区间用nlparci计算。

其输入为nlinfit函数的输出beta,r,J。

函数具体调用格式如下:

ci=nlparci(beta,r,J)

返回系数beta的95%置信区间.

ci=nlparci(beta,r,J,alpha)

返回系数beta的100(1-alpha)%置信区间.

3.最小二乘估计模型的预测输出及其置信区间

非线性最小二乘估计模型的预测输出及其置信区间用nlpredci计算.函数具体调用格式如下:

[ypred,delta]=nlpredci(fun,inputs,beta,r,J)

返回模型在对应inputs处的输出预测值ypred,给出95%的置信区间[ypred-delta,ypred+delta];

[ypred,delta]=nlpredci(fun,inputs,beta,r,J,alpha)

返回模型在对应inputs处的输出预测值ypred,给出100(1-alpha)%的置信区间[ypred-delta,ypred+delta].

4.非线性拟合和预测的交互图形工具

nlintool是非线性拟合和预测的交互图形工具.函数具体调用格式如下:

nlintool(x,y,fun,beta0)

返回x,y的非线性最小二乘法的曲线拟合图,并画出95%的置信区间;

nlintool(x,y,fun,beta0,alpha)

给出曲线拟合图及100(1-alpha)%的置信区间;

nlintool(x,y,fun,beta0,alpha,’xname’,’yname’)

给出曲线拟合图及100(1-alpha)%的置信区间,标出x,y变量名称.

例4在化工生产中获得的氯气的级分

随生产时间

下降,假定在

时,

之间有如下形式的非线性模型:

现收集43组数据,如下所示.要求利用该数据求

的值以及它们95%的置信区间.并画出拟合曲线.此处设

的初值分别为0.30,0.02.

8.00,8.00,10.00,10.00,10.00,10.00,12.00,12.00,12.00,14.00,14.00,14.00,16.00,16.00,16.00,18.00,18.00,

20.00,20.00,20.00,20.00,22.00,22.00,24.00,24.00,24.00,26.00,26.00,26.00,28.00,28.00,30.00,30.00,30.00,

32.00,32.00,34.00,36.00,36.00,38.00,38.00,40.00,42.00

0.49,0.49,0.48,0.47,0.48,0.47,0.46,0.46,0.45,0.43,0.45,0.43,0.43,0.44,0.43,0.43,0.46,0.42,0.42,0.43,0.41,

0.41,0.40,0.42,0.40,0.40,0.41,0.40,0.41,0.41,0.40,0.40,0.40,0.38,0.41,0.40,0.40,0.41,0.38,0.40,0.40,0.39,0.39

解首先编写函数fun,表示出需要拟合模型的函数形式.

%%%拟合模型的函数形式

functiony=fun(beta0,x)

a=beta0

(1);

b=beta0

(2);

y=a+(0.49-a)*exp(-b*(x-8));

编写程序对数据进行最小二乘拟合和处理

%%%输入数据

x=[8.008.0010.0010.0010.0010.0012.0012.0012.0014.0014.0014.0016.0016.0016.0018.0018.0020.0020.0020.0020.0022.0022.0024.0024.0024.0026.0026.0026.0028.0028.0030.0030.0030.0032.0032.0034.0036.0036.0038.0038.0040.0042.00];

y=[0.490.490.480.470.480.470.460.460.450.430.450.430.430.440.430.430.460.420.420.430.410.410.400.420.400.400.410.400.410.410.400.400.400.380.410.400.400.410.380.400.400.390.39];

beta0=[0.300.02];%%%系数初值

[beta,r,J]=nlinfit(x,y,@fun,beta0);%%%系数最小二乘估计值为beta

beta

ci=nlparci(beta,r,J);%%%求95%置信区间

nlintool(x,y,@fun,beta0,0.05,'生产时间x','氯气级分y');%%%显示拟合结果和置信区间

得如下结果:

beta=

0.38960.1011

ci=

0.38050.3988

0.07710.1251

可知

的最小二乘估计值分别为0.3896和0.1011,它们95%的置信区间分别为[0.3805,0.3988]和[0.0771,0.1251].所以用最小二乘法对该模型系数进行估计,最终的模型表达式为

最终得到的拟合图如下所示.

图8-8

在图8-8中,中间的实线为拟合曲线,两侧的虚线标出其95%置信区间.

四、逐步回归

实际问题中影响因变量的因素可能很多,希望从中挑选出影响显著的自变量来建立回归模型.这就涉及到了变量选择的问题.逐步回归就是一种从众多变量中有效地选择重要变量的方法.

逐步回归的命令是stepwise,它提供了一个交互式画面,通过此工具可以自由地选择变量,进行统计分析,其调用格式为stepwise(x,y,inmodel,alpha).

其中x表示自变量数据,

阶矩阵;y表示因变量数据,

阶矩阵;inmodel表示矩阵的列数指标(缺省时设定为全部自变量);alpha表示显著性水平(缺省时为0.5).

运行stepwise命令时产生三个图形窗口:

StepwisePlot,StepwiseTable,StepwiseHistory.

在StepwisePlot窗口,虚线表示该变量的拟合系数与0无显著差异,实线表示有显著差异,红色线表示从模型中移去的变量,蓝色线表示存在模型中的变量,单击一条会改变其状态.

StepwiseTable窗口中列出了一个统计表,包括回归系数及其置信区间,以及模型的统计量剩余标准差(RMSE)、相关系数(R-square)、

值、与

对应的概率

.

例5水泥凝固时放出的热量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

解在Matlab中实现逐步回归的具体代码如下:

%%%数据输入:

x1=[7111117113122111110]';

x2=[26295631525571315447406668]';

x3=[615886917221842398]';

x4=[6052204733226442226341212]';

x=[x1x2x3x4];

y=[78.574.3104.387.695.9109.2102.772.593.1115.983.8113.3109.4]';

%%%逐步回归

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

stepwise(x,y)

得图8-9所示的结果.

图8-9

从图8-9中可以看出,x3、x4的

值较大,其对模型影响不显著.

若要移去x3、x4两个变量,在Matlab中输入:

stepwise(x,y,[1,2])

得图8-10所示的结果.

图8-10

移去变量x3和x4后模型具有显著性,虽然剩余标准差(RMSE)没有太大的变化,但是统计量

的值明显增大,因此新的回归模型更好.

对变量y和x1、x2作线性回归,在Matlab中输入:

X=[ones(13,1)x1x2];

b=regress(y,X)

得结果:

b=

52.5773

1.4683

0.6623

故最终模型为:

y=52.5773+1.4683x1+0.6623x2.

讨论题

1.根据经验,在人的身高相等的情况下,血压的收缩压y与体重x1,年龄x2有关,现在收集了13个男子的有关数据,如下表所示,试建立y与x1、x2的回归模型.

x1

76.0

91.5

85.5

82.5

79.0

80.5

74.5

79.0

85.0

76.5

82.0

95.0

92.5

x2

50

20

20

30

30

50

60

50

40

55

40

40

20

y

120

141

124

126

117

125

123

125

132

123

132

155

147

2.下表为1980-1991年间以1987年不变价计算的美国个人消费支出y与美国国内生产总值x的数据(单位:

10亿美元).

1)在直角坐标系下,作x与y的散点图,并判断y与x是否存在线性相关关系?

2)试求y与x的一元线性回归方程.

3)对所得的回归方程作显著性检验(

).

4)若x0=4500,试求对应的y0的点预测和包含概率为95%的区间预测.

年份

y

x

年份

y

x

1980

2447.1

3776.3

1986

2969.1

4404.5

1981

2476.9

3843.1

1987

3052.2

4539.9

1982

2503.7

3760.3

1988

3162.4

4718.6

1983

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

当前位置:首页 > 初中教育 > 政史地

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

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