线性回归系数的几个性质

摘要

我们知道一元和多元线性回归系数都有解析解,本文将简要介绍总结线性回归系数的几个常见的性质。

线性回归问题的描述

我们回忆一下,单变量线性回归问题是指,给定了 n n n 个观察量 ( x 1 ,   y 1 ) ,   ( x 2 ,   y 2 ) , ⋯   , ( x n , y n ) (x_1, \, y_1), \, (x_2, \, y_2), \cdots, (x_n, y_n) (x1,y1),(x2,y2),,(xn,yn)。我们希望用一个线性的关系 y = β 1 x + β 0 + ϵ y = \beta_1 x + \beta_0 + \epsilon y=β1x+β0+ϵ 来描述这些观察量的规律。

这里,我们把方程
y = β 1 x + β 0 + ϵ y = \beta_1 x + \beta_0 + \epsilon y=β1x+β0+ϵ

称为 总体回归模型 (population regression model)

而当给定的 n n n 个观察量 ( x 1 ,   y 1 ) ,   ( x 2 ,   y 2 ) , ⋯   , ( x n , y n ) (x_1, \, y_1), \, (x_2, \, y_2), \cdots, (x_n, y_n) (x1,y1),(x2,y2),,(xn,yn),我们称方程
y i = β 1 x i + β 0 + ϵ i y_i = \beta_1 x_i + \beta_0 + \epsilon_i yi=β1xi+β0+ϵi
样本回归模型 (sample regression model)
其中 ϵ i \epsilon_i ϵi 为误差项 (error),每个 ϵ i \epsilon_i ϵi 均是一个随机变量,独立且均服从 一个均值为0, 方差为 σ 2 \sigma^2 σ2 的概率分布。其中 σ 2 \sigma^2 σ2 为误差项的方差,在我们所考虑的线性模型中,我们已知 σ 2 \sigma^2 σ2 是固定的,但是我们不知道其具体的数值。

所以我们去做线性回归“拟合”模型的参数 β 1 \beta_1 β1 β 0 \beta_0 β0 时,实际上是根据 ( x 1 ,   y 1 ) ,   ( x 2 ,   y 2 ) , ⋯   , ( x n , y n ) (x_1, \, y_1), \, (x_2, \, y_2), \cdots, (x_n, y_n) (x1,y1),(x2,y2),,(xn,yn) 去做点估计 (point estimator)

这里值得注意的是,我们把 x 1 ,   x 2 ,   ⋯   ,   x n x_1, \, x_2, \, \cdots, \, x_n x1,x2,,xn 当作给定的值,即可以认为是常量,而每一个 y i ,   i = 1 , 2 ,   ⋯   n y_i, \, i = 1, 2, \, \cdots \, n yi,i=1,2,n 均是一个随机变量

所以, y i y_i yi 作为随机变量,可以用下图来体现。

yi 随机变量

上图中, x x x 轴上的绿色的圆点表示固定的 x i x_i xi ,而橙色的直线表示真实的线性关系,而蓝色的钟型曲线代表随机变量 y i y_i yi 服从的概率密度函数。

单变量线性回归系数的公式

我们回顾单变量线性回归问题的公式,有
{ β 1 ^ = ∑ ( x i − x ˉ ) ( y i − y ˉ ) ∑ ( x i − x ˉ ) 2 β 0 ^ = y ˉ − β 1 ^ x ˉ \begin{cases} & \hat{\beta_1} = \frac{\sum (x_i - \bar{x} ) (y_i - \bar{y})}{\sum (x_i - \bar{x} )^2 } \\ & \hat{\beta_0} = \bar{y} - \hat{\beta_1} \bar{x} \\ \end{cases} {β1^=(xixˉ)2(xixˉ)(yiyˉ)β0^=yˉβ1^xˉ

即我们对参数 β 1 ,   β 0 \beta_1, \, \beta_0 β1,β0 的估计是 β 1 ^ = ∑ ( x i − x ˉ ) ( y i − y ˉ ) ∑ ( x i − x ˉ ) 2 \displaystyle \hat{\beta_1} = \frac{\sum (x_i - \bar{x} ) (y_i - \bar{y})}{\sum (x_i - \bar{x} )^2 } β1^=(xixˉ)2(xixˉ)(yiyˉ),对参数 β 0 \beta_0 β0 的估计是 β 0 ^ = y ˉ − β 1 ^ x ˉ \displaystyle \hat{\beta_0} = \bar{y} - \hat{\beta_1} \bar{x} β0^=yˉβ1^xˉ

为方便起见,我们记

S x x = ∑ i = 1 n ( x i − x ˉ ) 2 \displaystyle S_{xx} = \sum_{i = 1}^n (x_i - \bar{x})^2 Sxx=i=1n(xixˉ)2,
S x y = ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) \displaystyle S_{xy} = \sum_{i = 1}^n (x_i - \bar{x}) (y_i - \bar{y}) Sxy=i=1n(xixˉ)(yiyˉ)

我们可以进一步简化 S x y S_{xy} Sxy S x y = ∑ i = 1 n ( x i − x ˉ ) y i \displaystyle S_{xy} = \sum_{i = 1}^n (x_i - \bar{x}) y_i Sxy=i=1n(xixˉ)yi

那么我们可以将 β 1 ^ \hat{\beta_1} β1^ β 0 ^ \hat{\beta_0} β0^ 写成:
β 1 ^ = ∑ i = 1 n ( x i − x ˉ ) S x x ⋅ y i \displaystyle \hat{\beta_1} =\sum_{i = 1}^n \frac{ (x_i - \bar{x} ) }{S_{xx} } \cdot y_i β1^=i=1nSxx(xixˉ)yi,
β 0 ^ = y ˉ − β 1 ^ x ˉ \displaystyle \hat{\beta_0} = \bar{y} - \hat{\beta_1} \bar{x} β0^=yˉβ1^xˉ

回忆起之前我们提到的,每一个 y i ,   i = 1 , 2 ,   ⋯   n y_i, \, i = 1, 2, \, \cdots \, n yi,i=1,2,n 均是一个随机变量,这里我们分别对 β 1 \beta_1 β1 β 0 \beta_0 β0 的估计 β 1 ^ \hat{\beta_1} β1^ β 0 ^ \hat{\beta_0} β0^ 就是 y i , i = 1 ,   2 ,   ⋯   n y_i, i = 1, \, 2, \, \cdots \, n yi,i=1,2,n 的函数。

无偏估计

首先,我们证明上述估计 β 1 ^ \hat{\beta_1} β1^ β 0 ^ \hat{\beta_0} β0^ 是无偏估计 (unbiased)。

要证明我们的估计是无偏估计,我们须要证明我们估计的期望恒等于所估计的参数,即我们须要证明:
{ E [ β 1 ^ ] = β 1 E [ β 0 ^ ] = β 0 \begin{cases} & \mathbb{E}[ \hat{\beta_1} ] = \beta_1 \\ \\ & \mathbb{E}[ \hat{\beta_0} ] = \beta_0 \\ \end{cases} E[β1^]=β1E[β0^]=β0

证明过程十分直接,我们直接将上一节的表达式代入。

E [ β 1 ^ ] = E [ ∑ i = 1 n ( x i − x ˉ ) S x x ⋅ y i ] \displaystyle \mathbb{E}[ \hat{\beta_1} ] =\mathbb{E} \Big[ \sum_{i = 1}^n \frac{ (x_i - \bar{x} ) }{S_{xx} } \cdot y_i \Big] E[β1^]=E[i=1nSxx(xixˉ)yi],注意到 y i = β 1 x i + β 0 + ϵ i y_i = \beta_1 x_i + \beta_0 + \epsilon_i yi=β1xi+β0+ϵi,我们有 E ( y i ) = β 1 x i + β 0 \displaystyle \mathbb{E}(y_i) = \beta_1 x_i + \beta_0 E(yi)=β1xi+β0。这里我们用到了 E [ ϵ i ] = 0 \displaystyle \mathbb{E} [ \epsilon_i ] = 0 E[ϵi]=0

代入,我们有

E [ β 1 ^ ] = E [ ∑ i = 1 n ( x i − x ˉ ) S x x ⋅ y i ] = ∑ i = 1 n ( x i − x ˉ ) S x x E [ y i ] = ∑ i = 1 n ( x i − x ˉ ) S x x ⋅ ( β 1 x i + β 0 ) = β 1 ⋅ [ ∑ i = 1 n ( x i − x ˉ ) S x x ⋅ x i ] + β 0 ⋅ ∑ i = 1 n ( x i − x ˉ ) S x x = β 1 \begin{aligned} \displaystyle \mathbb{E} [\hat{\beta_1}] &= \mathbb{E} \Big[ \sum_{i = 1}^n \frac{ (x_i - \bar{x} ) }{S_{xx} } \cdot y_i \Big] \\ &= \sum_{i = 1}^n \frac{ (x_i - \bar{x} ) }{S_{xx}} \mathbb{E} [y_i] \\ &= \sum_{i = 1}^n \frac{ (x_i - \bar{x} ) }{S_{xx} } \cdot (\beta_1 x_i + \beta_0) \\ &= \beta_1 \cdot \Big[ \sum_{i = 1}^n \frac{ (x_i - \bar{x} ) }{S_{xx}} \cdot x_i \Big] + \beta_0 \cdot \sum_{i = 1}^n \frac{ (x_i - \bar{x} ) }{S_{xx}} \\ &= \beta_1 \end{aligned} E[β1^]=E[i=1nSxx(xixˉ)yi]=i=1nSxx(xixˉ)E[yi]=i=1nSxx(xixˉ)(β1xi+β0)=β1[i=1nSxx(xixˉ)xi]+β0i=1nSxx(xixˉ)=β1

注意,上式中,我们用到了 ∑ i = 1 n ( x i − x ˉ ) S x x = 0 \displaystyle \sum_{i = 1}^n \frac{ (x_i - \bar{x} ) }{S_{xx}} = 0 i=1nSxx(xixˉ)=0,以及 ∑ i = 1 n ( x i − x ˉ ) ⋅ x i = S x x \displaystyle \sum_{i = 1}^n (x_i - \bar{x}) \cdot x_i = S_{xx} i=1n(xixˉ)xi=Sxx

同样的,我们有,
E ( β 0 ^ ) = E [ y ˉ − x ˉ ⋅ β 1 ^ ] = 1 n ∑ i = 1 n ( β 0 + β 1 ⋅ x i ) − x ˉ ⋅ β 1 = β 0 \begin{aligned} \displaystyle \mathbb{E} (\hat{\beta_0}) &= \mathbb{E} \big[ \bar{y} - \bar{x} \cdot \hat{\beta_1} \big] \\ &= \frac{1}{n} \sum_{i = 1}^n (\beta_0 + \beta_1 \cdot x_i) - \bar{x} \cdot \beta_1 \\ &= \beta_0 \end{aligned} E(β0^)=E[yˉxˉβ1^]=n1i=1n(β0+β1xi)xˉβ1=β0

所以, β 0 ^ \hat{\beta_0} β0^ 也是 β 0 \beta_0 β0 的无偏估计。

线性回归系数的方差

下面我们来看线性回归系数 β 1 ^ \hat{\beta_1} β1^ β 0 ^ \hat{\beta_0} β0^ 的方差。直观上看,当误差项的方差 σ 2 \sigma^2 σ2 越大时, V a r ( β 1 ^ ) \displaystyle \mathrm{Var}( \hat{\beta_1} ) Var(β1^) V a r ( β 0 ^ ) \displaystyle \mathrm{Var}( \hat{\beta_0} ) Var(β0^) 也应该越大。因为误差项的方差越大,随机变量 y i y_i yi 的取值就会越不确定,从而使得线性拟合的直线不确定性越大。

具体地,我们有
V a r ( β 1 ^ ) = σ 2 S x x \displaystyle \mathrm{Var}( \hat{\beta_1} ) = \frac{ \sigma^2 }{S_{xx}} Var(β1^)=Sxxσ2,
V a r ( β 0 ^ ) = σ 2 ( 1 n + x ˉ 2 S x x ) \displaystyle \mathrm{Var}( \hat{\beta_0} ) = \sigma^2 \left( \frac{ 1 }{ n } + \frac{ \bar{x}^2 }{S_{xx}} \right) Var(β0^)=σ2(n1+Sxxxˉ2)

对于 β 1 ^ \hat{\beta_1} β1^,我们可以直接计算如下,
因为 β 1 ^ = ∑ i = 1 n ( x i − x ˉ ) S x x ⋅ y i \displaystyle \hat{\beta_1} =\sum_{i = 1}^n \frac{ (x_i - \bar{x} ) }{S_{xx} } \cdot y_i β1^=i=1nSxx(xixˉ)yi, 我们记 c i = ( x i − x ˉ ) S x x \displaystyle c_i = \frac{ (x_i - \bar{x} ) }{S_{xx} } ci=Sxx(xixˉ)。于是,

V a r ( β 1 ^ ) = ∑ i = 1 n ( c i 2 ⋅ V a r ( y i ) ) = ∑ i = 1 n ( x i − x ˉ ) 2 S x x 2 ⋅ V a r ( y i ) = σ 2 S x x 2 ∑ i = 1 n ( x i − x ˉ ) 2 = σ 2 S x x 。 \begin{aligned} \displaystyle \mathrm{Var}( \hat{\beta_1} ) &= \sum_{i = 1}^n \left( c_i^2 \cdot \mathrm{Var}( y_i ) \right) = \sum_{i = 1}^n \frac{ (x_i - \bar{x} )^2 }{S_{xx}^2 } \cdot \mathrm{Var}( y_i ) \\ &= \frac{\sigma^2}{S_{xx}^2} \sum_{i = 1}^n (x_i - \bar{x} )^2 = \frac{\sigma^2}{S_{xx}}。 \end{aligned} Var(β1^)=i=1n(ci2Var(yi))=i=1nSxx2(xixˉ)2Var(yi)=Sxx2σ2i=1n(xixˉ)2=Sxxσ2

下面我们来看 V a r ( β 0 ^ ) \displaystyle \mathrm{Var}( \hat{\beta_0} ) Var(β0^)

因为 β 0 ^ = y ˉ − x ˉ ⋅ β 1 ^ \displaystyle \hat{\beta_0} = \bar{y} - \bar{x} \cdot \hat{\beta_1} β0^=yˉxˉβ1^,我们有 V a r ( β 0 ^ ) = V a r ( y ˉ ) + V a r ( x ˉ ⋅ β 1 ^ ) − 2 C o v ( y ˉ , x ˉ ⋅ β 1 ^ ) \displaystyle \mathrm{Var}( \hat{\beta_0} ) = \mathrm{Var} (\bar{y}) + \mathrm{Var} ( \bar{x} \cdot \hat{\beta_1}) - 2 \mathrm{Cov} (\bar{y}, \bar{x} \cdot \hat{\beta_1}) Var(β0^)=Var(yˉ)+Var(xˉβ1^)2Cov(yˉ,xˉβ1^)

我们知道, V a r ( y ˉ ) = 1 n 2 ∑ i = 1 n V a r ( y i ) = 1 n 2 ∑ i = 1 n V a r ( ϵ i ) = σ 2 n \displaystyle \mathrm{Var} (\bar{y}) = \frac{1}{n^2} \sum_{i=1}^n \mathrm{Var} (y_i) = \frac{1}{n^2} \sum_{i=1}^n \mathrm{Var} (\epsilon_i) = \frac{\sigma^2}{n} Var(yˉ)=n21i=1nVar(yi)=n21i=1nVar(ϵi)=nσ2
V a r ( x ˉ ⋅ β 1 ^ ) = x ˉ 2 ⋅ V a r ( β 1 ^ ) = x ˉ 2 ⋅ σ 2 S x x \displaystyle \mathrm{Var} (\bar{x} \cdot \hat{\beta_1}) = \bar{x}^2 \cdot \mathrm{Var}(\hat{\beta_1}) = \bar{x}^2 \cdot \frac{\sigma^2}{S_{xx}} Var(xˉβ1^)=xˉ2Var(β1^)=xˉ2Sxxσ2
下面我们来看协方差项 C o v ( y ˉ , x ˉ ⋅ β 1 ^ ) = x ˉ ⋅ C o v ( y ˉ , β 1 ^ ) \displaystyle \mathrm{Cov} (\bar{y}, \bar{x} \cdot \hat{\beta_1}) = \bar{x} \cdot \mathrm{Cov}(\bar{y}, \hat{\beta_1}) Cov(yˉ,xˉβ1^)=xˉCov(yˉ,β1^)

C o v ( y ˉ , β 1 ^ ) = C o v ( 1 n ∑ i = 1 n y i , ∑ i = 1 n x i − x ˉ S x x y i ) = 1 n ∑ i = 1 n C o v ( y i , x i − x ˉ S x x y i ) = 1 n ∑ i = 1 n x i − x ˉ S x x ⋅ σ 2 = σ 2 n x i − x ˉ S x x = 0 。 \begin{aligned} \displaystyle \mathrm{Cov}(\bar{y}, \hat{\beta_1} ) &= \mathrm{Cov} \Big( \frac{1}{n} \sum_{i=1}^n y_i, \sum_{i=1}^n \frac{x_i - \bar{x}}{S_{xx}} y_i \Big) \\ &= \frac{1}{n} \sum_{i=1}^n \mathrm{Cov} \Big( y_i, \frac{x_i - \bar{x}}{S_{xx}} y_i \Big) \\ &= \frac{1}{n} \sum_{i=1}^n \frac{x_i - \bar{x}}{S_{xx}} \cdot \sigma^2 \\ &= \frac{\sigma^2}{n} \frac{x_i - \bar{x}}{S_{xx}} = 0。 \end{aligned} Cov(yˉ,β1^)=Cov(n1i=1nyi,i=1nSxxxixˉyi)=n1i=1nCov(yi,Sxxxixˉyi)=n1i=1nSxxxixˉσ2=nσ2Sxxxixˉ=0
于是,我们有,

V a r ( β 0 ^ ) = V a r ( y ˉ ) + V a r ( x ˉ ⋅ β 1 ^ ) − 2 C o v ( y ˉ , x ˉ ⋅ β 1 ^ ) = σ 2 n + x ˉ 2 ⋅ σ 2 S x x = σ 2 ( 1 n + x ˉ 2 S x x ) \displaystyle \mathrm{Var}( \hat{\beta_0} ) = \mathrm{Var} (\bar{y}) + \mathrm{Var} ( \bar{x} \cdot \hat{\beta_1}) - 2 \mathrm{Cov} (\bar{y}, \bar{x} \cdot \hat{\beta_1}) = \frac{\sigma^2}{n} + \bar{x}^2 \cdot \frac{\sigma^2}{S_{xx}} = \sigma^2 \left( \frac{ 1 }{ n } + \frac{ \bar{x}^2 }{S_{xx}} \right) Var(β0^)=Var(yˉ)+Var(xˉβ1^)2Cov(yˉ,xˉβ1^)=nσ2+xˉ2Sxxσ2=σ2(n1+Sxxxˉ2)

其余的几个性质

残差项之和为0

我们记残差项为 e i e_i ei e i = y i − y i ^ \displaystyle e_i = y_i - \hat{y_i} ei=yiyi^。即 ∑ i = 1 n ( y i − y i ^ ) = 0 \displaystyle \sum_{i = 1}^n (y_i - \hat{y_i}) = 0 i=1n(yiyi^)=0

这里我们可以用求 β 1 ^ \hat{\beta_1} β1^ β 0 ^ \hat{\beta_0} β0^ 的公式来证明。

在文章 单变量线性回归的最小二乘法公式 中,我们提到在用偏导数求 β 1 ^ \hat{\beta_1} β1^ β 0 ^ \hat{\beta_0} β0^ 时,我们有 β 1 ^ \hat{\beta_1} β1^ β 0 ^ \hat{\beta_0} β0^ 的表达式如下:

{ ∂  RSS ∂ β 0 = 2 n β 0 + 2 ∑ i = 1 n x i β 1 − 2 ∑ i = 1 n y i = 0 ∂  RSS ∂ β 1 = 2 ∑ i = 1 n x i 2 β 1 + 2 ∑ i = 1 n x i β 0 − 2 ∑ i = 1 n x i y i = 0 \displaystyle \begin{cases} &\displaystyle \frac{\partial \text{ RSS}}{\partial \beta_0} = 2 n \beta_0 + 2 \sum_{i = 1}^n x_i \beta_1 - 2 \sum_{i = 1}^n y_i = 0 \\ \\ &\displaystyle \frac{\partial \text{ RSS}}{\partial \beta_1} = 2 \sum_{i = 1}^n x_i^2 \beta_1 + 2 \sum_{i = 1}^n x_i \beta_0 - 2 \sum_{i = 1}^n x_i y_i = 0 \\ \end{cases} β0 RSS=2nβ0+2i=1nxiβ12i=1nyi=0β1 RSS=2i=1nxi2β1+2i=1nxiβ02i=1nxiyi=0

根据第一个式子,我们把 β 1 ^ \hat{\beta_1} β1^ β 0 ^ \hat{\beta_0} β0^ 代入,我们有

n β 0 ^ + ∑ i = 1 n x i β 1 ^ − ∑ i = 1 n y i = 0 \displaystyle n \hat{\beta_0} + \sum_{i = 1}^n x_i \hat{\beta_1} - \sum_{i = 1}^n y_i = 0 nβ0^+i=1nxiβ1^i=1nyi=0
即, ∑ i = 1 n ( β 0 ^ + x i β 1 ^ ) − ∑ i = 1 n y i = 0 \displaystyle \sum_{i = 1}^n \left( \hat{\beta_0} + x_i \hat{\beta_1} \right) - \sum_{i = 1}^n y_i = 0 i=1n(β0^+xiβ1^)i=1nyi=0,亦 ∑ i = 1 n ( y i − y i ^ ) = 0 \displaystyle \sum_{i = 1}^n (y_i - \hat{y_i}) = 0 i=1n(yiyi^)=0

线性拟合直线总会经过 ( x ˉ , y ˉ ) (\bar{x}, \bar{y}) (xˉ,yˉ) 这个点

拟合直线为 y = β 0 ^ + β 1 ^ ⋅ x \displaystyle y = \hat{\beta_0} + \hat{\beta_1} \cdot x y=β0^+β1^x。而我们有
β 0 ^ = y ˉ − β 1 ^ x ˉ \displaystyle \hat{\beta_0} = \bar{y} - \hat{\beta_1} \bar{x} β0^=yˉβ1^xˉ,所以 线性拟合直线总会经过 ( x ˉ , y ˉ ) (\bar{x}, \bar{y}) (xˉ,yˉ) 这个点。

x i x_i xi 权重下,残差和为0,即 ∑ i = 1 n x i e i = 0 \displaystyle \sum_{i = 1}^n x_i e_i = 0 i=1nxiei=0

我们可以直接把 e i = y i − y i ^ e_i = y_i - \hat{y_i} ei=yiyi^ 代入。注意到 y i ^ = β 0 ^ + β 1 ^ ⋅ x i \displaystyle \hat{y_i} = \hat{\beta_0} + \hat{\beta_1} \cdot x_i yi^=β0^+β1^xi,我们有

∑ i = 1 n x i e i = ∑ i = 1 n x i ⋅ ( y i − y i ^ ) = ∑ i = 1 n x i ⋅ ( y i − β 0 ^ − β 1 ^ ⋅ x i ) = ∑ i = 1 n x i y i − β 0 ^ ∑ i = 1 n x i − β 1 ^ ∑ i = 1 n x i 2 = ∑ i = 1 n x i y i − β 1 ^ ∑ i = 1 n x i 2 − ( y ˉ − β 1 ^ ⋅ x ˉ ) ⋅ ∑ i = 1 n x i = ∑ i = 1 n x i y i − β 1 ^ ∑ i = 1 n x i 2 − n x ˉ y ˉ + n β 1 ^ x ˉ 2 = ( ∑ i = 1 n x i y i − n x ˉ y ˉ ) − ( ∑ i = 1 n x i 2 − n x ˉ 2 ) β 1 ^ = S x y − S x x β 1 ^ = 0 \begin{aligned} \displaystyle \sum_{i = 1}^n x_i e_i &= \sum_{i = 1}^n x_i \cdot (y_i - \hat{y_i}) = \sum_{i = 1}^n x_i \cdot (y_i - \hat{\beta_0} - \hat{\beta_1} \cdot x_i) \\ &= \sum_{i = 1}^n x_i y_i - \hat{\beta_0} \sum_{i = 1}^n x_i - \hat{\beta_1} \sum_{i = 1}^n x_i^2 \\ &= \sum_{i = 1}^n x_i y_i - \hat{\beta_1} \sum_{i = 1}^n x_i^2 - (\bar{y} - \hat{\beta_1} \cdot \bar{x} ) \cdot \sum_{i = 1}^n x_i \\ &= \sum_{i = 1}^n x_i y_i - \hat{\beta_1} \sum_{i = 1}^n x_i^2 - n \bar{x} \bar{y} + n \hat{\beta_1} \bar{x}^2 \\ &= \left( \sum_{i = 1}^n x_i y_i - n \bar{x} \bar{y} \right) - \left(\sum_{i = 1}^n x_i^2 - n \bar{x}^2 \right) \hat{\beta_1} \\ &= S_{xy} - S_{xx} \hat{\beta_1} \\ &= 0 \end{aligned} i=1nxiei=i=1nxi(yiyi^)=i=1nxi(yiβ0^β1^xi)=i=1nxiyiβ0^i=1nxiβ1^i=1nxi2=i=1nxiyiβ1^i=1nxi2(yˉβ1^xˉ)i=1nxi=i=1nxiyiβ1^i=1nxi2nxˉyˉ+nβ1^xˉ2=(i=1nxiyinxˉyˉ)(i=1nxi2nxˉ2)β1^=SxySxxβ1^=0

故得证。

y i ^ \hat{y_i} yi^ 权重下,残差和为0,即 ∑ i = 1 n y i ^ e i = 0 \displaystyle \sum_{i = 1}^n \hat{y_i} e_i = 0 i=1nyi^ei=0

这里我们只须要利用上一个公式,即 ∑ i = 1 n x i e i = 0 \displaystyle \sum_{i = 1}^n x_i e_i = 0 i=1nxiei=0 即可。

因为我们有 ∑ i = 1 n y i ^ e i = ∑ i = 1 n ( β 0 ^ + β 1 ^ ⋅ x i ) e i = β 0 ^ ∑ i = 1 n e i + β 1 ^ ∑ i = 1 n x i e i = 0 \displaystyle \sum_{i = 1}^n \hat{y_i} e_i = \sum_{i = 1}^n \big(\hat{\beta_0} + \hat{\beta_1} \cdot x_i \big) e_i = \hat{\beta_0} \sum_{i = 1}^n e_i + \hat{\beta_1} \sum_{i = 1}^n x_i e_i = 0 i=1nyi^ei=i=1n(β0^+β1^xi)ei=β0^i=1nei+β1^i=1nxiei=0

模拟

最后我们用 python 程序来模拟“证明” β 1 ^ \hat{\beta_1} β1^ β 0 ^ \hat{\beta_0} β0^ 分别时 β 1 \beta_1 β1 β 0 \beta_0 β0 的无偏估计。

class unbiased_beta:
    
    def __init__(self, arr_x: np.array, beta1: float, beta0: float, epsilon: float):
        #self.N = N
        self.X = arr_x
        self.beta1 = beta1
        self.beta0 = beta0
        self.epsilon = epsilon
        
        self.Sxx = ((self.X - self.X.mean()) ** 2).sum()
        self.X_bar = self.X.mean()
        
    def estimate_beta(self, N: int) -> tuple:
        res_beta1, res_beta0 = [], []
        for i in range(N):
            #print(i)
            cur_error = np.random.normal(0, self.epsilon, arr_x.shape)
            cur_y = self.beta0 + self.beta1 * self.X + cur_error
            cur_y_bar = cur_y.mean()
            Sxy = ((self.X - self.X.mean()) * (cur_y - cur_y_bar)).sum()
            cur_beta1 = Sxy / self.Sxx
            cur_beta0 = cur_y_bar - cur_beta1 * self.X_bar
            res_beta1.append(cur_beta1)
            res_beta0.append(cur_beta0)
        return np.mean(res_beta1), np.mean(res_beta0)
arr_x = np.array(range(1, 11))
a = unbiased_beta(arr_x, 2, 3, 1)
res = a.estimate_beta(10 ** 5)

res

(1.9988026861047237, 3.0029188805679303)

可以发现,在经过多次的实验之后,我们得到的 β 1 ^ \hat{\beta_1} β1^ β 0 ^ \hat{\beta_0} β0^ 的平均值是非常接近真实值 β 1 \beta_1 β1 β 0 \beta_0 β0 的。

plt.figure(figsize=(8, 6), dpi=100)
plt.hist(res[0], bins=50, density=True);
line_vert = [[2, c] for c in np.linspace(0, 4, 100)]
plt.plot([c[0] for c in line_vert], [c[1] for c in line_vert], '-', linewidth=4)
plt.xlabel("estimated beta1 value", fontsize=20)
plt.ylabel("count", fontsize=20)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)

对 beta1 的估计值的统计

多元线性回归的系数也是无偏估计

上文中我们介绍了单变量线性回归中, β 1 ^ \hat{\beta_1} β1^ β 0 ^ \hat{\beta_0} β0^ β 1 \beta_1 β1 β 0 \beta_0 β0 的无偏估计 (unbiased) 。下面我们来看多变量线性回归中系数估计的无偏性质。

根据多变量线性回归的 normal equation,我们有

β ^ = ( X T X ) − 1 X T y \displaystyle \mathbf{\hat{\beta}} = (X^TX)^{-1}X^T \mathbf{y} β^=(XTX)1XTy

注意到, y = X β + ϵ \displaystyle \mathbf{y}= X \mathbf{\beta} + \mathbf{\epsilon} y=+ϵ
代入 β ^ \displaystyle \mathbf{\hat{\beta}} β^ 的表达式,我们有

E [ β ^ ] = E [ ( X T X ) − 1 X T y ] = E [ ( X T X ) − 1 X T ( X β + ϵ ) ] = E [ ( X T X ) − 1 X T X β ] + E [ ( X T X ) − 1 X T ϵ ] = β \begin{aligned} \mathbb{E} [ \mathbf{\hat{\beta}} ] &= \mathbb{E} \big[ (X^TX)^{-1}X^T \mathbf{y} \big] = \mathbb{E} \big[ (X^TX)^{-1}X^T ( X \mathbf{\beta} + \mathbf{\epsilon} ) \big] \\ &= \mathbb{E} \big[ (X^TX)^{-1} X^T X \mathbf{\beta} \big] + \mathbb{E} \big[ (X^TX)^{-1} X^T \mathbf{\epsilon} \big] \\ &= \mathbf{\beta} \end{aligned} E[β^]=E[(XTX)1XTy]=E[(XTX)1XT(+ϵ)]=E[(XTX)1XT]+E[(XTX)1XTϵ]=β

于是,我们知道,对于多元线性回归, β ^ \displaystyle \mathbf{\hat{\beta}} β^ 也是 β \mathbf{\beta} β 的无偏估计。

我们用程序验证如下。

class unbiased_beta_mv:
    
    def __init__(self, arr_x: np.array, beta: np.array, epsilon: float):
        #self.N = N
        self.X = arr_x
        self.beta = beta
        self.epsilon = epsilon
        
    def estimate_beta(self, N: int) -> tuple:
        res_beta = []
        for i in range(N):
            #print(i)
            cur_error = np.random.normal(0, self.epsilon, arr_x.shape[0])
            cur_y = self.X @ self.beta + cur_error.reshape((-1, 1))
            cur_beta_hat = np.linalg.inv(self.X.T @ self.X) @ self.X.T @ cur_y
            res_beta.append(cur_beta_hat)
        return np.hstack(res_beta)
beta = np.array([[1], [2], [3], [4]])
arr_x = np.random.normal(0, 1, (10, 3))
arr_x = np.hstack((np.ones((10, 1)), arr_x))
a = unbiased_beta_mv(arr_x, beta, 1)
res = a.estimate_beta(10 ** 5)
np.mean(res, axis=1)

array([1.00255519, 1.99960968, 2.99919333, 4.00008326])

参考文献

[1] Introduction to linear regression analysis, Douglas C. Montgomery, Elizabeth A. Peck, G. Geoffrey Vining, John Wiley & Sons (2021)

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值