试验43多元线性回归模型Word文档格式.docx
- 文档编号:20177512
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:21
- 大小:198.83KB
试验43多元线性回归模型Word文档格式.docx
《试验43多元线性回归模型Word文档格式.docx》由会员分享,可在线阅读,更多相关《试验43多元线性回归模型Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
104
60
56
38
36
32
21
19
试求:
(1)y与t的二次函数与三次函数关系;
(2)在同一坐标系内作出原始数据与拟合结果的散点图;
(3)建立评价标准判断二次函数与三次函数拟合效果;
(4)根据问题的实际意义你认为选择多项式函数是否合适?
解:
首先做散点图:
(见图4.1)
t=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
y=[3522111971601421061046056383632211915];
plot(t,y,'
-o'
)
图4.1原始数据散点图
根据题目要求,求y与t的二次函数关系,输入命令:
p=polyfit(t,y,2)
得到p=1.9897-51.1394347.8967,
即二次函数为:
同理可得三次函数为:
在同一坐标系内作出原始数据、二次函数、三次函数的图形(见图4.2)。
继续输入命令:
y2=1.9897*t.^2-51.1394*t+347.8967
;
y3=-0.1777*t.^3+6.2557*t.^2-79.3303*t+391.4095
*'
t,y2,'
o'
t,y3,'
+'
),
legend('
原始数据'
'
二次函数'
三次函数'
)
图4.2原始数据与拟合曲线图形
我们分别计算二次函数与三次函数的可决系数:
R2=1-sum((y-y2).^2)/sum((y-mean(y)).^2),
R3=1-sum((y-y3).^2)/sum((y-mean(y)).^2)
因为R3=0.9673>
0.9530=R2,所以三次函数拟合效果优于二次函数.
从问题的实际意义可知,随着照射次数的增加残留的细菌数减少,且开始时减少幅度较大,但随着照射次数增加,减少的速度变得缓慢.而多项式函数随着自变量的增加,函数值趋向于无穷大,因此如果在有限的照射次数内用多项式拟合是可以的,如果照射次数超过15次,则拟合效果开始变差,比如t=16,用二次函数计算出细菌残留数为39.0396,显然与实际不相符合.
实验4.2一元非线性回归模型
熟练掌握参数初始值的数值计算以及非线性拟合的Matlab命令,并能根据输出结果计算均方误差及可决系数,并能据此进行拟合效果分析。
解决一元非线性回归模型有以下几个步骤:
(1)首先作出散点图,确定函数
的类别。
对非线性拟合,下面的图形给出了常见曲线与方程的对应关系:
幂函数:
指数函数:
双曲线函数:
对数函数:
S形曲线:
具有S形曲线的常见方程有:
罗杰斯蒂(logistic)模型:
龚帕兹(Gomperty)模型:
理查德(Richards)模型:
威布尔(Weibull)模型:
(2)①根据已知数据确定待定参数的初始值。
正确输入函数。
利用非线性拟合命令计算最佳参数。
(3)根据可决系数,比较拟合效果。
在Matlab中进行非线性拟合的命令如下:
[b,r,J]=nlinfit(x,y,fun,b0)
其中,x,y为原始数据,fun是在M文件中定义的函数,b0是函数中参数的初始值;
b为参数的最优值,r是各点处的拟合残差,J为雅克比矩阵的数值.
注意:
在6.1版本中输入x是列向量,y是行向量,而在7.0以上版本要求x,y要一致.
【例题4.2】炼钢厂出钢时所用盛钢水的钢包,由于钢水对耐火材料的侵蚀,容积不断增大,我们希望找出使用次数与增大容积之间的函数关系.实验数据如表4.2:
表4.2钢包使用次数与增大容积
使用次数
增大容积
6.42
8.2
9.58
9.5
9.7
9.93
9.99
16
10.49
10.59
10.6
10.8
10.9
10.76
(1)分别选择函数
、
拟合钢包容积与使用次数的关系,在同一坐标系内作出函数图形;
(2)计算四种拟合曲线的均方差,并以此作为判别标准确定最佳拟合曲线
(3)二次多项式拟合的效果如何?
分析内在原因
x1=[2:
16];
y1=[6.42,8.2,9.58,9.5,9.7,10,9.93,9.99,10.49,10.59,10.6,10.8,10.6,10.9,10.76];
b01=[0.1435,0.084];
%初始参数值
fun1=inline('
x./(b
(1)+b
(2)*x)'
b'
x'
);
[b1,r1,j1]=nlinfit(x1'
y1,fun1,b01);
y=x1./(0.1152+0.0845*x1);
subplot(221)
plot(x1,y1,'
x1,y,'
-or'
y=x/(ax+b)'
b02=[112,0.4,0.2];
fun2=inline('
b
(1)*(1-b
(2)*exp(-b(3)*x))'
[b2,r2,j2]=nlinfit(x1'
y1,fun2,b02);
f=10.5975*(1-0.9287*exp(-0.4531*x1));
subplot(222)
x1,f,'
y=a(1+bexp(cx)'
p=polyfit(x1,y1,2);
g=-0.0290*x1.^2+0.7408*x1+6.0927;
subplot(223)
x1,g,'
b04=[112,-0.11];
fun4=inline('
b
(1)*exp(b
(2)./x)'
[b4,r4,j4]=nlinfit(x1'
y1,fun4,b04);
h=11.6037*exp(-1.0641./x1);
subplot(224)
x1,h,'
y=aexp(b/x)'
图4.3原始数据与四种拟合曲线图
为了比较上述四条曲线拟合的效果,我们首先确定如下的评价准则:
均方残差
越小越好
是原始数据,
是拟合曲线在
处的函数值,
是原始数据的个数,
是拟合曲线中参数个数.我们计算均方残差程序如下:
[sum(r1.^2)/(15-2),sum(r2.^2)/(15-3),sum((y1-g).^2)/(15-3),sum(r4.^2)/(15-2)]
ans=0.09210.08750.23060.0664
由此可知选择函数
进行拟合效果最好,而多项式的拟合效果最差.其原因在于多项式没有任何渐近线,而从实际问题可知钢包使用的年龄是有限的,因此选择函数应该考虑到其右上方有一条水平渐近线.
结果说明:
(1)在Matlab6.1版本中输入x是列向量,y是行向量,而在7.0以上版本要求x,y应同为行向量(或同为列向量).
(2)如果确定初始参数值时遇到复杂的方程组,我们可以根据第三章中介绍的计算方程零点的方法,利用Matlab计算初始值.
【例4.3】表4.3给出了淮南市从1978年到20001年国民生产总值、第一产业、第二产业以及第三产业的数据,根据数据分析解决以下问题:
(1)将各指标进行标准化,即减去各自的均值再比上标准差,计算各指标之间的相关系数矩阵;
哪两个指标之间具有高度线性关系?
(2)利用原始数据建立第一产业与第二产业之间的函数关系,在同一坐标系内作出原始数据与拟合曲线的散点图,计算均方误差、决定系数并预测2002年的第二产业生产总值.
(3)利用标准化后的数据解决
(2)中的问题,结果是否比用原始数据要好?
为什么?
表4.3淮南市部分经济指标
年份
国民生产总值
第一产业
第二产业
第三产业
1978
78258
9230
51827
17201
1979
81785
10007
52274
19504
1980
87645
10751
55502
21392
1981
99072
17263
58182
23627
1982
105386
17282
62020
26084
1983
118832
20961
66988
30883
1984
148277
25755
86215
36307
1985
166410
30103
93586
42721
1986
189776
35906
101085
52785
1987
208477
43335
104604
60538
1988
258354
45125
146327
66902
1989
284792
52227
164217
68348
1990
306605
57351
169721
79533
1991
275928
27740
173600
74588
1992
351233
55847
200975
94411
1993
532686
80047
324491
128148
1994
683059
124984
392063
166012
1995
834994
135121
472819
227054
1996
1063871
154935
603812
305124
1997
1187782
169629
644155
373998
1998
1203396
178378
603230
421788
1999
1238310
187165
595097
456048
2000
1259965
174217
586677
499071
2001
1348558
170622
638398
539538
2002
1521178
187438
740059
593681
题目分析:
本题的第一问是解决大样本数据的处理问题,利用zscore命令即可解决,而计算指标之间的相关系数矩阵以后,可以获知那些指标之间有较强的线性相关性,若有两个非平稳的经济指标,随着时间的推移各自变化比较复杂,但是两者之间存在长期的均衡关系则可以利用回归分析建立两者之间的函数关系.从相关系数矩阵(表4.4)和散点图(图4.4)可以看出国民生产总值与各产业都具有较强的线性关系,第一产业与第二产业以及第三产业之间也具有较大的线性相关.
计算程序:
首先将原始数据输入
a=[7825892305182717201
81785100075227419504
87645107515550221392
99072172635818223627
105386172826202026084
118832209616698830883
148277257558621536307
166410301039358642721
1897763590610108552785
2084774333510460460538
2583544512514632766902
2847925222716421768348
3066055735116972179533
2759282774017360074588
3512335584720097594411
53268680047324491128148
683059124984392063166012
834994135121472819227054
1063871154935603812305124
1187782169629644155373998
1203396178378603230421788
1238310187165595097456048
1259965174217586677499071
1348558170622638398539538];
z=zscore(a);
%将原始数据标准化
corrcoef(a);
%计算各指标的相关系数,得到如下结果
表4.4国民生产总值与各产业的相关系数
1.0000
0.9891
0.9926
0.9821
0.9884
0.9547
0.9530
建立第一产业与第二产业的函数关系程序
[b,bint,r,rint,s]=regress(a(1:
24,3),[ones(24,1),a(1:
24,2)]);
作图程序
subplot(221),plot(a(1:
24,2),a(1:
24,3),'
),legend('
一产与二产'
subplot(222),plot(a(1:
24,1),'
-*'
第一产业'
subplot(223),plot(a(1:
第二产业'
t=1:
24;
y=a(1:
24,3);
x=a(1:
24,2);
subplot(224),plot(t,y,'
t,3.5*x+2819.4,'
原始'
拟合'
均方差与可决系数计算程序
sum(r.^2)/22,
1-sum(r.^2)/sum((y-mean(y)).^2)
利用2002年第一产业的产值187438,代入拟合曲线计算出2002年淮南市第二产业生产总值为658850实际数值为740059,相对误差为0.1097
图4.4国民生产总值与第二产业关系
(1)建立一次函数可以利用多项式回归的命令,本题我们利用了多元线性回归的命令;
(2)我们用第一产业的一次函数近似计算第二产业生产总值,得到的绝对误差较大,其中的原因可以从第一产业与第二产业的图形中看出,第一产业在1991年处有一个异常点这是由于该年淮河洪灾造成淮南地区严重减产,而第二产业从1997年开始逐年下降直到2001年才出现上升,因此如果我们选取虚拟变量纠正异常点,或者分段拟合就可以进一步缩小误差。
实验4.3多元线性回归模型
(1)熟练掌握多元线性回归的Matlab命令;
计算残差平方和与决定系数.
(2)掌握残差分析方法,通过删除异常点改进模型.
(3)通过回归模型的参数对实际问题给出合理的解释.
设Y是一个可观测的随机变量,如果其取值受到P个非随机变量
和随机误差
的影响,且有
是未知参数;
.则称该模型为多元线性回归模型,而称
为自变量(解释变量),
为因变量(内生变量、被解释变量).
1.多元线性回归模型的Matlab实现
Matlab中实现多元线性回归的命令如下:
[b,bint,r,rint,s]=regress(y,X,alpha)
输入:
y—因变量(列向量),X—1与自变量组成的矩阵,Alpha——显著性水平(缺省时设定为0.05)
输出:
b
:
回归方程的系数
,bint:
b的置信区间,r:
残差(列向量),rint:
r的置信区间
s:
4个统计量:
决定系数
,F值,F(1,n-2)分布大于F值的概率p,p<
时,回归模型有效,以及均方差sum(r.^2)/(n-k-1),此外,Matlab中还有一个做出残差与残差置信区间图形的命令,如果有异常值,则该点变成红色.
rcoplot(r,rint)
通常,进行多元线性回归的步骤如下:
(1)做自变量与因变量的散点图,根据散点图的形状决定是否可以进行线性回归;
(2)输入自变量与因变量;
(3)利用命令:
[b,bint,r,rint,s]=regress(y,X,alpha),rcoplot(r,rint)
得到回归模型的系数以及异常点的情况;
如果原始数据含有异常点,则应删除异常点或者引入虚拟变量加以改进模型;
(4)对回归模型进行检验
首先进行残差的正态性检验:
jbtest,ttest
其次进行残差的异方差检验(通常利用戈德菲尔德一匡特(Goldfeld—Quandt)检验),
如果存在异方差,则应对模型进行调整;
最后对模型的残差进行自相关性的DW检验,如果存在自相关,则通过广义差分变换消除自相关性;
(5)对模型的结果给出合理的解释
戈德菲尔德检验,简称为G—Q检验.为了检验异方差性,将样本按解释变量排序后分成两部分,再利用样本1和样本2分别建立回归模型,并求出各自的残差平方和RSSl和RSS2。
如果误差项的离散程度相同(即为同方差的),则RSSl和RSS2的值应该大致相同;
若两者之间存在显著差异,则表明存在异方差.检验过程中为了“夸大”残差的差异性,一般先在样本中部去掉C个数据(通常取c=n/4),再利用F统计量判断差异的显著性:
其中,n为样本容量,k为自变量个数.
然后对残差进行自相关性的检验,通常我们利用DW检验进行残差序列自相关性的检验。
该检验的统计量为:
为残差序列,对于计算出的结果通过查表决定是否存在自相关性。
若
则不存在自相关性;
,则存在一阶正相关;
,则存在一阶负相关;
,或
,则无法判断是否存在自相关。
【例4.4】根据下面的数据建立血压与年龄、体重指数、吸烟习惯之间的回归模型
表4.5血压与年龄、体重指数、吸烟习惯数据
序号
血压
年龄
体重指数
吸烟习惯
144.0000
39.0000
24.2000
215.0000
47.0000
31.1000
138.0000
45.0000
22.6000
145.0000
24.0000
162.0000
65.0000
25.9000
142.0000
46.0000
25.1000
170.0000
67.0000
29.5000
124.0000
42.0000
19.7000
158.0000
27.2000
154.0000
56.0000
19.3000
64.0000
28.0000
150.0000
25.8000
140.0000
59.0000
27.3000
110.0000
34.0000
20.1000
128.0000
21.7000
130.0000
48.0000
22.2000
17
135.0000
27.4000
18
114.0000
18.0000
18.8000
116.0000
20.0000
20
19.0000
21.5000
136.0000
36.0000
25.0000
22
50.0000
26.2000
23
120.0000
23.5000
24
21.0000
20.3000
25
160.0000
44.0000
27.1000
26
53.0000
28.6000
27
63.0000
28.3000
28
29.0000
22.0000
29
125.0000
25.3000
30
175.0000
69.0000
注:
吸烟习惯0表示不吸烟,1表示吸烟;
体重指数=体重(kg)/身高(m)的平方
为了确定血压与上述三个指标之间存在何种关系,我们首先做出血压与年龄,血压与体重指数之间的散点图如下:
图4.5血压与体重指数的散点图图4.6血压与年龄的散点图
从图中可以看出以下几点:
(1)随着年龄的增长血压有增高的趋势,随着体重指数的增长血压也有增高的趋势;
(2)总体上看血压与年龄、血压与体重指数存在一定的线性相关性,所以我们建立多元线性回归模型:
回归系数
由数据估计,是随机误差.
利用Matlab软件,我们得到如下结果:
表4.6回归模型的系数、系数置信区间与统计量
回归系数估计值
回归系数置信区间
45.3636
[3.553787.1736]
0.3604
[-0.07580.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 试验 43 多元 线性 回归 模型
![提示](https://static.bdocx.com/images/bang_tan.gif)