线性回归简介
在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。[百度百科]
线性回归可以说是最简单的模型了,经常被用于连续型变量的预测问题。如:某地区的玉米产量,某个公司的营收等。
最小二乘法1
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。
“最小二乘法”是对过度确定系统,即其中存在比未知数更多的方程组,以回归分析求得近似解的标准方法。在这整个解决方案中,最小二乘法演算为每一方程式的结果中,将残差平方和的总和最小化。
最重要的应用是在曲线拟合上。最小平方所涵义的最佳拟合,即残差(残差为:观测值与模型提供的拟合值之间的差距)平方和的最小化。当问题在自变量(x变量)有重大不确定性时,那么使用简易回归和最小二乘法会发生问题;在这种情况下,须另外考虑变量-误差-拟合模型所需的方法,而不是最小二乘法。
线性回归的数学模型
假设输入样本x x x 是一个已经处理好的向量(比如书x x x 中没有定性的变量)。x = ( x 1 , x 2 , … , x n ) x=(x_1,x_2,\ldots ,x_n) x = ( x 1 , x 2 , … , x n ) , 因变量为y y y .
线性模型为:f ( x ) = β 0 + ∑ j = 1 n β j x j f(x)=\beta_0+\sum_{j=1}^n\beta_jx_j f ( x ) = β 0 + ∑ j = 1 n β j x j
利用最小二乘法来估计我们所需的参数:定义残差平方和(residual sum of squares RSS)R S S ( β ) = ∑ i = 1 m ( y i − f ( x i ) ) 2 = ∑ i = 1 m ( y i − β 0 − ∑ j = 1 n β j x i j ) 2 m 表 示 样 本 的 个 数 , n 表 示 样 本 的 维 数 , i 表 示 第 i 个 样 本 , j 表 示 第 j 个 变 量 RSS(\beta)=\sum_{i=1}^m(y_i-f(x_i))^2=\sum_{i=1}^m(y_i-\beta_0-\sum_{j=1}^n\beta_jx_{ij})^2\\
m表示样本的个数,n表示样本的维数,i表示第i个样本,j表示第j个变量
R S S ( β ) = i = 1 ∑ m ( y i − f ( x i ) ) 2 = i = 1 ∑ m ( y i − β 0 − j = 1 ∑ n β j x i j ) 2 m 表 示 样 本 的 个 数 , n 表 示 样 本 的 维 数 , i 表 示 第 i 个 样 本 , j 表 示 第 j 个 变 量
求解β \beta β
记矩阵X m ∗ ( n + 1 ) \mathbf{X}_{m*(n+1)} X m ∗ ( n + 1 ) 为训练数据:X = ( 1 x 11 x 12 … x 1 n 1 x 21 x 22 … x 2 n ⋮ ⋱ ⋱ ⋱ ⋮ 1 x m 1 x m 2 … x m n ) β = ( β 0 β 1 ⋮ β n ) Y = ( y 0 y 1 ⋮ y n ) R S S ( β ) = ( Y − X β ) T ( Y − X β ) = Y T Y − 2 β T X T Y + β T X T X β
\begin{aligned}
\mathbf{X}=
\left( \begin{array}{ccccc}
1 &x_{11} &x_{12} &\ldots &x_{1n}\\
1 &x_{21} &x_{22} &\ldots &x_{2n}\\
\vdots &\ddots &\ddots &\ddots &\vdots\\
1 &x_{m1} &x_{m2} &\ldots &x_{mn}\\
\end{array} \right)
\mathbf{\beta}=
\left( \begin{array}{c}
\beta_{0}\\
\beta_{1}\\
\vdots\\
\beta_n
\end{array} \right)
\mathbf{Y}=
\left( \begin{array}{c}
y_{0}\\
y_{1}\\
\vdots\\
y_n
\end{array} \right)
\end{aligned}\\
\begin{aligned}
\\RSS(\beta)&=(\mathbf{Y}-\mathbf{X}\beta)^T(\mathbf{Y}-\mathbf{X}\beta)\\
&=\mathbf{Y}^T\mathbf{Y}-2\beta^T\mathbf{X}^T\mathbf{Y}+\beta^T\mathbf{X}^T
\mathbf{X}\beta\end{aligned}
X = ⎝ ⎜ ⎜ ⎜ ⎛ 1 1 ⋮ 1 x 1 1 x 2 1 ⋱ x m 1 x 1 2 x 2 2 ⋱ x m 2 … … ⋱ … x 1 n x 2 n ⋮ x m n ⎠ ⎟ ⎟ ⎟ ⎞ β = ⎝ ⎜ ⎜ ⎜ ⎛ β 0 β 1 ⋮ β n ⎠ ⎟ ⎟ ⎟ ⎞ Y = ⎝ ⎜ ⎜ ⎜ ⎛ y 0 y 1 ⋮ y n ⎠ ⎟ ⎟ ⎟ ⎞ R S S ( β ) = ( Y − X β ) T ( Y − X β ) = Y T Y − 2 β T X T Y + β T X T X β
对RSS关于β \beta β 求导:∂ R S S ∂ β = − 2 X T Y + 2 X T X β = − 2 X T ( Y − X β ) ∂ 2 R S S ∂ β ∂ β T = − 2 X T X
\begin{aligned}
\frac{\partial RSS}{\partial \beta}&=-2\mathbf{X}^T\mathbf{Y}+2\mathbf{X}^T
\mathbf{X}\beta\\
&=-2\mathbf{X}^T(\mathbf{Y}-\mathbf{X}\beta)\\
\\\frac{\partial^2RSS}{\partial \beta \partial \beta^T}&=-2\mathbf{X}^T\mathbf{X}
\end{aligned}
∂ β ∂ R S S ∂ β ∂ β T ∂ 2 R S S = − 2 X T Y + 2 X T X β = − 2 X T ( Y − X β ) = − 2 X T X
假设X \mathbf{X} X 是满秩的,则X T X \mathbf{X}^T\mathbf{X} X T X 是正定的。令一阶导等于0 0 0 , 即− X T Y + X T = 0 得 β ^ = ( X T X ) − 1 X T Y
\begin{aligned}
-\mathbf{X}^T\mathbf{Y}+\mathbf{X}^T=0\\
\\得\hat \beta=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{Y}
\end{aligned}
− X T Y + X T = 0 得 β ^ = ( X T X ) − 1 X T Y
此时训练数据的拟合值为:Y ^ = X β ^ = X ( X T X ) − 1 X T Y h a t m a t r i x = X ( X T X ) − 1 X T
\begin{aligned}
\hat \mathbf{Y}&=\mathbf{X}\hat \beta=\mathbf{X}(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{Y}\\
hat\quad matrix&=\mathbf{X}(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T
\end{aligned}
Y ^ h a t m a t r i x = X β ^ = X ( X T X ) − 1 X T Y = X ( X T X ) − 1 X T
方差形式分析
从几何角度来理解方差的分解是比较容易的,我们看下面这张图:
易得∑ i = 1 m ( y i − y ‾ ) 2 = ∑ i = 1 m ( y ^ i − y ‾ ) 2 + ∑ i = 1 m ( y ^ i − y i ) 2 T S S = E S S + R S S
\begin{aligned}
\sum_{i=1}^m(y_i-\overline y)^2&=\sum_{i=1}^m(\hat y_i-\overline y)^2+\sum_{i=1}^m(\hat y_i-y_i)^2\\
\\
TSS&=ESS+RSS
\end{aligned}
i = 1 ∑ m ( y i − y ) 2 T S S = i = 1 ∑ m ( y ^ i − y ) 2 + i = 1 ∑ m ( y ^ i − y i ) 2 = E S S + R S S
Total sum of squares(TSS):训练数据的总方差。
Explained sum of squares(ESS):解释平方和或回归平方和,预测值和因变量均值之间的偏差。
Residual sum of squares(RSS):残差平方和,数据点与其在回归线上的位置的差异的平方和。解释变量和随机误差的效应。
方差解释系数(判定系数,the fraction of variance explained):R 2 = E S S T S S = 1 − R S S T S S 0 ≤ R 2 ≤ 1
R^2=\frac{ESS}{TSS}=1-\frac{RSS}{TSS}\qquad 0\le R^2 \le 1
R 2 = T S S E S S = 1 − T S S R S S 0 ≤ R 2 ≤ 1
残差平方和与总平方和之间的比值越小,判定系数R 2 R^2 R 2 越大,说明线性回归拟合得越好。说明自变量的变异在因变量的变异中所占的比例越大。
最小二乘估计的性质
建设y i y_i y i 之间是相互独立的,X 是 不 变 的 矩 阵 , \mathbf{X}是不变的矩阵, X 是 不 变 的 矩 阵 , 并有固定的方差σ 2 \sigma^2 σ 2 ,则:v a r ( Y ) = σ 2 I m var(\mathbf{Y})=\sigma^2 \mathbf{I}_m v a r ( Y ) = σ 2 I m
提醒:若A \mathbf{A} A 是一个不变的矩阵,则:E ( A Y ) = A E ( Y ) v a r ( A Y ) = A v a r ( Y ) A T
E(\mathbf{A}\mathbf{Y})=\mathbf{A}E(\mathbf{Y})\\
var(\mathbf{A}\mathbf{Y})=\mathbf{A}var(\mathbf{Y})\mathbf{A}^T
E ( A Y ) = A E ( Y ) v a r ( A Y ) = A v a r ( Y ) A T
所以:β ^ = ( X T X ) − 1 X T Y E ( β ^ ) = ( X T X ) − 1 X T E ( Y ) = ( X T X ) − 1 X T X β = β v a r ( β ^ ) = ( X T X ) − 1 X T v a r ( Y ) X ( X T X ) − 1 = ( X T X ) − 1 X T σ 2 I m X ( X T X ) − 1 = ( X T X ) − 1 σ 2
\begin{aligned}
\hat \beta&=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{Y}\\
\\
E(\hat \beta)&=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^TE(\mathbf{Y})\\
&=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{X}\beta\\
&=\beta\\
\\
var(\hat \beta)&=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^Tvar(\mathbf{Y})\mathbf{X}(\mathbf{X}^T\mathbf{X})^{-1}\\
&=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\sigma^2 \mathbf{I}_m\mathbf{X}(\mathbf{X}^T\mathbf{X})^{-1}\\
&=(\mathbf{X}^T\mathbf{X})^{-1}\sigma^2
\end{aligned}
β ^ E ( β ^ ) v a r ( β ^ ) = ( X T X ) − 1 X T Y = ( X T X ) − 1 X T E ( Y ) = ( X T X ) − 1 X T X β = β = ( X T X ) − 1 X T v a r ( Y ) X ( X T X ) − 1 = ( X T X ) − 1 X T σ 2 I m X ( X T X ) − 1 = ( X T X ) − 1 σ 2
方差估计σ ^ 2 = 1 m − n − 1 ∑ i = 1 m ( y i − y ^ i ) 2 v a r ( β ^ ) ^ = ( X T X ) − 1 σ ^ 2
\hat \sigma^2=\frac{1}{m-n-1}\sum_{i=1}^m(y_i-\hat y_i)^2\\
\widehat {var(\hat \beta)} = (\mathbf{X}^T\mathbf{X})^{-1}\hat \sigma^2
σ ^ 2 = m − n − 1 1 i = 1 ∑ m ( y i − y ^ i ) 2 v a r ( β ^ ) = ( X T X ) − 1 σ ^ 2
这样E ( σ ^ 2 ) = E ( σ 2 ) E(\hat \sigma^2)=E(\sigma^2) E ( σ ^ 2 ) = E ( σ 2 ) ,为无偏估计.
Gauss-Markov定理
用最小二乘法估计出来的β \beta β 是所有线性无偏估计中方差最小的。
Python代码实现
https://github.com/Haifei-ZHANG/machine-learning-algorithms/tree/master/Linear Regression