回归模型原理与应用 本章学习目标 ● 熟悉线性回归模型的形式。 ● 了解线性回归方程参数求解的方法。 ● 了解非线性回归模型。 ● 掌握线性回归方程的选择和预测。 ● 掌握线性回归模型的程序实现。 本章主要内容如图5.1所示。 图5.1 本章主要内容 5.1 线性回归模型 5.1.1 回归分析的含义 “回归”这一术语最早是由英国统计学家高尔顿(FrancisGalton)在19世纪末期研究 人类遗传问题时提出的。他发现,总体上子辈身高和父辈身高是正相关的,但是当父辈身 高异常高或异常矮时,子辈高于或矮于父辈的概率很小。他将子辈身高向父辈的平均身 高回归的趋势移动称为回归效应。人们更关注给定父辈身高的情形下如何找到子辈平均 身高的变化规律。 假设已知一组身高的实测数据,绘制成散点图,如图5.2所示。 5 儿子身高有一个分布范围。 如果画一条表示儿子平均身高的线,说明儿子的 平均身高是如何随着父亲身高的增加而增加的, 这条线就是回归线。从图形上看,回归线是对实 既可以是直线,也可以是曲线,通 过回归线可以预测儿子的身高。从函数形式上 回归线对应的是函数表达式,这个表达式描 述了儿子身高和父亲身高的依赖关系。如果是 回归线就是直线;如果是非线性表 回归线就是曲线。因此,回归分析的任务 就是:使用输入变量 X 建立某个函数关系式,尽 可能准确地预测输出变量Y。按照输入变量的个 可将回归分析分为一元回归分析和多元回归 可将回归分析分为线性回归分析和非线 其公式如下: x1 是输入变量;用于反映输入变量 ε 是误差项, σ2)假定ε~ N (0,且相 输入变量只有 例如决定儿子身高的因素不只有 即多个输入变量,因此可以建立更一 θkxk + ε 即训练数据)是已知的,而参数 θ1, 得到最终用于预测的线性回 206 在图5.2中,父亲身高分为4组;对应于设定的父亲身高, 图5.2 父亲和儿子身高的散点图 测数据的拟合, 看, 线性表达式, 达式, 数, 分析;按照输入变量和输出变量之间的关系类型, 性回归分析。回归分析的步骤如下: (1)建立输出变量与输入变量的回归方程。 (2)选择最优回归方程。 ①计算回归方程的拟合优度。 ②检验回归方程的整体显著性。 ③检验各回归系数的显著性。 ④回归诊断。 (3)利用最优回归方程进行预测。 5.1.2线性回归模型的形式 一元线性回归模型采用一元线性回归方程的形式, Y=θ0+θ1x1+ε 其中,Y是输出变量;θ0、θ1 是未知参数; 和输出变量之间除线性关系之外的随机因素或不可观测的因素, 互独立。例如,影响儿子身高的因素除了父亲身高之外还有其他随机因素, 父亲身高,所以可用该模型表达二者的函数关系。 大多数情况下输出变量会受多个输入变量的影响, 父亲身高,假设还有运动时间、饮食习惯等多个因素, 般的包含k个输入变量的线性回归方程如下: Y=θ0+θ1x1+θ2x2+… 在实际建模中,输入变量X和输出变量Y的实测值( θ0,θ1,θ2,…,θk是未知的,建立线性回归方程的关键是用训练数据求得参数θ0, θ2,…,θk的最优解θ^ 0,θ^ 1,θ^ 2,…,θ^ k,代入上式后略去误差项, 归方程: 2 07 Y^=θ^0 +θ^1x1 +θ^2x2 + … +θ^kxk 5.1.3 线性回归方程参数求解 θ^随着参数θ0,θ1,θ2,…,θk 取值的不同,会产生不同的线性回归方程,回归分析的任 务就是要从中找到最优方程,即对训练数据拟合获取最优回归线,因此问题就转换成了如 何求得参数θ0,θ1,θ2,…,θk 的最优解θ^0,θ^1,θ^2,…,θ^k ,常用的方法有正规方程法和梯度 下降法,这两种方法都包含最小二乘法的思想。以一元线性回归为例,最小二乘法的思想 是:首先获得n 关于输入变量X 和输出变量Y 的实测值(x1,y1),(x2,y2),…,(xn , yn),并在坐标轴上绘制n 对数据点;然后用一条直线拟合这些数据点,最优的拟合直线 应该是距离大部分数据点最近的那条直线,即把n 对数据点代入最优直线对应的线性回 归方程得到的预测值与实测值的差异最小。两者的关系用如下公式表示: Y =Y^+ε^ 将n 对实测值(x1,y1),(x2,y2),…,(xn ,yn)代入上式可得 yi =y^i +ε^i, i=1,2,…,n ε^i =yi -y^i, i=1,2,…,n 其中,yi 称为实测值,y^i 称为预测值;ε^i 是实测值与其预测值之差,称为残差,也是真实 误差ε 的估计。实践中一般希望预测值尽可能地靠近实测值,使损失函数尽可能小。 J(θ^)=J(θ^0,θ^1)=Σε^2i =Σ(yi -y^i)2 =Σ(yi -θ^0 -θ^1xi)2 上式常称为损失函数,其中ε^2i 是残差的平方。问题进一步转换成了求解参数向量θ^,使 J(θ^)达到最小。 1.正规方程法 正规方程法可以一次性求解参数向量θ^,由微积分知识可知,J(θ^)对θ^0 和θ^1 的偏导 为0时J(θ^)最小。以一元线性回归方程为例,只需计算J(θ^)对θ^0 和θ^1 的偏导,令偏导 数为0,即可求得对应的θ^0 和θ^1,计算过程如下: 对θ^0、θ^1 求偏导,可得: . .θ^0 J(θ^)=-2Σ(yi -θ^0 -θ^1xi) . .θ^1 J(θ^)=-2Σ(yi -θ^0 -θ^1xi)xi 令. .θ^0 J(θ^)=0,. .θ^1 J(θ^)=0,可得: Σyi =nθ^0 +θ^1Σxi Σxiyi =θ^0Σxi +θ^1Σx2i ì . í .. .. 2 08 求解联立方程,可得 θ^1 =Σxiyi -1n ( Σxi ) ( Σyi ) Σx2i -1n ( Σxi )2 =Σ(xi -x-)(yi -y-) Σ(xi -x-)2 θ^0 =y- -θ^1xì . í ... ... 其中,x- =Σx n ,y- =Σy n 分别为X 和Y 的样本均值。当给出θ0、θ1 的估计θ^0、θ^1 后,将其 代入回归方程,可由X 求出Y 的预测值。 在多元线性回归方程中,如果有k 个输入变量和n 次独立的样本实测数据xi1, xi2,…,xik ;yi),i=1,2,…,n,线性回归模型可表示成如下形式: y1 =θ^0 +θ^1x11 +θ^2x12 + … +θ^kx1k +ε^1 y2 =θ^0 +θ^1x21 +θ^2x22 + … +θ^kx2k +ε^2 . yn =θ^0 +θ^1xn1 +θ^2xn2 + … +θ^kxnk +ε^n ì . í ... . ... 上式可进一步简写成如下形式: Y =Y^+ε^=Xθ^+ε^ 其中: Y = y1 y2 . yn é . êêêêê ù . úúúúú , Y^1 = y^1 y^2 . y^n é . êêêêêê ù . úúúúúú , X = x10 x11 … x1k x20 x21 … x2k . . . . xn0 xn1 … xnk é . êêêêê ù . úúúúú , θ^= θ^0 θ^1. θ^k é . êêêêêêê ù . úúúúúúú , ε^= ε^1 ε^2. ε^n é . êêêêêê ù . úúúúúú Y 是实测值向量;Y^是预测值向量;X 是输入变量矩阵,令x10,x20,…,xn0=1;θ^是参数向 量;ε^是残差向量,其每一个分量ε^i 都是预测值和实测值的差,也是真实误差εi 的估计值。 类似于一元线性回归方程,移项后可得 ε^=Y -Y^=Y -Xθ^ 多元线性回归方程损失函数定义如下: J(θ^)=J(θ^0,θ^1,…,θ^k)=ε^Tε^=(Y -Xθ^)T(Y -Xθ^) =YTY -2θ^TXTY +θ^TXTXθ^ 依次计算J(θ^)对参数向量θ^的每一个分量θ^j 的偏导数,并令偏导数等于0,即可求得 θ^j,这些解组合成对应的参数向量θ^。 . .θ^J(θ^)=.(YTY -2θ^TXTY +θ^TXTXθ^) .θ^ =-2XTY +2XTXθ^=0 209 多元线性回归方程参数向量θ^ 的正规方程解为 θ^ =(XTX)-1XTY 使用正规方程法求解参数向量θ^ 的必要条件是XTX的逆矩阵存在。 利用正规方程法计算矩阵的乘法和逆运算会变得很慢。另外,如果 不能直接使用正规方程法求解。这时可使用梯度下降法求解参数向 ^。梯度下降法是一种寻找目标函数J(θ^)最小化的迭代算法。先给定参数θ^ j的初始 通过不同的算法递推出新值,然后再以新值作为输入,继续迭代出一系列更新的值,如 此反复由旧值递推出新值,直到使目标函数J(θ^)极小的参数点处。 梯度下降法的具体步骤如下。 一个随机的初始值。 2)计算损失函数J(θ^)对参数θ^ 的每一个分量θ^ j的偏导数,从而得到该分量在某点 的梯度值。每做一次求偏导都表示找到了当前位置梯度最陡的方向,梯度的反方向就是 的上一次值、步长与梯度递推出新值。递推公式如下: θ^ j=θ^ j-α. .θ^ jJ(θ^)j=0,1,2,…,k 的迭代公式为 θ^ j=θ^ j-αΣ ni=1(y^i-yi)xijj=0,1,2,…,k 也称学习率。在迭代过程中需要不断尝试不同的α,从而找到最合适的 α。α值太小会导致迭代次数过多,θ^ 收敛过慢;α值太大容易跳过θ^ 收敛值而在收敛值 是第i个样本的第j个输入变量值,每一次迭代都需要把所有的n个样 把每一个样本的预测值减去实测值,再把这个差值乘上该样本的第j个特 和损失函数J(θ^)是否收敛。当两次迭代的值几乎不发生变化时,可判断 重复步骤(2)和(3), 否则进行步骤(5) 。 5)经过上述计算获得了其中一个参数的解,例如θ^ 0。然后重复以上步骤获得θ^ 1, 取得所有参数向量θ^ 的解,最终得到预测方程。 线性回归方程选择 1.回归方程拟合优度 回归方程拟合优度是指回归直线对实测数据的拟合程度。如果全部实测点都落在回 2. 梯度下降法 当 k 很大时, XTX 是不可逆矩阵 , 量 θ 值 , ^ ( (1)给θj 函数值减小最快的方向。 ^ (3)结合θj 求解上式的偏导,(^) θj 其中, α 是步长, 附近震荡。xij 本都取到 , 征值 。 ^ 收敛。如果没有收敛, ( (4)判断θj ^^ θ2,…, k , θ 5.4 1. 归直线上,即可得到一个完美的拟合结果。但这种情况很少发生,大部分情况下,总有一 些正的残差和一些负的残差围绕在回归直线周围。只需使围绕在回归直线的残差尽可能 小,判定系数R2 就是这种拟合程度优劣的一个度量,通过对总离差平方和(SumSquares ofTotal,SST)的分解得到判定系数R2。SST定义如下: 2 -) SST= Σ(n) (yi-y i=1 SST反映了实测值的总变化量,可分解为 n SST= Σ(n) (-)Σ(n) (^^-)Σ(n) (^)2+ Σ(^-) yi-y2=yi-yi+yi-y2=yi-yi= yi- y 2 =i=1= 残差平方(i) 和(S(1) umSquaresOfEror,SSE)反映了由(i) 误(1) 差引起的实测(i) 值(1) 的变化。其定 义如下: 2 ^ SSE= Σ(n) (yi-yi) i= 若SSE=0,则每个实测值都可由线性关系精(1) 确拟合,误差为0。SSE越大,实测值与预测 值的偏差也越大,误差也越大。 模型平方和(SumSquaresofModel,SSM)反映了由输入变量引起的输出变量的变 化。其定义如下: 2 SSM= Σ(n) (^-) yi- y = 若SSM=0,则每个预测值均相等,即输出变(i) 量(1) 不随输入变量的变化而变化,二者之间的 ^^ 线性回归关系不成立,这实质上反映了θ^ 0。 1=θ2=…=θk = 因此,SST=SSM+SSE 。SSM越大,说明由线性回归关系描述输出变量总变化量的 比例就越大,即输出变量与输入变量之间的线性关系越显著。 判定系数(determinationcoeficient)R2 可以解释为输出变量实测值y1,y2,…,yn 的总变化量SST中被线性回归方程所描述的比例。其定义如下: R2SSM SSE =SST =1-SST R2 越大,说明线性回归方程描述输出变量总变化量的比例越大,从而SSE就越小, 即拟合效果越好。 对于多元回归的情形,常用修正R2(Adj-R2)代替R2,因为在模型中增加输入变量总 能提高R2,Adj-R2 考虑了加入模型的输入变量数,在比较不同多元模型时用Adj-R2 更 合适。其定义为 Adj-R2=1-SSE/(-k-1) /((n) -f) SSTn 若模型中包含θ0,则j=1; 0。 ^ 否则j= 2.防止过拟合 因样本数据不可避免地存在测量误差和噪声数据,若一味地追求高拟合优度,很可能 210 2 11 导致过拟合。例如,图5.3中的10个点可用多项式y^=θ^0+θ^1x+θ^2x2+…+θ^9x9 拟合, 也可用线性回归模型y^=2x 拟合。显然图5.3(a)拟合了所有噪声数据,出现了过拟合现 象。从图形上看,是一条曲线且曲线几乎通过所有的实测数据点;从表达式上看,是一个 高次函数,输入变量系数值波动较为明显,过拟合模型在未知数据上的预测效果很差,模 型泛化能力低。 图5.3 过拟合与正常拟合 此外,当模型的输入变量过多且样本数据过少时也会出现过拟合问题,这种情况下一 般需要采用正则化处理。正则化处理采用某种约束为参数规定一个取值范围,减小输入 变量的数量级,防止参数出现较大波动,从而在尽可能符合数据原始分布的基础上得到一 个平滑、简单的模型,达到减化模型、降低过拟合可能性的目的。 正则化处理的表现形式是在线性回归损失函数J(θ^)中加正则化项。正则化一般有 L1正则化与L2正则化。 L1正则化在线性回归中称为Lasso回归,即常说的套索回归。其方法是:在损失函 数J(θ^)后增加参数向量θ^的L1范数,即所有输入变量系数绝对值的和来实现正则化。 函数表达式如下: J(θ^)= 1 2n [ Σn i=1 (y^i -yi)2 +λΣk j=1 |θ^j|] 其中,n 是样本个数;k 是输入变量的个数;λ 是正则化参数,用来调节损失函数的误差项 和正则化项的权重。L1正则化可以使一些输入变量的系数变小,甚至还使一些绝对值较 小的系数直接变为0,以增强模型的泛化能力。 L2正则化在线性回归中也称为Ridge回归,即常说的岭回归。其方法是:在损失函 数J(θ^)后增加参数向量θ^的L2范数的平方项,即所有输入变量系数的平方和来实现正 则化。函数表达式如下: J(θ^)= 1 2n [ Σn i=1 (y^i -yi)2 +λΣk j=1 θ^2j ] 2 12 L2正则化会对输入变量系数按比例进行缩放,而不是像L1正则化那样减去一个固 定值,这使得输入变量系数变小而不会变为0,因此L2正则化会让模型变得更简单,防止 过拟合,而不会起到特征选择的作用。 损失函数J(θ^)经过了正则化处理,可使用梯度下降法和正规方程法求解参数向量 θ^。以L2正则化函数为例,参数向量θ^的解如下: (1)正规方程法: θ^= XTX +λ 0 1 1 . 1 é . êêêêêêê ù . úúúúúúú . è ...... . . ÷÷÷÷÷÷ -1 XTY (2)梯度下降法: θ^0 =θ^0 -α1 nΣn i=1 (y^i -yi)xi0 θ^j =θ^j -α 1 nΣn i=1 (y^i -yi)xij +λ nθ^j é . êê ù . úú j=0,1,2,…,k 3.回归方程总体显著性检验 在实际问题的研究中,人们事先可能并不确定输出变量Y 与输入变量x1,x2,…,xk 之间的关系。在求解参数向量θ^之前,用线性回归方程拟合某个样本数据可能效果较好, 但是对总体数据的效果却未必同样好,通过样本估计的关系也不一定能延伸到总体关系。 因此,在求解线性回归方程后,还需要对回归方程进行总体的显著性检验,即从整体上看 输入变量x1,x2,…,xk 对输出变量Y 是否有显著影响,为此提出如下假设: 原假设H0:θ1=θ2=…=θk =0。 备择假设H1:θ1,θ2,…,θk 不全为0。 检验统计量:F= SSM/k SSE/(n-k-1)。 当原假设H0 成立时,检验统计量服从自由度为(k,n-k-1)的F 分布,对于给定的 显著性水平α,当统计量的观测值F0 大于临界值Fc(k,n-k-1)时,拒绝原假设H0,即, 在显著性水平α 下,输出变量与输入变量之间的线性回归关系是显著的,或称回归方程是 显著的;否则不能拒绝H0。也可以根据p=P{F≥F0}值得出结论:若p 值小于给定的 显著性水平α,则拒绝原假设H0。 4.回归方程系数显著性检验 即使回归方程通过显著性检验,也只能表明参数向量θ 的各个分量不全为零,并不意 味着每个输入变量x1,x2,…,xk 对输出变量Y 的影响都显著,因此需要对每个输入变量 213x1,x2,…,xk进行显著性检验。若某个系数θj=0,则xj对Y的影响不显著。因此,下 面考虑从回归方程中剔除Xj。 原假设H(j)0 :θj=0。 备择假设H(j)1 :θj≠0,j=1,2,…,k。 检验统计量:tj= θ^ jSSE/(n-k-1)。 当原假设H(j)0 成立时,检验统计量服从自由度为(n-k-1)的t分布。对于给定的显 著性水平α,当tj统计量的观测值tj0大于临界值tjc(n-k-1)时,拒绝原假设H(j)0 ,即,在显 著性水平α下,θj不为0,认为xj对Y的作用是显著的;否则不能拒绝θj为0。也可以根据 pj=P{|tj|≥|tj0|}值得出结论:若pj值小于给定的显著性水平α,则拒绝原假设H0。 5.回归诊断 残差分析和共线性诊断是对回归模型进行回归诊断的两种常用方法。残差分析的目 的是检验线性回归方程的可行性,包括残差项的等方差、独立性和正态性的假设。共线性 诊断用来确定多元回归中多个输入变量之间是否存在多重共线性。 1)残差分析 通过绘制残差图可判定残差项的等方差和独立性。以残差为纵坐标,以实测值yi、 预测值y^i、输入变量xj(j=1,2,…,k)或序号、观测时间等为横坐标绘制的散点图称为 残差图。正常残差图中的散点应围绕0随机波动且变化幅度在一条矩形带内。图5.4给 出了3个残差图。左图中对于所有横坐标轴变量的值,残差的方差都相同,描述输出变量 和输入变量之间关系的回归模型是合理的;中图表明残差的方差随变量的增大而增大,违 背了残差等方差的假设;右图表明所选的回归模型不合理,应包含输入变量的二次项。 图5.4 残差图示例 2)共线性诊断及解决方法 如果模型中包含的输入变量过多,输入变量之间就可能存在近似线性关系,这种现象 称为输入变量间的多重共线性,简称共线性。下列情况表明可能存在共线性问题: (1)回归方程的F检验通过,而部分回归系数θj的检验未通过。 214(2)回归系数的正负号与预期的相反。 (3)模型中增加或删除一个输入变量对输入变量系数的估计值影响显著。 研究结果表明,产生这些问题的原因之一就是输入变量之间存在共线性, 严重程度的一种方法是计算矩阵的条件数(c 型(或者矩阵)的稳定性或者敏感度。如果一个线性模型的条件数小于20, 定的;否则就是不稳定的,其输出结果可信度不高。 如果发现线性模型中存在共线性问题, 入变量的筛选,常用的算法包括向前法、 和剔除输入变量,每次引入对输出变量影响最显著的输入变量后, 变量重新进行显著性检验,把由于新输入变量的引入而变得对输出变量影响不显著的输 入变量剔除,然后再考虑下一轮输入变量的引入和剔除, 变量为止。输入变量的每一次引入和剔除其实都是在做假设检验, 直接通过输入变量各项回归系数的正负和大小判断输入变量与输出变量的相关性, 常还是应用逐步选择的方法。 5.1.5线性回归方程预测 当通过前述多种检验证明一个回归方程的线性关系显著, 用最优线性回归方程根据输入变量的取值估计或预测输出变量的取值。预测或估计的类 型主要有两种:点估计和区间估计。 1.点估计 点估计是指对输出变量求点估计值。常用的点估计方法有两种, 和个体值的点估计,二者使用的公式相同, 将输入变量的一组新实测值x0=(x01, 的预测值为E(y0)=y^0=θ^ 0+θ^ 1x01+…+θ^ 一个点估计值,则该值是一个期望值; 值,则该值是一个具体值。 2.区间估计 区间估计是指利用最优线性回归方程, 求出输出变量的一个估计值的区间。与点估计类似, (1)输出变量平均值的置信区间估计: (y^0-tα/2(n-k-1)sx0(XXT)-1xT0 , 其中,s= MSE,n为观测次数,k为输入变量个数。 (2)输出变量个体值的预测区间估计: (y^0-tα/2(n-k-1)s1+x0(XXT)-1xT0 , 检测共线性 onditionnumber)。条件数用来度量线性模 就属于比较稳 可进行手动筛选,还可以通过算法自动进行输 向后法和逐步选择法。逐步选择法是交互地引入 都对模型中的已有输入 直到既不能引入也不能剔除输入 在实际应用中也可以 但通 即拟合效果较好时,便可利 即平均值的点估计 区别在于表述的意义不同。 x02,…,x0k )代入回归方程,对应的输出变量 jx0k 。如果把该值理解为输出变量平均值的 如果把该值理解为输出变量个体值的一个点估计 对输入变量的特定值x0=(x01,x02,…,x0k ), 区间估计分为两种。 ^0+tn- s x0(XXT)0) - yα/2(k-1)1xT y0+tn- s 1+x0(0) ^α/2(k-1)XXT)-1xT