本文介绍LAR(Least angle regression,最小角回归),由Efron等(2004)提出。这是一种非常有效的求解LASSO的算法,可以得到LASSO的解的路径。
1 算法介绍
我们直接看最基本的LAR算法,假设有 N N N个样本,自变量是 p p p维的:
- 先对 X X X( N × p N\times p N×p)做标准化处理,使得每个predictor( X X X的每列)满足 x ⋅ j ′ 1 N = 0 x_{\cdot j}' 1_N=0 x⋅j′1N=0, ∥ x ⋅ j ∥ = 1 \Vert x_{\cdot j}\Vert=1 ∥x⋅j∥=1。我们先假设回归模型中只有截距项,则 β 0 = 1 N y ′ 1 N \beta_0=\dfrac{1}{N} y' 1_N β0=N1y′1N,记残差 r = y − 1 N β 0 r=y-1_N \beta_0 r=y−1Nβ0,而其他的系数 β 1 = ⋯ = β p = 0 \beta_1=\cdots=\beta_p=0 β1=⋯=βp=0;
- 找出与 r r r相关性最大的 x ⋅ j x_{\cdot j} x⋅j,加入active set;
- 将 β j \beta_j βj从 0 0 0逐步向LS系数 x ⋅ j ′ r x_{\cdot j}'r x⋅j′r变动,直到有另一个 x ⋅ k x_{\cdot k} x⋅k,它与 r r r的相关系数绝对值,和 x ⋅ j x_{\cdot j} x⋅j与 r r r的相关系数绝对值一样大;
- 将 β j \beta_j βj和 β k \beta_k βk同时向二者的联合LS系数变动,直到再出现下一个 x ⋅ l x_{\cdot l} x⋅l,它与 r r r的相关系数满足上一步的条件;
- 重复上述过程, min ( N − 1 , p ) \min(N-1,p) min(N−1,p)步后,就得到完整的LS解。
2 算法性质
2.1 保持最小角
我们先来看LS估计量的一个性质:若每个predictor与 y y y的相关系的数绝对值相等,从此时开始,将所有系数的估计值同步地从 0 0 0移向LS估计量,在这个过程中,每个predictor与残差向量的相关系数会同比例地减少。
假设我们标准化了每个predictor和 y y y,使他们均值为 0 0 0,标准差为 1 1 1。在这里的设定中,对于任意 j = 1 , … , p j=1,\ldots,p j=1,…,p,都有 ∣ x ⋅ j ′ y ∣ / N = λ \left|x_{\cdot j}'y\right|/N=\lambda ∣∣x⋅j′y∣∣/N=λ,其中 λ \lambda λ为常数。LS估计量 β ^ = ( X ′ X ) − 1 X ′ y \hat\beta=(X'X)^{-1}X'y β^=(X′X)−1X′y,当我们将系数从 0 0 0向 β ^ \hat\beta β^移动了 α \alpha α( α ∈ [ 0 , 1 ] \alpha\in[0,1] α∈[0,1])比例时,记拟合值为 u ( α ) = α X β ^ u(\alpha)=\alpha X\hat\beta u(α)=αXβ^。
另外,记 ℓ p ( j ) \ell_p^{(j)} ℓp(j)为只有第 j j j个元素为 1 1 1、其他元素均为 0 0 0的 p p p维向量,则 x ⋅ j = X ℓ p ( j ) x_{\cdot j}=X\ell_p^{(j)} x⋅j=Xℓp(j),再记 RSS = ∥ y − X β ^ ∥ 2 \text{RSS}=\Vert y-X\hat\beta\Vert^2 RSS=∥y−Xβ^∥2,记投影矩阵 P = X ( X ′ X ) − 1 X ′ P=X(X'X)^{-1}X' P=X(X′X)−1X′。
这里的问题是,在 α \alpha α变大过程中,每一个 x ⋅ j x_{\cdot j} x⋅j与新的残差的相关系数绝对值,是否始终保持相等?且是否会减小?
由于 ∣ x ⋅ j ′ [ y − u ( α ) ] ∣ = ∣ x ⋅ j ′ y − ℓ p ( j ) ′ X ′ u ( α ) ∣ = ( 1 − α ) N λ \left| x_{\cdot j}' [y-u(\alpha)]\right|=\left|x_{\cdot j}'y - \ell_p^{(j)\prime} X' u(\alpha)\right|=(1-\alpha)N\lambda ∣∣x⋅j′[y−u(α)]∣∣=∣∣∣x⋅j′y−ℓp(j)′X′u(α)∣∣∣