0%

多元线性回归(OLS)求解的矩阵推导

基本设定

考虑一个常见的多元回归 \[ \begin{cases} Y_1 &= \beta_0 + \beta_1 X_{11} + ... + \beta_k X_{k1} + \epsilon_1 \\ Y_2 &= \beta_0 + \beta_1 X_{12} + ... + \beta_k X_{k2} + \epsilon_2 \\ \vdots \\ Y_N &= \beta_0 + \beta_1 X_{1N} + ... + \beta_k X_{kN} + \epsilon_N \end{cases} \]

其中\(X_{kN}\)的下标 \(k\) 表示第 \(k\) 个变量(特征),下标 \(N\) 表示第 \(N\) 个样本。

它可以转写成这样的矩阵形式 \[ \begin{bmatrix} Y_1 \\ Y_2 \\ \vdots \\ Y_N \end{bmatrix} = \begin{bmatrix} 1 & X_{11} & ... & X_{k1} \\ 1 & X_{12} & ... & X_{k2} \\ \vdots & \vdots & \ddots & \vdots\\ 1 & X_{1N} & ... & X_{kN} \end{bmatrix} \begin{bmatrix} \beta_0 \\ \beta_1 \\ \vdots \\ \beta_k \end{bmatrix} + \begin{bmatrix} \epsilon_1 \\ \epsilon_2 \\ \vdots \\ \epsilon_N \end{bmatrix} \]

更进一步,我们可以将它写为 \[ \mathbf{Y} = \mathbf{X} \boldsymbol{\beta} + \boldsymbol{\varepsilon} \]

在线性回归中,我们的目标是找出一个 \(\widehat{\boldsymbol{\beta}}\) 使得上述回归方程残差平方和最小化 (minimize the sum of squared residuals) \[ \begin{aligned} RSS(\boldsymbol{\beta}) &= \boldsymbol{\varepsilon}^\top \boldsymbol{\varepsilon} \\ &= \left( \mathbf{Y} - \mathbf{X} \boldsymbol{\beta} \right)^\top \left( \mathbf{Y} - \mathbf{X} \boldsymbol{\beta} \right) \\ &= \mathbf{Y} ^\top \mathbf{Y} - \boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{Y} - \mathbf{Y}^\top \mathbf{X} \boldsymbol{\beta} + \boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{X} \boldsymbol{\beta} \rightarrow \min_{\beta_0, \beta_1, ..., \beta_k} \end{aligned} \]

即求 \(\widehat{\boldsymbol{\beta}}\) 使得 \[ \dfrac{\partial RSS(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}} = 0 \]

RSS最优化求导过程

由于 \(RSS\) 是一个标量,所以它经过分解后得到的四个部分 \(\mathbf{Y} ^\top \mathbf{Y}, \boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{Y}, \mathbf{Y}^\top \mathbf{X} \boldsymbol{\beta}, \boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{X} \boldsymbol{\beta}\) 也(只能)是标量。\(RSS\)\(\boldsymbol{\beta}\) 求导是一个标量对向量求导的问题,可以视作 \(RSS\) 分解后的四个部分分别对向量 \(\boldsymbol{\beta}\) 求导。我们可以先各部分逐一求导,最后再将它们加总起来。

第一, \(\mathbf{Y} ^\top \mathbf{Y}\)\(\boldsymbol{\beta}\) 求导,由于 \(\mathbf{Y} ^\top \mathbf{Y}\) 中不含任何 \(\boldsymbol{\beta}\) 中的元素,所以这项求导的结果为 \(\mathbf{0}\)

第二, \(\boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{Y}\)\(\widehat{\boldsymbol{\beta}}\) 求导,其中 \(\boldsymbol{\beta}^{T}\) 是一个 \(k+1\) 维的行向量,而 \(\mathbf{X}^\top \mathbf{Y}\)\(k+1\) 维的列向量。 不妨假设\(\mathbf{X}^\top \mathbf{Y}\)\((a_{0}, a_{1}, \dots, a_{k})^{\top}\),则\(\boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{Y}\)\(a_{0}\beta_{0} + a_{1}\beta_{1} + \cdots + a_{k}\beta_{k}\)。显然有:

\[ \frac{\partial\left(\boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{Y}\right)}{\partial \boldsymbol{\beta}} = \left(\begin{array}{c} \frac{\partial\left(\boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{Y}\right)}{\partial\boldsymbol{\beta}_{0}} \\ \frac{\partial\left(\boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{Y}\right)}{\partial \beta_{1}} \\ \vdots \\ \frac{\partial\left(\boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{Y}\right)}{\partial \beta_{k}} \\ \end{array}\right)=\left(\begin{array}{c} a_{0} \\ a_{1} \\ \vdots \\ a_{k} \end{array}\right) = \boldsymbol{X}^{T} \boldsymbol{Y} = \left(\boldsymbol{Y}^{T} \boldsymbol{X}\right)^{T} \]

第三,由于标量的转置为自身,即 \(\boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{Y} = \mathbf{Y}^\top \mathbf{X} \boldsymbol{\beta}\)。所以,第三项求导的结果与第二项相同。

最后,\(\boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{X} \boldsymbol{\beta}\) 的求导过程稍微有点复杂。我们先给出对\(\boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{X} \boldsymbol{\beta}\)求导的结果 \[ \begin{aligned} \frac{\partial\left(\boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{X} \boldsymbol{\beta}\right)}{\partial \boldsymbol{\beta}} = 2\mathbf{X}^\top \mathbf{X} \boldsymbol{\beta} \end{aligned} \]

并给出两种求导的方法。

方法一:二次型展开求导

因为\(\boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{X} \boldsymbol{\beta}\) 是一个二次型,我们不妨令 \(y = \boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{X} \boldsymbol{\beta}\),其中 \(\mathbf{X}^\top \mathbf{X}\)是一个 \(k + 1\)维的对称矩阵,令 \(\mathbf{A} = \mathbf{X}^\top \mathbf{X} = (a_{ij})_{(k+1) \times (k+1)}\), \(\boldsymbol{\beta} = (\beta_{0}, \beta_{1}, \cdots, \beta_{k})^\top\)

那么 \[ \frac{\mathrm{d} y}{\mathrm{~d} \boldsymbol{\beta}}=\left(\frac{\partial y}{\partial \beta_{0}}, \frac{\partial y}{\partial \beta_{1}}, \cdots, \frac{\partial y}{\partial \beta_{k}}\right)^{\top} \]

故只要求出 \(\frac{\partial y}{\partial \beta_{k}}, k=0,1, \cdots, k\) 由于 \[ \begin{aligned} y &=\sum_{i=0}^{k} \sum_{j=0}^{k} a_{i j} \beta_{i} \beta_{j} \\ &=\sum_{i \neq k} \sum_{j \neq k} a_{i j} \beta_{i} \beta_{j}+2 \sum_{i \neq k} a_{i k} \beta_{i} \beta_{k}+a_{k k} \beta_{k}^{2}, \end{aligned} \]

\[ \begin{aligned} \frac{\partial y}{\partial \beta_{k}} &=2 \sum_{i \neq k} a_{i k} \beta_{i}+2 a_{k k} \beta_{k} \\ &=2 \sum_{i=0}^{k} a_{i k} \beta_{i} \\ &=2 \sum_{j=0}^{k} a_{k j} \beta_{j} \end{aligned} \] 从而 \[ \frac{\mathrm{d} y}{\mathrm{~d} \boldsymbol{\beta}}=\left(2 \sum_{j=0}^{k} a_{0 j} \beta_{j}, 2 \sum_{j=0}^{k} a_{1 j} \beta_{j}, \cdots, 2 \sum_{j=0}^{k} a_{k j} \beta_{j}\right)^{\top} \] \[ =2 \mathbf{A} \boldsymbol{\beta} = 2\mathbf{X}^\top \mathbf{X} \boldsymbol{\beta} \]

方法二:根据矩阵积的求导法则进行求导

在进行这个求导运算前,我们需要知道关于矩阵求导的两个公式 \[ \partial(\mathbf{XY}) = \partial(\mathbf{X})\mathbf{Y} + \mathbf{X}\partial(\mathbf{Y})\]

\[ \frac{\partial \mathbf{x}^{T} \mathbf{a}}{\partial \mathbf{x}}=\frac{\partial \mathbf{a}^{T} \mathbf{x}}{\partial \mathbf{x}}=\mathbf{a} \]

在这两个公式的基础上,我们可以将\(\boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{X} \boldsymbol{\beta}\) 看作 \(\boldsymbol{\beta}^\top\), \(\mathbf{X}^\top\mathbf{X}\)\(\boldsymbol{\beta}\) 三者相乘。由此有

\[ \begin{aligned} \frac{\partial\left(\boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{X} \boldsymbol{\beta}\right)}{\partial \boldsymbol{\beta}} &= \frac{\partial\left(\boldsymbol{\beta}^\top \right)}{\partial \boldsymbol{\beta}} \mathbf{X}^\top \mathbf{X} \boldsymbol{\beta} + \boldsymbol{\beta}^\top \frac{\partial\left( \mathbf{X}^\top \mathbf{X} \right)}{\partial \boldsymbol{\beta}} \boldsymbol{\beta} + \boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{X} \frac{\partial\left( \boldsymbol{\beta}\right)}{\partial \boldsymbol{\beta}} \\ &= \mathbf{X}^\top \mathbf{X} \boldsymbol{\beta} + \mathbf{0} +(\boldsymbol{\beta}^\top \mathbf{X}^\top \mathbf{X})^\top \\ &= 2\mathbf{X}^\top \mathbf{X} \boldsymbol{\beta} \end{aligned} \]

求解结果

由上述四步,综合可得 \[ \dfrac{\partial RSS({\boldsymbol{\beta}})}{\partial {\boldsymbol{\beta}}} = -2 \mathbf{X}^\top \mathbf{Y} + 2 \mathbf{X}^\top \mathbf{X} {\boldsymbol{\beta}} \]

\[ \dfrac{\partial RSS({\boldsymbol{\beta}})}{\partial {\boldsymbol{\beta}}} = 0 \] 我们能求得估计量 \(\widehat{\boldsymbol{\beta}}\) \[ \begin{aligned} -2 \mathbf{X}^\top \mathbf{Y} + 2 \mathbf{X}^\top \mathbf{X} \widehat{\boldsymbol{\beta}} &= 0 \\ \mathbf{X}^\top \mathbf{X} \widehat{\boldsymbol{\beta}} &= \mathbf{X}^\top \mathbf{Y} \\ \widehat{\boldsymbol{\beta}} &= \left( \mathbf{X}^\top \mathbf{X}\right)^{-1} \mathbf{X}^\top \mathbf{Y} \end{aligned} \]

为保证 \(\widehat{\boldsymbol{\beta}}\) 的存在,还需要额外的一些条件,有兴趣的朋友可以自行查阅相关文献。

参考文献

  1. Andrius Buteikis. 2020. Practical Econometrics and Data Science Chapter 4.1, 4.2.
  2. Kaare Brandt Petersen and Michael Syskind Pedersen. 2012. The Matrix Cookbook. Page 8-10.
  3. 黄有度等. 1995. 矩阵论及其应用. 中国科学技术大学出版社. 108-109页.
  4. 姚耀军. 2020. 老姚专栏丨OLS原理的矩阵方法很难?Just So So
  5. 二次型对自变量向量的导数
  6. 最小二乘法线性回归:矩阵视角