Skip to main content

线性回归基本原理

在很多研究问题中,我们都希望建立一个定量的解释框架,用以描述一个(或一组)自变量与因变量之间的关系。一个直观的想法是,能否将这种关系表达为一个模型,类似于物理学中使用牛顿第二定律F=maF=ma来描述力和加速度之间的关系。

针对我们感兴趣的因变量(通常称为响应变量),我们希望构建一个关于自变量(通常称为解释变量或预测变量)的模型。然而,由于现实世界的复杂性,我们往往无法完全确定地描述所有影响因变量的因素,因此,一个精确的函数关系很可能是不存在的

为了处理这种不确定性,我们允许模型中存在误差项,这些误差项代表了我们未能观测或未能纳入模型的随机因素。通过引入误差项,我们得到的模型就会是一个概率模型

为了找到最佳拟合数据的模型,我们需要使用最优化方法。这通常涉及到最小化误差项的某种度量。

上述的逻辑过程就是回归分析的主要内容。出于简便的考虑,回归分析最常用的模型是线性模型,这就是线性回归(linear regression)

在行文步骤上,先使用最易于理解的一元情形作为引入,随后通过加入额外特征的需求来介绍多元情形,最后聚焦于回归系数以及线性回归的注意事项。

关键概念
  1. 高斯-马尔可夫定理及其证明
  2. 回归模型的矩阵表示
  3. 从OLS导出正规方程

记号约定

SymbolDefinition
Y\mathrm{Y}因变量。一个nn维列向量,其各分量为yi,i=1,,ny_i,i=1,\dots,n,表示第ii个观测的因变量取值。
使用Y^\hat{\mathrm{Y}}表示因变量的拟合值。
X\mathrm{X}X\mathrm{X} 是一个 n×pn \times p 的矩阵,也称设计矩阵(design matrix),其中每一行代表一次观测,每一列代表一个特征(或解释变量)。
为了包含截距项,有时我们也会将 X\mathrm{X} 视为一个 n×(p+1)n \times (p+1) 的矩阵,其中增加了一个额外的列,这个列是一个由 nn 个 1 组成的列向量,用于表示模型的截距项。在这种表示下,X\mathrm{X} 包含了 pp 个特征列加上一个截距列。
β\beta一个pp维的列向量,其中各分量代表第ii个特征在模型中的系数,i=1,,pi=1,\dots,p
如果X\mathrm{X}n×(p+1)n\times(p+1)的,那么一般会使用β0\beta_0作为截距项的系数,其余pp个分量对应各个特征。
ε\varepsilon一个nn维的列向量,其中各分量代表模型在第ii个观测下拟合的误差,i=1,,ni=1,\dots,n
ε=YY^\varepsilon=\mathrm{Y}-\hat{\mathrm{Y}}

一元自变量下的情形

如果模型只包含1个自变量,那么此时的线性回归可以用

y=kx+b+εy=kx+b+\varepsilon

来表示。其中kkxxyy的回归系数,bb为截距,kxkx则是xxyy的贡献,被称为效应(effect)。

最小二乘法(Ordinary Least Square)

如何求解kkbb呢?这就需要注意到

yi=kxi+b+εiεi=yi(kxi+b).y_i=kx_i+b+\varepsilon_i\Leftrightarrow\varepsilon_i=y_i-(kx_i+b).

一个很自然的想法是,既然误差是我们被迫引入的,能不能让它尽可能地小?以至于让它接近0呢?

那就是在ε2\varepsilon^2最小的前提下求解kkbb。使每个εi2\varepsilon_i^2最小是很苛刻的,退而求其次,可以使误差的平方和最小:

mink,binεi2=mink,bin(yi(kxi+b))2利用上面的等式=mink,binyi22yi(kxi+b)+(kxi+b)2=mink,bin2yi(kxi+b)+(kxi+b)2inyi2与优化目标无关\begin{aligned} \min_{k,b}\sum_i^n\varepsilon_i^2&=\min_{k,b}\sum_{i}^n\left(y_i-(kx_i+b)\right)^2&\text{利用上面的等式}\\ &=\min_{k,b}\sum_{i}^ny_i^2-2y_i(kx_i+b)+(kx_i+b)^2&\\ &=\min_{k,b}\sum_{i}^n-2y_i(kx_i+b)+(kx_i+b)^2&\sum_i^ny_i^2\text{与优化目标无关}\\ \end{aligned}

将优化对象记为ff,分别对kkbb求偏导数,并令其等于0,可以得到以下方程组:

{fk=in2xiyi+2bxi+2kxi2=0fb=in2yi+2kxi+2b=0\left\{\begin{aligned} \frac{\partial f}{\partial k}&=\sum_i^n-2x_iy_i+2bx_i+2kx_i^2=0\\ \frac{\partial f}{\partial b}&=\sum_i^n-2y_i+2kx_i+2b=0 \end{aligned}\right.

化简后可以得到:

{inxiyi+bxi+kxi2=0inxiεi=0inyi+kxi+b=0inεi=0\left\{\begin{aligned} &\sum_i^n-x_iy_i+bx_i+kx_i^2=0\Leftrightarrow\sum_i^nx_i\varepsilon_i=0\\ &\sum_i^n-y_i+kx_i+b=0\Leftrightarrow\sum_i^n\varepsilon_i=0 \end{aligned}\right.

从中可以发现几个有用的等式:

inxiyi+binxi+kinxi2=0xy=kx2+bxˉinyi+kinxi+nb=0yˉ=kxˉ+b\begin{aligned} &-\sum_i^nx_iy_i+b\sum_i^nx_i+k\sum_i^nx_i^2=0\Leftrightarrow\overline{xy}=k\overline{x^2}+b\bar{x}\\ &-\sum_i^ny_i+k\sum_i^nx_i+nb=0\Leftrightarrow\bar{y}=k\bar{x}+b \end{aligned}

那么就可以解出:

{k^=xyxˉyˉx2xˉ2这个表示还有更深刻的含义b^=x2yˉxˉxyx2xˉ2\left\{\begin{aligned} &\hat{k}=\frac{\overline{xy}-\bar{x}\bar{y}}{\overline{x^2}-\bar{x}^2}&\text{这个表示还有更深刻的含义}\\ &\hat{b}=\frac{\overline{x^2}\bar{y}-\bar{x}\overline{xy}}{\overline{x^2}-\bar{x}^2}& \end{aligned}\right.

对上述推导稍加整理,可以发现,在求k^\hat{k}的时候需要先计算xˉ,yˉ\bar{x},\bar{y},那么再通过等式b=yˉkxˉb=\bar{y}-k\bar{x}就能快速地得到b^\hat{b}

验证k^,b^\hat{k},\hat{b}的确使优化对象取到全局最小值

这里还需要验证如此得到的解的确使得ff最小。验证思路是将kk^,bb^k^*\neq \hat{k},b^*\neq \hat{b}代入,与代入k^,b^\hat{k},\hat{b}时的结果比较。

高斯-马尔可夫定理(Gauss-Markov Theorem)

还有一个问题没有解决,上述的优化为什么要使用ε2\varepsilon^2?首先,出于计算难度考虑,用ε\varepsilon或者ε|\varepsilon|得到的优化对象不好进一步处理。

而一个更加本质的原因是,如果进一步要求εiN(0,σ2)\varepsilon_i\sim N(0,\sigma^2),那么就有

yiN(kxi+b,σ2),y_i\sim N(kx_i+b,\sigma^2),

于是

f(yi)=12πσexp((yi(kxi+b))22σ2).f(y_i)=\frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{(y_i-(kx_i+b))^2}{2\sigma^2}\right).

如果用极大似然法求解,那么似然函数

L(k,b)=i=1nf(yi)=(2πσ2)n2exp(12σ2i=1n(yi(kxi+b))2)\begin{aligned} L(k,b)&=\prod_{i=1}^nf(y_i)\\ &=(2\pi\sigma^2)^{-\frac{n}{2}}\exp\left(-\frac{1}{2\sigma^2}\sum_{i=1}^n\left(y_i-(kx_i+b)\right)^2\right) \end{aligned}

这样就会发现maxk,bL(k,b)=mink,binεi2\max_{k,b}L(k,b)=\min_{k,b}\sum_i^n\varepsilon_i^2。此时的极大似然法就会和最小二乘法是等价的。

这个假设实际上来自于高斯-马尔可夫定理,该定理表明,当以下条件成立时,最小二乘估计就是最优线性无偏估计(Best Linear Unbiased Estimator, BLUE):

  1. (误差零均值)E(εi)=0\mathrm{E}(\varepsilon_i)=0
  2. (误差同方差)Var(εi)=σ2<+\mathrm{Var}(\varepsilon_i)=\sigma^2<+\infin
  3. (误差不相关)Cov(εi,εj)=0,ij\mathrm{Cov}(\varepsilon_i,\varepsilon_j)=0,\forall i\neq j

先需要搞清楚几个术语的意思。“最优”是指具有最小的方差;“线性”是指因变量是参数的线性组合;“无偏”是指参数估计值的期望与参数的真值相同。

但是,使用当前的语言来证明定理是很繁琐的,为此我们不妨先看多元的线性回归应该如何表示。

多元自变量下的情形

假设有数量为nn的样本有pp个变量,记作xn,px_{n,p}。延续一元时的想法,我们可以自然地写出以下表达式:

yi=j=0pβjxi,j+εi,y_i=\sum_{j=0}^p\beta_jx_{i,j}+\varepsilon_i,

这里β0\beta_0表示常数项,对应的xi,01x_{i,0}\equiv1

如何求解参数呢?或许可以继续优化ε2\varepsilon^2,求偏导,得到一个线性方程组,然后解出它。

或者,也可以试试将nn个方程一次性写在一起,看看有没有快捷方法...

矩阵表示的线性回归

根据我们开头的记号约定,我们可以用矩阵乘法来表示线性回归模型:

Y=Xβ+ε,\mathrm{Y}=\mathrm{X}\beta+\varepsilon,

其中

Y=[y1y2yn],X=[1x1,1x1,2x1,p1x2,1x2,2x2,p1xn,1xn,2xn,p],β=[β0β1βp],ε=[ε1ε2εn],\mathrm{Y}= \begin{bmatrix} y_1\\ y_2\\ \vdots\\ y_n \end{bmatrix}, \mathrm{X}= \begin{bmatrix} 1&x_{1,1}&x_{1,2}&\cdots&x_{1,p}\\ 1&x_{2,1}&x_{2,2}&\cdots&x_{2,p}\\ \vdots&\vdots&\vdots&\ddots&\vdots\\ 1&x_{n,1}&x_{n,2}&\cdots&x_{n,p} \end{bmatrix}, \mathrm{\beta}= \begin{bmatrix} \beta_0\\ \beta_1\\ \vdots\\ \beta_p \end{bmatrix}, \mathrm{\varepsilon}= \begin{bmatrix} \varepsilon_1\\ \varepsilon_2\\ \vdots\\ \varepsilon_n \end{bmatrix},

每一行正好对应着我们原先采用的表示。

矩阵表示下的OLS

在这种表示下,我们再进行一次OLS。很显然

ε=YXβ,\varepsilon=\mathrm{Y}-\mathrm{X}\beta,

而我们的目标mini=1nεi2\min\sum_{i=1}^n\varepsilon_i^2就可以表示为minε\min||\varepsilon||或者minεTε\min\varepsilon^T\varepsilon。也就是说

minεTε=min(YXβ)T(YXβ).\min \varepsilon^T\varepsilon = \min (\mathrm{Y} - \mathrm{X}\beta)^T(\mathrm{Y} - \mathrm{X}\beta).

将上式展开,我们得到

minεTε=min(YTYYTXββTXTY+βTXTXβ).\min \varepsilon^T\varepsilon = \min (\mathrm{Y} ^T \mathrm{Y} - \mathrm{Y} ^T \mathrm{X} \beta - \beta^T \mathrm{X}^T \mathrm{Y} + \beta^T \mathrm{X}^T \mathrm{X} \beta).

对上式关于β\beta求导,得到

β(εTε)=2XTY+2XTXβ.\frac{\partial}{\partial \beta} (\varepsilon^T \varepsilon) = -2\mathrm{X}^T \mathrm{Y} + 2\mathrm{X}^T \mathrm{X} \beta.
这里需要矩阵求导的知识

首先,YTY\mathrm{Y} ^T \mathrm{Y}β\beta无关,因此不考虑。

第二项

YTXββ=XTY\frac{\partial\mathrm{Y} ^T \mathrm{X} \beta}{\partial\beta}=\mathrm{X}^T\mathrm{Y}

这是因为YTXβ\mathrm{Y} ^T \mathrm{X} \beta是一个标量,即1×11\times1维矩阵,具体值为

i=1nj=1pyixijβj.\sum_{i=1}^n\sum_{j=1}^py_ix_{ij}\beta_{j}.

β\beta是一个pp维列向量,因此求导实际上是对β\beta的分量逐个求导,这就得到了列向量

(i=1nyixi1,,i=1nyixip)T,\left(\sum_{i=1}^ny_ix_{i1},\cdots,\sum_{i=1}^ny_ix_{ip}\right)^T,

它恰好是XTY\mathrm{X}^T\mathrm{Y}的结果。

第三项

βTXTYβ=XTY\frac{\partial\beta^T \mathrm{X}^T\mathrm{Y} }{\partial\beta}=\mathrm{X}^T\mathrm{Y}

与上面类似,βTXTY\beta^T \mathrm{X}^T\mathrm{Y}也是一个标量,具体值为

i=1nj=1pyixijβj.\sum_{i=1}^n\sum_{j=1}^py_ix_{ij}\beta_{j}.

那么求导结果就与上一项一致。

最后一项

βTXTXββ=2XTXβ\frac{\partial\beta^T \mathrm{X}^T \mathrm{X} \beta}{\partial\beta}=2\mathrm{X}^T\mathrm{X}\beta

同样地,βTXTXβ\beta^T \mathrm{X}^T \mathrm{X} \beta也是标量,具体值为

i=1n(j=1pxijβj)2.\sum_{i=1}^n\left(\sum_{j=1}^px_{ij}\beta_j\right)^2.

这时也是逐个对β\beta的分量求导,得到列向量

(2i=1nj=1pxi1xijβj,,2i=1nj=1pxipxijβj)T,\left(2\sum_{i=1}^n\sum_{j=1}^px_{i1}x_{ij}\beta_j,\cdots,2\sum_{i=1}^n\sum_{j=1}^px_{ip}x_{ij}\beta_j\right)^T,

这恰好是2XTXβ2\mathrm{X}^T\mathrm{X}\beta

总结一下,遇到矩阵求导,首先将其写成求和形式,然后逐项求导。

令导数为零,解得

2XTY+2XTXβ=0.-2\mathrm{X}^T \mathrm{Y} + 2\mathrm{X}^T \mathrm{X} \beta = 0.

进一步化简,得到最小二乘法的正规方程

XTXβ=XTY.\mathrm{X}^T \mathrm{X} \beta = \mathrm{X}^T \mathrm{Y} .

最后,我们可以解出β\beta的估计值

β^=(XTX)1XTY.\hat{\beta} = (\mathrm{X}^T \mathrm{X})^{-1} \mathrm{X}^T \mathrm{Y} .

证明高斯马尔可夫定理

线性

线性是指参数β\betaY\mathrm{Y}的线性组合。无论是一元情形还是矩阵表示的多元情形,OLS解的形式都揭示了这一点。

无偏性

β^\hat{\beta}取期望,

E(β^)=(XTX)1XTE(Y)=(XTX)1XTE(Xβ+ε)=β+(XTX)1XTE(ε)=β\begin{aligned} \mathrm{E}(\hat{\beta})&=(\mathrm{X}^T \mathrm{X})^{-1} \mathrm{X}^T \mathrm{E}(\mathrm{Y})\\ &=(\mathrm{X}^T \mathrm{X})^{-1} \mathrm{X}^T \mathrm{E}(\mathrm{X}\beta+\varepsilon)\\ &=\beta+(\mathrm{X}^T \mathrm{X})^{-1} \mathrm{X}^T \mathrm{E}(\varepsilon)\\ &=\beta \end{aligned}

其中用到了误差零均值的假设。

最佳

首先需要写出Var(β^)\mathrm{Var}(\hat{\beta})

Var(β^)=E((β^β)(β^β)T)=E((XTX)1XTεεTX(XTX)1)\begin{aligned} \mathrm{Var}(\hat{\beta})&=\mathrm{E}((\hat{\beta}-\beta)(\hat{\beta}-\beta)^T)\\ &=\mathrm{E}\left((\mathrm{X}^T \mathrm{X})^{-1} \mathrm{X}^T \varepsilon\varepsilon^T\mathrm{X}(\mathrm{X}^T\mathrm{X})^{-1}\right) \end{aligned}

利用同方差和误差两两不相关的假设,可以将εεT\varepsilon\varepsilon^T写成σ2I\sigma^2\mathrm{I}

所以

Var(β^)=σ2(XTX)1.\mathrm{Var}(\hat{\beta})=\sigma^2(\mathrm{X}^T\mathrm{X})^{-1}.

如果存在一个比OLS更优的线性无偏估计,那么其形式为β~=CY\tilde{\beta}=\mathrm{C}\mathrm{Y},其中

C=(XTX)1XT+D,\mathrm{C}=(\mathrm{X}^T\mathrm{X})^{-1}\mathrm{X}^T+\mathrm{D},

D\mathrm{D}是一个非零矩阵。

因为无偏,所以E(β~)=β\mathrm{E}(\tilde{\beta})=\beta。那么就通过

E(β~)=E(CY)=E(((XTX)1XT+D)(Xβ+ε))=(I+DX)β\begin{aligned} \mathrm{E}(\tilde{\beta})&=\mathrm{E}(\mathrm{C}\mathrm{Y})\\ &=\mathrm{E}\left(((\mathrm{X}^T\mathrm{X})^{-1}\mathrm{X}^T+\mathrm{D})(\mathrm{X}\beta+\varepsilon)\right)\\ &=(\mathrm{I}+\mathrm{D}\mathrm{X})\beta \end{aligned}

知道DX=0\mathrm{D}\mathrm{X}=0

而方差

Var(β~)=Var(CY)=σ2CCT=σ2(XTX)1+σ2DDT=Var(β^)+σ2DDT\begin{aligned} \mathrm{Var}(\tilde{\beta})&=\mathrm{Var}(\mathrm{C}\mathrm{Y})\\ &=\sigma^2\mathrm{C}\mathrm{C}^T\\ &=\sigma^2(\mathrm{X}^T\mathrm{X})^{-1}+\sigma^2\mathrm{D}\mathrm{D}^T\\ &=\mathrm{Var}(\hat{\beta})+\sigma^2\mathrm{D}\mathrm{D}^T \end{aligned}

就不可能小于Var(β^)\mathrm{Var}(\hat{\beta})。这样就通过反证法完成了证明。

关于线性回归的注意事项

本章对线性回归的原理做了基本说明,但是仍然需要强调一些事情: