首页 理论教育 二次回归模型及最优回归模型

二次回归模型及最优回归模型

时间:2023-02-12 理论教育 版权反馈
【摘要】:另外,逐步回归法受检验的显著性水平α影响较大,α较大将会有较多的自变量引入回归方程,α较小将会导致一些重要的自变量被剔除。

4.5 二次回归模型及最优回归模型

有时多元线性回归模型(4-12)不能反映实际情况,即在对回归分析得到的回归方程进行显著性检验时不能通过统计检验。这时意味着原来的假设(即因变量与各自变量呈线性关系的假设不成立),需要在回归模型中引入其他的项目,二次回归模型可弥补此不足。若有m个因素x1,…,Xm,则二次回归模型为

img231

其中β0,{β1},{βii},{βij}为回归系数(i,j=1,2,…,m),其个数为1+m(m+3)/2,ε为随机误差。回归系数的求解无法直接写出计算公式,需要根据残差平方和最小的原则采用最优化方法或求解非线性方程(组)的方法求得。若使回归系数的估计值有可能,必要条件为n>1+m(m+3)/2。当m较大时通常不能满足这个必要条件。于是有必要从式(4-20)中选择贡献显著的项,删除不重要的项。遇到实际问题时需要考虑高阶项,如XiXjXkimg232img233等,这时如何通过自变量的筛选来提高回归方程的显著性以至找到最优回归方程是人们关心的问题。

何谓最优回归方程,在理论上尚无明确的标准。但是,在进行变量筛选以获得最优回归方程时,以下几个原则是必须考虑的。

第一,变量完备,回归方程中尽可能包含对因变量有实际影响的自变量。

第二,模型从简,回归方程中所包含的自变量的个数尽可能少。

第三,充分拟合,回归方程的剩余方差尽可能小。

但这几点在实践中可能很难同时满足,因此,根据统计分析和问题的实际背景求得某种平衡才是最优回归方程概念的实质。在回归分析中,有许多有效的筛选变量的技术,如前进法、后退法、逐步回归法、最优子集法等。单从统计分析的角度,人们常用的选择最优回归方程的方法是逐步回归法,该方法的操作要点如下。

第一,根据问题所属专业领域的理论和经验提出对因变量可能有影响的所有自变量。

第二,计算每一个自变量对因变量的相关系数,按其绝对值从大到小排列。

第三,取相关系数绝对值最大的那个自变量来建立一元线性回归模型,检验所得回归方程的显著性,若检验表明回归效果显著则转入第四步,若检验表明回归效果不显著则停止建模。

第四,进行变量的追加、剔除和回归方程的更新操作。

若检验表明回归效果显著,则按相关系数绝对值由大到小的顺序逐一将相应的自变量引入回归方程;每引入一个新的自变量,对新回归方程中每一个自变量都要进行显著性检验。

若检验表明回归效果不显著,则剔除对因变量影响最小的自变量,更新回归方程;对更新后的回归方程中的每一个自变量仍要进行显著性检验、剔除、更新,直到回归方程中的每一个自变量都显著为止,再引入前面未曾引入的自变量。

以次类推,直到无法剔除已经引入的自变量也无法引入新的自变量为止。

需要指出的是,逐步回归法不能保证得到真正的最优回归方程,但此法是计算量较小、预测效果较好、有工具软件支持、应用最多的一种方法。另外,逐步回归法受检验的显著性水平α影响较大,α较大将会有较多的自变量引入回归方程,α较小将会导致一些重要的自变量被剔除。

设回归模型中已经引入L个自变量,其回归方程的残差平方和

img234,将方程中的某一个自变量Xj删除,将删除Xj后的残差平方和记为Sj

可以证明,若自变量Xj与因变量Y无关,则

img235

若Xj与因变量Y有关,则

img236

类似地,对于尚未引进回归方程的自变量Xj,可以假设它已引进回归方程,然后计算相应统计量Fj,用Fj的大小来判断这个自变量作用的大小。

具体应用逐步回归时,需要事先给定一个引入变量的F水平限Fin和一个删除变量的水平限Fout,从一个不含任何自变量的方程出发,首先在所有尚未引进方程的自变量中,找出Fj值最大的一个,如果Fj>Fin就引入自变量Xj;然后,在所有已引进的方程的自变量中,找出Fj最小的一个,如果Fj≤Fout,就删除自变量Xj。这样逐步引入、删除,直到方程外没有一个自变量的Fj大于Fin,方程内没有一个自变量的Fj小于Fout为止。

为了避免出现一个自变量反复引入、删除的现象,事先给定的水平限应满足Fin≥Fout≥0。另外,为了避免引入自变量后产生复共线性(即自变量之间线性相关),使回归分析计算误差增大或溢出,还必须事先给定一个容许值的水平界限0≤Tol≤0.1,在逐步回归过程中,如果引进一个自变量时,计算公式中分母的绝对值小于Tol,就不引进这个变量。

MATLAB提供了两个用逐步回归法建立多元线性回归模型的函数stepwisefit和stepwise,这两个函数的功能是一样的。前者是逐步回归法建模的集成命令,使用者只需给出必要的输入参数,调用这一函数将自动完成建模工作,返回所谓最优回归方程的相关信息;后者是逐步回归法建模的交互式图形环境创建指令。

下面简要介绍stepwisefit函数的使用方法,stepwise函数的使用方法可调用MATLAB中的help查询。

stepwisefit函数完整的调用格式是

[B,SE,PVAL,inmodel,stats,nextstep,history]=stepwisefit(X,y,Param1,value1,Param2,value2,...);

其中,输入参数

X是p个自变量的n个观测值构成的n×p矩阵。

y是因变量的n个观测值构成的n×1向量。

Paramk是第k个引用参数,valuek是其取值,通常可以缺省。这里只介绍三个可能会用到的引用参数。

penter设置回归方程显著性检验的显著性概率上限(即Fin),缺省设为0.05。

premove设置回归方程显著性检验的显著性概率下限(即Fout),缺省设置为0.10。

display用来指明是否强制显示建模过程信息,取值为‘on’(显示,缺省设置)和‘off’(不显示)。

输出参数

B是不包含常数项的模型系数;常数项在输出参数intercept中。

SE是模型系数的标准误差。

PVAL是各个自变量的显著性概率。

inmodel是各个自变量在最终回归方程中地位的说明(1表示在方程中,0表示不在方程中)。

stats是一个构架数组,包括:source,建模方法的说明,‘stepwisefit’表示逐步回归法;dfe,最优回归方程的剩余自由度;df0,最优回归方程的回归自由度;SStotal,最优回归方程的总偏差平方和;SSresid,最优回归方程的剩余平方和;fstat,最优回归方程的F统计量的值;pval,最优回归方程的显著性概率;rmse,最优回归方程的标准误差估计;TSTAT,每个自变量显著性检验的T统计量的值;等。

nextstep表示对是否还有需要引入回归方程的自变量的说明(0表示没有)。

history是一个构架数组,包括:rmse,每一步的模型标准误差估计;df0,每一步引入方程的变量个数;in,记录了按相关系数绝对值大小逐步引入回归方程的变量的次序。

需要指出的是,在调用stepwisefit函数时,有一些信息重复输出,有一些信息对于一般使用者并不是很重要的,因此,这里给出关于输出信息显示的一点建议:①引用参数‘display’设置为‘off’;②选择stepwisefit函数的所有输出设置,但用分号“;”禁止显示;③重新规划输出信息,最重要的信息包括:自变量的筛选和模型参数估计信息(inmodel,stats,intercept,b)、回归方程显著性整体检验信息(stats,pval,rmse)、回归方程显著性分别检验信息(stats,PVAL)。

例4-5 对例4-3中的数据采用逐步回归分析建立水泥凝固时热释放量与四种物质含量的关系。

解:例4-3中的数据来自MATLAB系统帮助,数据保存在hald.mat文件中,ingredients为自变量,heat为因变量。

在MATLAB下输入命令

>>load hald%将原始数据文件导入MATLAB的workspace

>>[B,SE,PVAL,inmodel,stats,nextstep,history]=stepwisefit(ingredients,heat,penter,0.10,display,off);%调用逐步回归函数stepwisefit

>>inmodel,P=PVAL%显示自变量的筛选结果inmodel和最优回归方程中各模型参数的显著性概率P

>>B,B0=stats.intercept%显示各自变量前的模型参数B及常数项B0

>>ALLP=stats.pval%将回归方程整体显著性检验结果赋给ALLP并显示结果

>>rmse=stats.rmse %将模型标准误差赋给rmse并显示结果

上述指令的运行结果是

img237

img238

由于P中的前两个元素为0而后两个元素均大于0.2,说明变量x1与x2的模型参数为0的概率=0,而变量x3与x4的模型参数为0的概率为0.2以上,因此inmodel中前两个元素为1,说明逐步回归模型中最终只要了变量x1与x2。根据B与B0的数值,最终确定逐步回归分析得到的最优回归方程为

img239

整体显著性检验的概率ALLP几乎为0,说明回归方程(4-21)整体显著性检验为高度显著,由rmse可知模型标准误差估计为2.679 4。

根据回归方程(4-18)与方程(4-21)可以得到回归方程对13个样本估计的Y值。

表4-6 回归方程(4-18)与方程(4-21)结果比较

img240

续表

img241

表4-6中的第1列和第2列的相关系数r=0.989 2与第1列和第4列的相关系数r=0.986 7两者相差甚小,说明逐步回归分析中虽然去掉了两个变量,但逐步回归方程(4-21)给出的模型值与实际值的差异并不比四个变量全部考虑的回归方程(4-18)大多少。

在MATLAB下键入命令

>>corrcoef(ingredients)

可得

img242

这意味着自变量ingredients中的第1与第3、第2与第4个变量的相关系数分别为-0.824 1、-0.973 0,即变量1与变量3、变量2与变量4有较强的负相关,也就是说第3、第4个自变量的大部分信息可以由第1、2个自变量体现。因此不难理解最终逐步回归方程中只选取了第1、第2个自变量。

由例4-3中提供的信息可知,变量x1~x4中的化合物分别为3CaO·Al2O3,3CaO·SiO2,4CaO·Al2O3·Fe2O3与2CaO·SiO2。x1与x3在成分上只相差1个CaO与1个Fe2O3,不难理解x1与x3有较强的相关性(r=-0.824);而x2与x4在成分上只相差1个CaO,很自然两者的含量会高度相关(r=-0.973)。

因此,在进行回归分析之前,根据专业背景知识也可以对变量间的相关性进行简单和直观的判断,进一步通过相关分析可以判断原始变量间的相关程度,剔除信息重叠的变量后再进行回归分析,可以使模型更为精简并提高模型的预测性能。

只选变量x1和x2进行多元线性回归并进行回归模型参数的检验,在MATLAB下输入命令

>>[t,Tcrit,b,R,F,Fcrit]=btest_reg(ingredients(:,1:2),heat,0.05)

可得如下结果

img243

img244

由b可得到与方程(4-21)相同的回归方程,该回归方程的复相关系数R=0.986 7,统计量F=229.50>F2,10(0.05)=4.10,说明方程(4-21)可以通过统计检验。而t的两个元素的绝对值均大于临界值Tcrit=2.228,表明回归方程(4-21)中的两个变量x1与x2的回归系数均有显著性。

例4-6 表4-7为三个实验因素x1、x2与x3在7个不同组合条件下获得的阿魏酸收率(y),试用多元回归分析的方法建立y与三个实验因素间的数学关系并进行统计检验,判断回归方程是否可信。

表4-7 七个实验条件下的阿魏酸收率

img245

解:先求y与x1、x2、x3之间的多元线性回归方程

在MATLAB下输入命令

>>x=[

1 13 1.5;1.4 19 3;1.8 25 1;2.2 10 2.5;

2.6 16 0.5;3 22 2;3.4 28 3.5];

>>y=[0.330;0.336;0.294;0.476;0.209;0.451;0.482];

>>[b,bint,s,rint,stats]=regress(y,[ones(7,1)x],0.05);

>>b,stats

可得

img246

在MATLAB下输入命令

>>sgm=sqrt(sumimg247%计算回归模型给出的产物收率与实际收率残差的标准方差,将其赋给sgm并显示结果

可得

sgm=0.0961

由stats的第2、3个元素值可知,F=2.506<F3,3(0.05)=9.28,P=0.2352>>0.05,说明y与x1,x2,x3之间的多元线性回归方程的模型参数为0的原假设不是小概率事件,即下面的回归方程

img248

不能通过统计检验。这说明y与三个自变量之间不是简单的线性加和关系,所以有必要在回归方程中引入自变量二次项和交叉项,即假设

img249

此时回归方程中模型参数m=10,而实验数据n=7,n<m时,多元线性回归方程(4-23)是无法求解的,必须采用逐步回归方法。

首先我们对三个自变量的一次项进行逐步回归筛选。

在MATLAB下输入命令

img250

img251

%显示自变量的筛选结果inmodel和最优回归方程中各模型参数的显著性概率P

>>B,B0=stats.intercept

%显示各自变量前的模型参数B及常数项B0

得到如下结果

img252

表明逐步回归只保留了x3

img253

P的第三个元素值=0.039<0.05,说明线性回归方程中只有x3的系数可以通过显著性检验。

img254

这一结果表明对于回归方程(4-23),变量的一次项只要有x3项就够了,既然x1和x2的一次项可以不要,则回归方程(4-23)中的x1x2、x1与x2的二次项也可以不要,此时方程(4-23)可精简为

img255

方程(4-24)中模型参数m=5<n=7,在MATLAB下输入命令

img256

%生成一个包含常数列(第一列)的、由x3img257,x1x3,x2x3为自变量的X矩阵

可得如下结果

img258

然后在MATLAB下输入命令

>>[b,bint,s,rint,stats]=regress(y,X,0.05);

>>b,stats

可得如下结果

img259

由b数组可得回归方程

img260

由stats可知F=72.86>F4,2(0.05)=19.25,P=0.013 6<0.05。

故回归方程(4-25)可以通过统计检验。

由方程(4-17)可以算得方程(4-25)的回归精度估计值

img261

在MATLAB下输入命令

>>sgm=sqrt(sumimg262%计算(4-25)模型值与实际值残差的标准方差,将其赋给sgm并显示结果

可得

sgm=

0.0149<方程(4-22)的回归精度估计值img263=0.096

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈