第八章统计回归模型.docx
《第八章统计回归模型.docx》由会员分享,可在线阅读,更多相关《第八章统计回归模型.docx(24页珍藏版)》请在冰豆网上搜索。
第八章统计回归模型
第八章统计回归模型
回归分析是研究一个变量
与其它若干变量
之间相关关系的一种数学工具.它是在一组试验或观测数据的基础上,寻找被随机性掩盖了的变量之间的依存关系.粗略的讲,可以理解为用一种确定的函数关系去近似代替比较复杂的相关关系.这个函数称为回归函数.
回归分析所研究的主要问题是如何利用变量
、
的观察值(样本),对回归函数进行统计推断,包括对它进行估计及检验与它有关的假设等.
回归分析包含的内容广泛.此处将讨论多项式回归、多元线性回归、非线性回归以及逐步回归.
一、多项式回归
(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缺省时为.
4.交互式画图工具polytool,其具体调用格式如下:
polytool(x,y,m);
polytool(x,y,m,alpha);
用m次多项式拟合x,y的值,默认值为1,alpha为显著性水平,默认值为.
例1观测物体降落的距离s与时间t的关系,得到数据如下表,求s.
t(s)
1/30
2/30
3/30
4/30
5/30
6/30
7/30
s(cm)
t(s)
8/30
9/30
10/30
11/30
12/30
13/30
14/30
s(cm)
解根据数据的散点图,应拟合为一条二次曲线.选用二次模型,具体代码如下:
%%%输入数据
t=1/30:
1/30:
14/30;
s=[];
%%%多项式系数拟合
[p,S]=polyfit(t,s,2);
则得回归模型为:
.
%%%y的拟合值及预测值y的置信半径delta
[y,dalta]=polyconf(p,t,S);
得结果如下:
y=
Columns1through11
Columns12through14
dalta=
Columns1through11
Columns12through14
%%%交互式画图
polytool(t,s,2);
polytool所得的交互式图形如图8-1所示.
图8-1
(2)多元二项式回归
多元二项式回归模型的一般形式为
.
多元二项式回归命令:
rstool(x,y,’model’,alpha)x表示nm矩阵;y表示n维列向量;alpha为显著性水平(缺省时为;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”下方的数据变为,即预测出平均收入为1000、价格为6时的商品需求量为.
在画面左下方单击”Export”,在出现的窗体中单击”ok”按钮,则beta、rmse和residuals都传送到Matlab工作区中.
在Matlab工作区中输入命令:
beta,rmse,得结果:
beta=
rmse=
故回归模型为:
,
剩余标准差为,说明此回归模型的显著性较好.
二、多元线性回归
多元线性回归模型的一般形式为
.
在Matlab统计工具箱中使用函数regress实现多元线性回归.具体调用格式为:
b=regress(Y,X)
[b,bint,r,rint,stats]=regress(Y,X,alpha)
其中
,
.对于一元线性回归,取
即可.b为输出向量;b,bint表示回归系数估计值和它们的置信区间;r表示残差;rint表示残差的置信区间;stats表示用于检验回归模型的统计量,有四个数值:
相关系数
、
值、与
值对应的概率
、
的值.相关系数
越接近1,说明回归方程越显著;
时拒绝
,
越大,说明回归方程越显著;与
对应的概率
时拒绝
,回归模型成立;alpha表示显著性水平(缺省时为.
残差及其置信区间可以用命令rcoplot(r,rint)画出.
例3已知某湖泊八年来湖水中COD浓度实测值(y)与影响因素,如湖区工业产值(x1)、总人口数(x2)、捕鱼量(x3)、降水量(x4)的资料,建立y的水质分析模型.
湖水浓度与影响因素数据表
x1
x2
x3
x4
y
解作出因变量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=[];
x2=[];
x3=[];
x4=[];
x=[ones(8,1)x1'x2'x3'x4'];
y=[];
%%%多元线性回归
[b,bint,r,rint,stats]=regress(y',x);
得如下结果:
b=
bint=
r=
rint=
stats=
故回归模型为:
,
此外,由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%的置信区间.并画出拟合曲线.此处设
,
的初值分别为,.
,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
,,,,,,,
,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,
解首先编写函数fun,表示出需要拟合模型的函数形式.
%%%拟合模型的函数形式
functiony=fun(beta0,x)
a=beta0
(1);
b=beta0
(2);
y=a+*exp(-b*(x-8));
编写程序对数据进行最小二乘拟合和处理
%%%输入数据
x=[];
y=[];
beta0=[];%%%系数初值
[beta,r,J]=nlinfit(x,y,@fun,beta0);%%%系数最小二乘估计值为beta
beta
ci=nlparci(beta,r,J);%%%求95%置信区间
nlintool(x,y,@fun,beta0,,'生产时间x','氯气级分y');%%%显示拟合结果和置信区间
得如下结果:
beta=
ci=
可知
与
的最小二乘估计值分别为和,它们95%的置信区间分别为[,]和[,].所以用最小二乘法对该模型系数进行估计,最终的模型表达式为
最终得到的拟合图如下所示.
图8-8
在图8-8中,中间的实线为拟合曲线,两侧的虚线标出其95%置信区间.
四、逐步回归
实际问题中影响因变量的因素可能很多,希望从中挑选出影响显著的自变量来建立回归模型.这就涉及到了变量选择的问题.逐步回归就是一种从众多变量中有效地选择重要变量的方法.
逐步回归的命令是stepwise,它提供了一个交互式画面,通过此工具可以自由地选择变量,进行统计分析,其调用格式为stepwise(x,y,inmodel,alpha).
其中x表示自变量数据,
阶矩阵;y表示因变量数据,
阶矩阵;inmodel表示矩阵的列数指标(缺省时设定为全部自变量);alpha表示显著性水平(缺省时为.
运行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
解在Matlab中实现逐步回归的具体代码如下:
%%%数据输入:
x1=[7111117113122111110]';
x2=[26295631525571315447406668]';
x3=[615886917221842398]';
x4=[6052204733226442226341212]';
x=[x1x2x3x4];
y=[]';
%%%逐步回归
%%%先在初始模型中取全部自变量:
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=
故最终模型为:
y=++.
讨论题
1.根据经验,在人的身高相等的情况下,血压的收缩压y与体重x1,年龄x2有关,现在收集了13个男子的有关数据,如下表所示,试建立y与x1、x2的回归模型.
x1
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
1986
1981
1987
1982
1988
1983
1989
1984
1990
1985
1991
3.某地人事部门研究中学教师的薪金与他们的资历、性别、教育程度、及培训情况等因素之间的关系,要建立一个数学模型,分析人事策略的合理性,特别是考察女教师是否受到不公正的待遇,以及她们的婚姻状况是否会影响收入.为此,从当地教师中随机选中3414位进行观察,然后从中保留了90个观察对象,得到关键数据如下表.
Z
x1
x2
x3
x4
x5
x6
x7
998
7
0
0
0
0
0
0
1015
14
1
1
0
0
0
0
1028
18
1
1
0
1
0
0
1250
19
1
1
0
0
0
0
1028
19
0
1
0
1
0
0
1028
19
0
0
0
0
0
0
1018
27
0
0
0
0
0
1
1072
30
0
0
0
0
0
0
1290
30
1
1
0
0
0
0
1204
30
0
1
0
0
0
0
1352
31
0
1
2
0
1
0
1204
31
0
0
0
1
0
0
1104
38
0
0
0
0
0
0
1118
41
1
1
0
0
0
0
1127
42
0
0
0
0
0
0
1259
42
1
1
0
1
0
0
1127
42
1
1
0
0
0
0
1127
42
0
0
0
1
0
0
1095
47
0
0
0
0
0
1
1113
52
0
0
0
0
0
1
1462
52
0
1
2
0
1
0
1182
54
1
1
0
0
0
0
1404
54
0
0
0
1
0
0
1182
54
0
0
0
0
0
0
1594
55
1
1
2
1
1
0
1459
66
0
0
0
1
0
0
1237
67
1
1
0
1
0
0
Z
x1
x2
x3
x4
x5
x6
x7
1237
67
0
1
0
1
0
0
1496
75
0
1
0
0
0
0
1424
78
1
1
0
1
0
0
1424
79
0
1
0
0
0
0
1347
91
1
1
0
1
0
0
1343
92
0
0
0
0
0
1
1310
94
0
0
0
1
0
0
1814
103
0
0
2
1
1
0
1534
103
0
0
0
0
0
0
1430
103
1
1
0
0
0
0
1439
111
1
1
0
1
0
0
1946
114
1
1
3
1
1
0
2216
114
1
1
4
1
1
0
1834
114
1
1
4
1
1
1
1416
117
0
0
0
0
0
1
2052
139
1
1
0
1
0
0
2087
140
0
0
2
1
1
1
2264
154
0
0
2
1
1
1
2201
158
1
1
4
0
1
1
2992
159
1
1
5
1
1
1
1695
162
0
1
0
0
0
0
1792
167
1
1
0
1
0
0
1690
173
0
0
0
0
0
1
1827
174
0
0
0
0
0
1
2604
175
1
1
2
1
1
0
1720
199
0
1
0
0
0
0
1720
209
0
0
0
0
0
0
2159
209
0
1
4
1
0
0
1852
210
0
1
0
0
0
0
2104
213
1
1
0
1
0
0
1852
220
0
0
0
0
0
1
1852
222
0
0
0
0
0
0
2210
222
1
1
0
0
0
0
2266
223
0
1
0
0
0
0
2027
223
1
1
0
0
0
0
1852
227
0
0
0
1
0
0
1852
232
0
0
0
0
0
1
1995
235
0
0
0
0
0
1
2616
245
1
1
3
1
1
0
2324
253
1
1
0
1
0
0
1852
257
0
1
0
0
0
1
2054
260
0
0
0
0
0
0
Z
x1
x2
x3
x4
x5
x6
x7
2617
284
1
1
3
1
1
0
1948
287
1
1
0
0
0
0
1720
290
0
1
0
0
0
1
2604
308
1
1
2