回归分析.docx
《回归分析.docx》由会员分享,可在线阅读,更多相关《回归分析.docx(20页珍藏版)》请在冰豆网上搜索。
回归分析
第6章回归分析1
6.1回归分析的意义
回归分析是处理变量之间相关关系的数学工具,是数理统计的方法之一。
它可以帮助人们从一组实验数据出发,分析变量间存在什么样的关系,建立这些变量间的回归方程;并且可以根据建立的经验公式,去预测实验结果,估计预测的精度;还可以进行因素分析,确定因素对实验结果是有显著影响还是无显著影响,从而建立更适用的回归方程。
在回归分析中,一元线性回归是最简单的,为了便于读者理解回归分析解决问题的思想和方法,在这一章里将对一元线性回归作较为详细的叙述,同时还介绍一元非线性回归、二元线性回归、逐步回归等问题。
6.2一元线性回归及其Excel程序
6.2.1问题的提出
现举一个实例来说明一元线性回归的问题。
例6-1在硝酸钠(NaNO3)的溶解度试验中,测得不同温度x(℃)下硝酸钠溶解度y的值如下:
xi
0
4
10
15
21
29
36
51
68
yi
66.7
71.0
76.3
80.6
85.7
92.9
99.4
113.6
125.1
试求它们之间的经验公式(回归方程)。
类似这样的问题,即当两个变量x与y之间存在着一定的关系,根据实验数据找出两者之间的关系式,这就是一元回归所要处理的问题。
对于例6-1的实验数据,可将数据点(xi,yi)标在直角坐标系中,称为散点图,得图6-1。
从散点图可直观地看出,各点分布情况接近一条直线。
如果两个变量间的关系大致是一条直线,这类的一元回归就是一元线性回归。
6.2.2一元线性回归方程的求法
设自变量x与变量y对应的测量值为
x
x1
x2
…
xi
…
xn
y
y1
y2
…
yi
…
yn
如果变量间存在着线性关系,则可选用一条直线来表达二者的关系:
(6.1)
其中
表示y的估计值,这是因为用x的值按回归方程(6.1)来计算y,只能得到y的估计值
,点
一定在直线上,而点
则不一定,那么怎样取(6.1)中的未知参数a与b,才能使得这个估计更理想呢?
我们自然会想到,若测定值yi与估计值
之差(残差)的绝对值都很小,我们认为是最理想的。
当
(6.2)
最小时,则可满足这种情况。
但这个公式中有绝对值记号,不便于进一步分析讨论,由于任何实数的平方也是正数或零,因此我们可以考虑如何使
(6.3)
达到最小。
由式(6.1)知与yi对应的估计值(计算值)是:
(6.4)
代入式(6.3)得
(6.5)
现在的问题是怎样求未知数a和b来保证QL最小。
根据数学分析中的极值原理,要使QL达到极小值,只需对式(6.5)中的a、b分别求偏导数,并令它们都为零,即
(6.6)
整理方程组(6.6)得
(6.7)
由于xi不全相同,方程组(6.7)的系数行列式
不等于零,故方程组(6.7)有唯一的一组解,解得
式(6.9)可等价地写成
(6.10)
其中
于是式(6.10)可写成
(6.15)
由方程组(6.7)的第一个方程或式(6.8)可以导出
(6.16)
至此,我们可根据已知试验数据,按式(6.11)~(6.16)求出未知参数a和b,最后得回归方程(6.1)式。
上述求回归方程的方法通常称为最小二乘法,参数a称为常数项,b称为回归系数。
对回归方程检验时,还要计算
(6.17)
6.2.3回归方程的检验
由一组实验数据,根据上一小节讲述的最小二乘法,可求出回归直线方程。
但人们要提出这样的问题,这个回归方程是否有意义呢?
换句话说,用
作为y的估计值,近似程度又如何呢?
事实上,即使对于平面上一些杂乱无章的散点,也可用最小二乘法给它们配一条直线来表示变量x与y之间的关系。
显然,在这种情况下所配的直线是毫无实际意义的。
于是我们提出了对回归方程的检验问题。
将获得的a和b的值式(6.15)、(6.16)代入式(6.5)得:
推导可得
定义相关系数
(6.20)
于是,式(6.19)可改写成
(6.21)
称QL为剩余平方和,它愈小表明用
近似y的精确度愈高,亦即x与y的线性关系愈密切。
由式(6.21)可知,│rxy│愈接近1,即愈大,剩余平方和QL就愈小,线性关系愈密切。
当│rxy│=1时,所有的点都在回归直线上,x与y完全线性相关,即x与y之间存在着确定的线性函数关系。
当rxy=0时,由(6.20)式知,lxy=0,故有b=0,这时回归直线为
,平行于x轴,表明y与x无线性关系(但不表明x与y不构成其他关系)。
这时在平面直角坐标上的点(xi,yi)是完全不规则的。
注意,因QL不能是负值,所以
0≤│rxy│≤l(6.22)
那么,究竟│rxy│与1接近到什么程度才说明x与y存在着线性关系呢?
这就要对相关系数进行显著性检验。
由概率论与统计基础知道,由于实验误差的影响,一般地说,使相关系数达到显著的值与子样容量n有关。
表6-1给出了不同n时,在显著性水平α下相关系数达到显著的临界值,当相关系数的绝对值│rxy│大于表中对应的值时,所配的直线才有意义。
相关系数显著性检验的具体步骤如下:
(1)按式(6.20)计算rxy,从而得│rxy│;
(2)给定显著性水平α,按自由度f=n-2,由相关系数临界值rα,f数据表(表6-l)查出rα,f的值;
(3)比较│rxy│与rα,f的大小,若│rxy│≥rα,f,则可认为在显著性水平α下,x与y之间存在着线性关系,作出这种判断的置信度大于(1-α)100%;反之,则认为在显著性水平α下,x与y之间不存在线性关系。
6.2.4预测及其精度分析
如果变量x与y之间存在着线性关系,那么我们就认为所建立的回归方程是有意义的。
在实际问题中,往往需要对给定的x=x0的值,预测对应的y的取值范围,换句话说,用
(x0代入式(6.1)而得到的值)去估计y0(实际值),要找出这个估计的误差。
实际上是求y0的置信区间,又称为y0的预测区间。
可以证明y0的(1-α)100%的置信区间为:
(6.23)
其中,SE为剩余标准差,等于剩余平方和除以它的自由度f=n-2所得商的平方根,即
(6.24)
将式(6.21)代入上式,得
(6.25)
考虑计算rxy的舍入误差,通常计算SE用公式为
(6.26)
式(6.23)中的tα,f是对于给定的置信概率(1-α)100%,和自由度f=n-2的t分布临界值,可以从附录B-2查得。
要提高回归分析的精度,需要注意以下几个问题:
第一,努力提高观测数据本身的精度;
第二,尽可能增大子样容量n;
第三,尽可能地扩大自变量
的取值范围。
6.2.5一元线性回归的一般算法
这一部分内容同学们自己看一下教材。
6.3一元非线性回归及其Excel程序
在实际问题中,有时两个变量y与x之间不一定是线性关系,而是某种曲线关系。
例如,从专业知识知道某两个变量呈某种曲线关系,或者从观测数据的散点图中看到,两变量明显地偏离直线,若用某种曲线来拟合这个变量间的关系则更切合实际。
对于这些问题做曲线回归是很重要的。
运用曲线回归的方法解决生产或科研问题,往往是很多的,因而熟练掌握它是很有用的。
那么如何进行曲线回归呢?
事实上,在许多情况下,曲线回归可以通过某些简单的变量变换,化为线性回归问题来解。
即以适当的变量替换,使新变量呈线性,这种方法通常称做“线性化”,然后对新变量做线性回归,最后还原到原来的变量,这就是曲线回归的基本方法,通常称为非线性回归。
本节主要通过实例介绍一元非线性回归方法。
6.3.1已知变量x与y间的数学模型
当变量间的数学模型为已知,只有其中的参数待定,则可直接用线性化作线性回归。
看下面的例子。
例6-5已知某实验得如表6-5所示的试验数据,根据经验知道该实验的数学模型为
(B>0)(6.37)
试用回归分析方法求未知参数A和B。
表6-5例6-5的试验数据
序号
xi
yi
序号
xi
yi
1
2
6.42
9
10
10.49
2
3
8.2
10
11
10.59
3
4
9.58
11
12
10.6
4
5
9.5
12
13
10.8
5
6
9.7
13
14
10.6
6
7
10
14
15
10.9
7
8
9.93
15
16
10.76
8
9
9.99
解:
对式(6.37)两边取对数得
令
则
于是将式(6.37)化为线性模型。
从而可用前面叙述的一元线性回归的方法求得回归系数b及常数项a,再按原来变换相对应的参数变换的逆变换得到原参数A和B。
全部计算过程见教材。
6.3.2未知变量x与y间的数学模型
在有些情况下,往往不知道变量间的数学模型。
这时就要根据经验或参考实验数据在平面直角坐标纸上先作出类似于图6-1的散点图,并连成光滑的曲线,看该曲线适合于哪一个数学模型,然后“线性化”,再进行线性回归。
6.3.4一元非线性回归小结
(1)对于一元非线性回归问题,当不知道变量间的数学模型时,就要恰当地选择曲线的类型,这往往不是一下就能选准的。
有时要分别用几种类型曲线来进行回归,然后进行比较,最后确定回归曲线取剩余标准差
小或线性化后相关系数
的绝对值大者。
如例6-5和例6-9,实验数据相同,但所得的回归曲线是不同的。
这两例线性化后的相关系数值
分别为-0.979和0.933,前者的绝对值大于后者,所以我们认为例6-5选取曲线类型为指数函数更为理想。
若用剩余标准差SE来判断,也会得出同样的结论。
(2)计算时中间结果可多取几位。
由于目前人们多采用计算器进行这类简单的计算,多取几位并不算麻烦。
这样做反而提高最后结果的精度。
(3)在计算线性化后的常数项a时,可按式(6.38)计算,这样可避免计算
和
的麻烦及由此而带来的舍入误差。
当然,对于一元线性回归问题,也可以这样做。
(4)应当强调指出,一元非线性回归的剩余标准差SE必须按式(6.40)来计算。
第6章回归分析2
6.5多元线性回归及其Excel程序
6.5.1多元线性回归方法
设自变量x1,x2,…,xm与因变量y对应的第i次观测值为:
x1i,x2i,…,xmi;yi
共有n次观测数据。
如果变量间存在着线性关系,其回归方程为
…
(6.75)
令
(j,k=1,2,…,m)(6.76)
(j=1,2,…,m)(6.77)
(6.78)
(j=1,2,…,m)(6.79)
(6.80)
于是,式(6.75)的回归系数
,
,…,
由下面的方程组求出:
(6.81)
常数项
(6.82)
回归平方和与剩余平方和为
(6.83)
(6.84)
复相关系数
(6.85)
剩余标准差
(6.86)
标准回归系数
(j=1,2,…,m)(6.87)
和一元线性回归、二元线性回归时一样,用R来衡量回归的效果,R值愈接近1,回归效果愈好;用SE来估计回归方程的精度,SE愈小,回归方程的精度愈高,用回归方程进行预测就愈准确;用
来比较各因素的重要性。
同样用方差分析对回归方程进行显著性检验。
多元回归方程分析表如表6-10所示。
表6-10多元线性回归方差分析表
差异源
Q
f
MS
F值
F0.01
F0.05
F0.10
显著性
结论
回归
U
m
U/m
U/(mSE2)
F0.01(f1,f2)
F0.05(f1,f2)
F0.10(f1,f2)
剩余
QL
n-m-1
SE2
总和
l00
在进行方差分析时,表6-10的临界值一栏填写Fα(f1,f2)的值,可由附录B-4查得。
其中自由度f1=m,f2=n-m-1。
一般地说,当复相关系数R很接近1,且n值较大时,则不必要进行方差分析,完全可以作出变量间线性关系密切的结论。
对于多元线性回归,当自变量的个数较少时,可用计算器计算。
但当自变量的个数较多时,计算量是惊人的,一般要借助于计算机进行,故对多元线性回归问题,这里不再给出手算的例子。
而用Excel计算是相当简单的(详见下一小节)。
6.5.2多元线性回归的Excel程序
1.有关函数
(1)函数LINEST
功能:
使用最小二乘法计算对已知数据进行最佳线性拟合,并返回描述此线性方程的数组。
因为此函数返回数值数组,故必须以数组公式的形式输入。
线性的方程为
y=bmxm+bm-1xm-1+…+b2x2+b1x1+b0
式中的因变量y是自变量x的函数值。
bi值是与每个x值相对应的系数,b0是常数。
函数LINEST返回的数组是{bm,bm-1,…,b2,b1,b0}。
函数LINEST还可返回附加回归统计值。
语法:
LINEST(known_y's,known_x's,const,stats)
known_y's是关系表达式y=bx+b0中已知的y值集合。
如果数组known_y's在一列中,则known_x's的每一列都被当做单独的变量。
如果数组known_y's在一行中,则known_x's的每一行都被当做单独的变量。
known_x's是关系表达式y=bx+b0中已知的可选x值集合。
数组known_x's中包括一个或多个变量集合。
如果只用到一个变量,只要known-y's和known-x's维数相同,它们可以是任何形状的选定区域。
如果用到不只一个变量,known_y's必须是向量(就是说,必须是一行或一列的区域)。
如果省略known_x's,则假设该数组是{1,2,3...},其大小与known_y's相同。
cons为一逻辑值,指明是否强制使常数b0为0。
如果const为TRUE或省略,b0将被正常计算。
如果const为FALSE,b0将被设为0,并同时调整b值使y=bx。
stats为一逻辑值,指明是否返回附加回归统计值。
如果stats为TRUE,函数LINEST返回附加回归统计值,如果stats为FALSE或省略,函数LINEST只返回系数b和常数项b0。
线性回归输出:
bm
bm-1
…
b2
b1
b0
Sm
Sm-1
…
S2
S1
S0
R2
SE
F值
f
U
QL
统计值说明:
S1,S2,...,Sm为系数b1,b2,...,bm的标准误差值。
这是很有用的值,用它们可以算出每个系数的t检验值ti=bi/Si(i=1,2,…,m),自由度为f=n-m-1由ti可以判断变量xi的重要性。
S0为常数项b的标准误差值(当const为FALSE时,SEb=#N/A)。
R2为相关系数的平方;SE为剩余标准差。
F值为F统计值;f为自由度。
U为回归平方和;QL为剩余平方和。
(2)函数TREND
功能:
返回一条线性回归拟合线的一组纵坐标值(y值)。
即找到适合给定的数组known_y's和known_x's的线性方程(用最小二乘法),并返回指定数组new_x's值在线性方程上对应的y值(y估计值)。
语法:
TREND(known_y's,known_x's,new_x's,const)
new_x's 为需要函数TREND返回对应y值的新x值。
new_x's与known_x's一样,每个独立变量必须为单独的一行(或一列)。
因此,如果known_y's是单列的,known_x's和new_x's应该有同样的列数,如果known_y's是单行的,known_x's和new_x's应该有同样的行数。
如果省略new_x's,将假设它和known_x's一样。
如果known_x's和new_x's都省略,将假设它们为数组{1,2,3,...},大小与known_y's相同。
const 为一逻辑值,指明是否强制常数项b为0。
说明:
对于返回结果为数组的公式,必须以数组公式的形式输入。
其他:
见上一个函数LINEST。
(3)函数COLUMNS
功能:
返回数组或引用的列数。
语法:
COLUMNS(array)
array为需要得到其列数的数组、数组公式或对单元格区域的引用。
示例:
COLUMNS(A1:
C4)等于3;
COLUMNS({1,2,3;4,5,6})等于3。
程序28——多元线性回归
打开一个新工作簿,以“程序28”为文件名存盘。
在工作表Sheet1中开始操作。
命名:
f
=$D$7
QL
=$D$8
H
=$A$15
U
=$C$8
m
=$E$2
X
=$E$16:
$H$47
n
=$G$2
Y
=$D$16:
$D$47
公式清单:
E2:
=COLUMNS(X)
G2:
=COUNT(Y)
C3:
=IF(LEN(C4)<>0,"b"&m,"")
D3:
=IF(OR(C3="b0",C3=""),"","b"&VALUE(MID(C3,2,2)-1))填充至T3
C4:
=LINEST(Y,X,,1)选中C4:
T8,输入这个公式,按CRTL+SHIFT+ENTER组合键。
B12:
=U
C12:
=m
D12:
=B12/C12
E12:
=D12/D13
F12:
=FINV(0.01,C12,C13)
G12:
=FINV(0.05,C12,C13)
H12:
=FINV(0.1,C12,C13)
I12:
=IF(E12>F12,"**",IF(E12>G12,"*",IF(E12>H12,"(*)","(0)")))
K12:
=IF(E12>F12,"高度显著",IF(E12>G12,"显著",IF(E12>H12,"尚可","不显著")))
B13:
=QL
C13:
=f
D13:
=B13/C13
B14:
=SUM(B12:
B13)填充至C14
A16:
=IF(ISBLANK(D16),"",ROW()-ROW(H))填充至A188
B16:
=IF(ISBLANK(D16),"",D16-C16)填充至B188
C16:
=TREND(Y,X)选中C16:
C188,输入这个公式,按CRTL+SHIFT+ENTER组合键。
显示结果:
见图6-16。
提示:
本程序仍然是通用程序,在解其他线性回归问题时,如果自变量个数m或样本容量n发生变化,输入新的数据后,更改命名X、Y所代表的单元格区域即可,其他什么也不用动。
如m=3、n=31时,输入新的数据,然后操作:
选定自变量X所在的区域,插入→名称→定义,在“名称”栏填入X,点击“添加”,此时“引用位置”栏显示=Sheet1!
$E$16:
$G$46,然后,再在“名称”列点击Y,在“引用位置”栏修改为=Sheet1!
$D$16:
$D$46,点击“确定”即可。
技巧:
为了不显示C4:
T8区域的“#N/A”(在非数值的单元格中)。
选中C4:
T8,然后操作:
格式→单元格→字体→颜色,选择白色;紧接着操作:
格式→条件格式,出现“条件格式”对话框,在第一栏选择“单元格数值”;在第二栏选择“大于”;在第三栏填入“-1E+99”;点击该对话框的格式→字体→颜色,选择黑色,确定,于是,回到前一对话框,再点击“确定”。
此时,该区域只显示数值,而不显示“#N/A”。
图6-16程序28的计算结果
6.6一元多项式回归及其Excel程序
6.6.1一元多项式回归方法
在6.5节中,讨论了简单的一元非线性回归问题,处理问题的方法是将一元非线性回归化为一元线性回归问题来解。
但在许多实际问题中,往往遇到这样的情况,即需要把一元非线性回归化为多元线性回归问题。
例如已知变量间的数学模型为
这时可令
则这个方程化为
于是化为两个自变量的线性回归问题。
如果变量间的数学模型为未知,试用各种简单的数学模型又不适合,这时的一元非线性回归又如何处理呢?
纯粹从数学上说,给定n个数据点,我们总能求得一条n-1阶多项式曲线,使之恰好通过这n个数据点。
根据这个原理,对于已知的观测数据
x1x2…xi…xn
y1y2…yi…yn
可选取一元多项式来逼近
…
(m这时,只要通过下面的变换关系:
…
则式(6.87)化为
…
这就化成了多元线性回归问题,可用前一节讲述的方法去解决。
对于一元多项式回归,最常用的是二阶多项式(抛物线)或三阶多项式(三次抛物线)。
三阶以上的多项式计算量是相当大的。
一般要借助计算机来求解。
习题六
2一个弹簧的长度l(cm)和它悬挂的重量w(kg)间的实验数据如下。
试求:
(l)求l对w的线性回归方程;
(2)对所得方程进行显著性捡验;(3)当
=9(kg)时,求
的取值范围。
w
2
4
6
8
10
12
l
8.9
10.1
11.2
12.2
13.3
14.2
4已知数学模型为
。
观测数据如下。
试用线性化方法确定参数a和b。
x
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
y
3.06
4.10
4.89
5.55
6.16
6.68
7.19
7.62
5有如下一组实验数据。
试作以下各项:
(1)确定回归方程式
;
(2)求出复相关系数
;(3)对回归方程作显著性检验。
40
40
50
50
60
60
0.2
0.4
0.2
0.4
0.2
0.4
38
42
41
46
46
49