常用算法分析——最小二乘法

常用算法分析——最小二乘法

目录

  1. 引言
  2. 普通最小二乘法(OLS)
  3. OLS实现
  4. 广义最小二乘法(GLS)简介

1、引言

最小二乘法应该是我们最早接触的一种数值估计算法。它的特殊形式——一元线性回归,被广泛地应用于多种数值统计分析场合。例如,在验证欧姆定律(U = IR)时,通常的实验方法是分别测量出多个不同电压Ui下,通过电阻的电流值Ii,然后将这些(Ui, Ii)观测点,代入到一元最小二乘公式(1-1)中,便可计算出。

(1-1)

由此可得出线性拟合式(1-2),

(1-2)

其中, 是残差。通过此方法将观测点及拟合曲线绘制在同一个直角坐标系中,正常情况下可以直观地看到,观测点会均匀分布在直线附近,且每个点的残差平方和(即方差)最小。
最小二乘法”由此得名。

2、普通最小二乘法(OLS)

最小二乘法显然不只是一元线性回归那么简单,它还可以应用于多元参数的拟合。本节将对普通最小二乘法(Ordinary Least Squares)的原理进行简单的推导和证明。

2.1、高斯—马尔可夫定理

高斯—马尔可夫定理(the Gauss–Markov theorem,简称G-M定理) 在给定经典线性回归的假定下,最小二乘估计量是具有最小方差的线性无偏估计量(即Best Linear Unbiased Estimator,简称BLUE)。

G-M定理共对OLS普通线性方程提出5个假设:
假设1(线性关系):要求所有的母集团参数(population parameters)为常数,用来保证模型为线性关系。即,如果母集团方程为必须为常数,ε为无法检测的误差项,即实验过程中模型没有包含的因素。
假设2(随机采样):假设我们有n个调查的样本,那么这n个样本必须是从母集团里面随机抽样得出的。
假设3(无完全共线关系):在样本(母集团)中,没有独立变量是常数,且独立变量之间不能有完全共线性。
假设4(零条件均值):母集团方程的误差项均值为0,且均值不受到独立变量的影响,即E(ε | X1, X2, …, Xk)=0。
假设5(同方差性): 误差项ε的方差为一个固定不变的常数,且不受到独立变量的影响,即Var(ε | X1, X2, …, Xk)=σ2或Var(ε)=σ2I

G-M定理的意义在于,当上述假定成立时,我们不需要再去寻找其它无偏估计量,因为没有一个会优于普通最小二乘估计量。换言之,如果存在一个好的线性无偏估计量,那么这个估计量的方差最多与普通最小二乘估计量的方差一样小,而不会小于普通最小二乘估计量的方差。

2.2、最小二乘估计量推导

假设使用多输入单输出(MISO)线性系统对未知系统进行估计,则估计系统的输入输出应满足

(2-1)

此式称为系统的估计量。接下来,定义第 i 次观测值 yi 应满足

(2-2)

其中,的估计量,εi 是第 i 次观测时无法预测的误差项。
由此可得

(2-3)

若想求得使得式(2-3)取得极小值,那么需要对D分别求出的偏导数,并令其等于零,即,


(2-4)

其中,r=1, 2, 3, …, k,联立这k个关于的方程,即为法方程组(或正规方程组),而法方程组的解即为式(2-1)的系数,通过此方法得到的估计量则称为系统的最小二乘估计量。可以证明,对于满足上述5个假设的OLS方程组,存在唯一实数解。
特殊地,当k=1时,MISO退化成单输入单输出(SISO)的一元系统,则其法方程组可写作:

\left\{ \begin{array}{rcl} \sum_{i=1}^n(\hat{\beta}_0+\hat{\beta}_1x_i)&=& \sum_{i=1}^ny_i \\ \sum_{i=1}^n(\hat{\beta}_0x_i+\hat{\beta}_1x_i^2)&=&\sum_{i=1}^nx_iy_i \end{array}\right. \\ \Rightarrow \left\{ \begin{array}{rcl} n\hat\beta_0+(\sum_{i=1}^nx_i)\hat{\beta}_1&=& \sum_{i=1}^ny_i \\ (\sum_{i=1}^nx_i)\hat{\beta}_0+(\sum_{i=1}^nx_i^2)\hat{\beta}_1&=&\sum_{i=1}^nx_iy_i \end{array}\right.

求解后,可得出式(1-1)的结果。

2.3、矩阵形式

上节已推导出计算最小二乘估计量的一般方法,但显然,式(2-4)的形式过于繁琐。对于多元线性回归的场合,法方程组将会变得异常复杂,难以求解。同时,这种代数形式的公式也不便于得出更为一般的规律。因此,本节将用矩阵的形式,再次推导OLS的计算过程,并且尝试讨论法方程组解的存在问题。
首先,定义估计量

(2-5)

其中,。
误差

(2-6)

其中,
,,。
取误差向量的2-范数[1]的平方

\begin{array}{rcl} \boldsymbol{D}&=&\left\|\boldsymbol{\varepsilon}\right\|_2^2=\boldsymbol{\varepsilon}^\text{T}\boldsymbol{\varepsilon} \\ &=& (\boldsymbol{Y}-\boldsymbol{X}\hat{\boldsymbol{\beta}})^\text{T}(\boldsymbol{Y}-\boldsymbol{X}\hat{\boldsymbol{\beta}}) \\ &=& (\boldsymbol{Y}^\text{T}-\hat{\boldsymbol{\beta}}^\text{T}\boldsymbol{X}^\text{T})(\boldsymbol{Y}-\boldsymbol{X}\hat{\boldsymbol{\beta}}) \\ &=& \boldsymbol{Y}^\text{T}\boldsymbol{Y}-\hat{\boldsymbol{\beta}}^\text{T}\boldsymbol{X}^\text{T}\boldsymbol{Y}-\boldsymbol{Y}^\text{T}\boldsymbol{X}\hat{\boldsymbol{\beta}}+\hat{\boldsymbol{\beta}}^\text{T}\boldsymbol{X}^\text{T}\boldsymbol{X}\hat{\boldsymbol{\beta}} \\ &=& \boldsymbol{Y}^\text{T}\boldsymbol{Y}-2\boldsymbol{Y}^\text{T}\boldsymbol{X}\hat{\boldsymbol{\beta}}+\hat{\boldsymbol{\beta}}^\text{T}\boldsymbol{X}^\text{T}\boldsymbol{X}\hat{\boldsymbol{\beta}} \end{array} (2-7)

然后对 D 求的偏导,并令其等于零,可得[2]

\begin{array}{rcl} \frac{\partial\boldsymbol{D}}{\partial\hat{\boldsymbol{\beta}}}=-2\boldsymbol{X}^\text{T}\boldsymbol{Y}+2\boldsymbol{X}^\text{T}\boldsymbol{X}\hat{\boldsymbol{\beta}}&=&0\\ \Rightarrow \boldsymbol{X}^\text{T}\boldsymbol{X}\hat{\boldsymbol{\beta}}&=&\boldsymbol{X}^\text{T}\boldsymbol{Y}\end{array} (2-8)

式(2-8)即为法方程组的矩阵形式。为了进一步证明极小值存在,可对D求的二阶导数

(2-9)

因此,式(2-9)是正定阵,故该问题的最优解存在。

接下来,分情况讨论法方程组的解。
1)Rank( X )=k+1,即 X 列满秩。
CXTX ,显然,Rank(C)=k+1,且Ck阶正定阵。因此,C-1存在,同时,可知式(2-9)正定,故极值点存在,得

(2-10)

2)Rank( X )= r,0<rk+1。
此时,方程组并不符合假设3的条件,即存在完全共线的变量,但可以证明,方程组是相容的[3],因此,方程组有唯一的极小范数解[4],为

(2-11)

这种情况下,估计量将无法保证是BLUE,此种情况已超出本文讨论的范围,从略。此时,可将共线的变量合并后,重新计算。
由此也可看出,若分析场景中无法保证所选变量完全共线时,建议先通过其他相关性分析算法,对数据进行一次前期的清洗,选择那些对因变量影响大、关联性强的自变量,剔除那些关联性弱或与其他自变量存在共线(或近似共线)的自变量。

综上所述,式(2-10)给出了计算最小二乘估计量的一般公式,根据此式,便可实现具体的最小二乘估计算法。

2.4、最小二乘估计量的统计特性

1)线性性
式(2-10)已表明,是 Y 的线性组合。

2)无偏性
若证明。
证明

\begin{array}{rcl}\text{E}(\hat{\boldsymbol{\beta}}) &=& \text{E}([(\boldsymbol{X}^\text{T}\boldsymbol{X})^{-1}\boldsymbol{X}]^\text{T}\boldsymbol{Y})\\&=&\text{E}([(\boldsymbol{X}^\text{T}\boldsymbol{X})^{-1}\boldsymbol{X}]^\text{T}(\boldsymbol{X}\hat{\boldsymbol{\beta}}+\boldsymbol{\varepsilon}))\\&=&\text{E}(\hat{\boldsymbol{\beta}}+[(\boldsymbol{X}^\text{T}\boldsymbol{X})^{-1}\boldsymbol{X}]^\text{T}\boldsymbol{\varepsilon})\\ &=& \text{E}(\boldsymbol{\beta}) \\ &=& \boldsymbol{\beta}\end{array} (2-12)

证毕。█

3)有效性
有效性是个定性的特性,即估计量的方差越小,则说明此估计量越有效。而G-M定理已指出,最小二乘估计量是最优的,即是所有估计量中最小的。现在简单证明这一结论。
证明:
首先求[5]

\begin{array}{rcl}\text{Var}(\hat{\boldsymbol{\beta}}) &=& \text{E}([(\hat{\boldsymbol{\beta}}-\boldsymbol{\beta})(\hat{\boldsymbol{\beta}}-\boldsymbol{\beta})^\text{T}]\\&=&\text{E}([(\boldsymbol{X}^\text{T}\boldsymbol{X})^{-1}\boldsymbol{X}]^\text{T}\boldsymbol{\varepsilon}\boldsymbol{\varepsilon}^\text{T}\boldsymbol{X}(\boldsymbol{X}^\text{T}\boldsymbol{X})^{-1})\\&=& [(\boldsymbol{X}^\text{T}\boldsymbol{X})^{-1}\boldsymbol{X}]^\text{T}\text{E}(\boldsymbol{\varepsilon}\boldsymbol{\varepsilon}^\text{T})\boldsymbol{X}(\boldsymbol{X}^\text{T}\boldsymbol{X})^{-1}\\ &=& [(\boldsymbol{X}^\text{T}\boldsymbol{X})^{-1}\boldsymbol{X}]^\text{T}(\sigma^2\boldsymbol{I})\boldsymbol{X}(\boldsymbol{X}^\text{T}\boldsymbol{X})^{-1} \\ &=& \sigma^2(\boldsymbol{X}^\text{T}\boldsymbol{X})^{-1}\end{array} (2-13)

再证明式(2-13)是最小的。
令是无偏的,则

这表明,CXI。把 C 代入到式(2-10)、式(2-13)中可得,

令,则

\text{Var}(\tilde{\boldsymbol{\beta}})=\sigma^2\boldsymbol{DD}^\text{T}+\sigma^2[(\boldsymbol{D}+(\boldsymbol{X}^\text{T}\boldsymbol{X})^{-1}\boldsymbol{X})^\text{T})(\boldsymbol{D}+(\boldsymbol{X}^\text{T}\boldsymbol{X})^{-1}\boldsymbol{X})^\text{T})^\text{T}]

由于,所以

(2-14)

因为DDT是非负定矩阵[6],所以是最小的。█

综上所述,最小二乘估计量是最小方差线性无偏估计量(BLUE)

2.5、OLS推广

实际上,我们经常使用OLS对非线性系统进行回归分析。通常,有以下几种情形:多项式回归、对数回归、分段回归等。
1)多项式回归
x=(x0, x1, x2, …, xk)T,代入方程组进行求解。
但需注意,多项式的阶数不能过高,一般地,当k>3时,拟合误差会变得很大,拟合结果基本无法使用。因此,对于复杂曲线的拟合,可将曲线进行分段,然后采用低阶多项式进行拟合计算。
2)对数回归
z=lnx(或z=ex),代入方程组进行求解。
采用对数回归时,应注意x的定义域,若∃x≤0,则不能使用此方法。另外,对数有“缩小”效果,指数有“放大”效果。当x的范围跨度过大(lg(max(x)-min(x))>3),且无明显线性特征时,可选用对数变换;当x的变化幅度过小((max(x)-min(x))/mean(x)≪1),且无明显线性特征时,可选用指数变换。

3、OLS实现

对于简单的低阶(k≤2)估计而言,直接使用式(2-10)即可。但注意到,式(2-10)中需要计算矩阵 XTX 的逆,而随着 k 的增长,这一步将变得十分低效,所以,应考虑使用某种方法避开矩阵求逆,于是我们想到了矩阵的QR分解。

3.1、QR分解

定理3.1  设,[7]则存在正交阵[8] Q 及正线上三角阵 R ,使得 AQR
证明:因为 A 是满秩方阵,将 A 写成列分块形式: A =(a1, a2, …, an),则a1, a2, …, an 均为,且 (a1, a2, …, an)=(u1, u2, …, un)R 成立,其中 R 为正线上三角阵。
但由于,故有

(3-1)

注意 Q=( u 1, u 2, …, u n )的各列标准正交,故 QTQI ,即 Q 为一个正交阵。█
Q有以下良好的性质:
1)Q 是非奇异的,且det(Q)=±1;
2)Q -1Q T
3)正交阵的乘积仍是正交阵;
4)Q 的特征值的模为1。
定理3.2(Householder变换) 对于任意,使得

(3-2)

成立。其中 为n维自然基[9],是实数,且。
计算可得,

(3-3)

定理3.2说明,任意列向量被Householder阵左乘后,可变换成与某自然基的共线向量。
推论1(Householder变换法) 对于满秩方阵 A ,将其按列分块得 A =(α1, α2, …, αn),取

(3-4)

则,有

\boldsymbol{H}_1\boldsymbol{A}=(\boldsymbol{H}_1\boldsymbol{\alpha}_1+\boldsymbol{H}_1\boldsymbol{\alpha}_2+\ldots+\boldsymbol{H}_1\boldsymbol{\alpha}_n)=\left[\begin{matrix} a_1 & * & \ldots &* \\0& \\ \vdots & &\boldsymbol{B}_1 & \\0& \end{matrix} \right] (3-5)

将矩阵按列分块,得 B1 =(β2, …, βn),取

(3-6)

(3-7)

(3-8)

依次进行下去,得到第n-1阶的Householder阵Hn-1,得

(3-9)

由于H-1H,所以令QH1H2Hn-1,则AQR。█

由此可见,使用推论1提供的方法,对于任意满秩方阵,只需经过向量加减、矩阵相乘运算和基本四则运算就能实现QR分解。

现将X进行QR分解,即令XQR,则式(2-8)得

\begin{aligned}\ \ \ \ \boldsymbol{X}^\text{T}\boldsymbol{X}\boldsymbol{\hat{\beta}}&=\boldsymbol{X}^\text{T}\boldsymbol{Y}\\ \Leftrightarrow (\boldsymbol{QR})^\text{T}\boldsymbol{QR}\boldsymbol{\hat{\beta}}&=(\boldsymbol{QR})^\text{T}\boldsymbol{Y}\\ \Leftrightarrow \boldsymbol{R}^\text{T}\boldsymbol{Q}^\text{T}\boldsymbol{QR}\boldsymbol{\hat{\beta}}&=\boldsymbol{R}^\text{T}\boldsymbol{Q}^\text{T}\boldsymbol{Y} \\ \Leftrightarrow \boldsymbol{R}^\text{T}\boldsymbol{R}\boldsymbol{\hat{\beta}}&=\boldsymbol{R}^\text{T}\boldsymbol{Q}^\text{T}\boldsymbol{Y} \\ \Leftrightarrow \boldsymbol{R}\boldsymbol{\hat{\beta}}&=\boldsymbol{Q}^\text{T}\boldsymbol{Y}\end{aligned} (3-10)

求解方程组(3-10)显然不需要求 R-1 了,这是因为 R 是上三角阵,所以只需先计算出 βn ,然后将其代入到第n-1个方程中,计算出βn-1;再将βnβn-1代入到第n-2个方程中,计算出βn-2,以此类推,直至求出所有β为止。

综上所述,借助QR分解的方法,可以避免矩阵求逆,有效地降低了最小二乘算法的复杂度。

3.2、Apache Commons Math

Apache公共包中有一个专门用于数学计算的工具包Math(org.apache.commons.math3)[10],它提供了丰富且高效的数学分析算法,这其中就包含普通最小二乘法(org.apache.commons.math3.stat.regression.OLSMultipleLinearRegression类)。
OLSMultipleLinearRegression类的求解分两步:
1)按照推论1给出的方法,对X进行QR分解;
2)借助org.apache.commons.math3.linear.QRDecomposition类,求解方程组(3-10)。
此外,还提供评价OLS效果的一些系数计算方法,如SSRSSTOr2,调整的r2

3.3、应用实例

基于Math包,我们可以轻易地开发出应用最小二乘法进行数据分析的功能。下面就以对一个时间序列,进行二次多项式拟合为例,说明OLSMultipleLinearRegression类的具体使用方法。
:设某时间序列为 S=(1.6, 4.4, 9.4, 16.6, 25.5)[11],猜测其符合s(k)=b0b1kb2k2k=1, 2, 3, 4, 5。现使用最小二乘法对 S 进行二次多项式拟合。
:构造

然后传给如下代码:

 OLSMultipleLinearRegression regression = new OLSMultipleLinearRegression();
 regression.newSampleData(Y, X);
 double[] b = regression.estimateRegressionParameters();
 // s=b[0]+b[1]*k+b[2]*k*k
 double r2 = regression.calculateAdjustedRSquared();

所得数组b,即为拟合系数。█

4、广义最小二乘法(GLS)简介

在实际情况中,OLS成立的5个假设常常难以满足。当假设5(同方差性)不能满足时,即ε的方差随输入的变化而变化,那么之前对OLS的推导过程就不再成立了。对此,可以通过一些线性变换,使得模型满足同方差的假设,即又转换成OLS模型了。
具体地,设线性系统 Yε ,若Var(ε)=σ2Ω,其中,Ω是正定对称阵。
则令Ω-1PTP,则ΩP-1(PT)-1,那么,

在式(2-6)等号两端同乘P,有

(4-1)

进一步地,上式可表示为

(4-2)

其中,ε*Y*PYX*PX。变换后的随机干扰项具有均齐方差:

可以看出,模型(4-2)已满足OLS的所有假设,因此可以采用OLS进行估计。模型(4-2)的OLS估计称为原模型的GLS估计量:

(4-3)

式(4-3)的结论是在 Ω 已知的情况下给出的,但遗憾的是,在绝大多数情况下,Ω 是未知的。因此,我们需要采用以下两步法进行估计:
第一步:估计 Ω 中的未知参数,得到;
第二步:利用第一步得到的进行GLS估计:

在实际应用过程中,我们往往将上述"两步法"重复进行多次,直到相邻两次的估计结果差别很小为止(称为"收敛")。这种做法有助于提高估计的有效性。此方法称作可行的广义最小二乘估计法(FGLS)



  1. 在矩阵理论中,向量的p-范数都是等价的,此处之所以取2-范数,很大程度上是出于接下来求偏导简便的考虑。 ↩

  2. ∂x/∂x=I,∂xT/∂x=I,∂(xTA)/ ∂x=A,∂(xTATAx)/ ∂x=2ATAx。 ↩

  3. 线性方程组Ax=b相容的充要条件是AA+b=b,其中A+是A的M-P广义逆。 ↩

  4. 即满足 ‖x‖=min(Ax=b)‖x‖ 的解,其中‖‖是Cn中由内积诱导的范数。 ↩

  5. 向量方差与标量方差的求法不同,向量方差对应的是协方差矩阵:Var(b)=E[(b-E(b)(b-E(b))T)]。 ↩

  6. 关于DDT的二次型是qTDDTq=zTz≥0。 ↩

  7. Rn(n×n)表示n阶的实数方阵,矩阵的秩为n,即满秩方阵。 ↩

  8. 即QQT=QTQ=I。 ↩

  9. 只有一个元素为1,其他元素均为0的列向量。 ↩

  10. 官网:http://commons.apache.org/proper/commons-math/。 ↩

  11. 按s(k)=0.5+k2设计,存在随机误差。 ↩

你可能感兴趣的:(常用算法分析——最小二乘法)