岭回归和lasso回归
在 OLS 回归模型的损失函数上加入了不同的惩罚项,本质就是正则化。
文章目录
(1) 古典回归模型
1. 线性假定
- 矩阵表示 y = X β + ϵ \boldsymbol{y}=X\boldsymbol{\beta}+\boldsymbol{\epsilon} y=Xβ+ϵ
- 其中
y
=
(
y
1
,
y
2
,
…
,
y
n
)
T
\boldsymbol{y}=(y_1,y_2,\dots,y_n)^T
y=(y1,y2,…,yn)T,
β
=
(
β
1
,
β
2
,
…
,
β
n
)
T
\boldsymbol{\beta}=(\beta_1,\beta_2,\dots,\beta_n)^T
β=(β1,β2,…,βn)T,
ϵ
=
(
ϵ
1
,
ϵ
2
,
…
,
ϵ
n
)
T
\boldsymbol{\epsilon}=(\epsilon_1,\epsilon_2,\dots,\epsilon_n)^T
ϵ=(ϵ1,ϵ2,…,ϵn)T,
X = [ x 11 x 12 ⋯ x 1 p x 21 x 22 ⋯ x 2 p ⋮ ⋮ ⋱ ⋮ x n 1 x n 2 ⋯ x n p ] X=\left[ \begin{matrix} x_{11}&x_{12}&\dotsb&x_{1p}\\ x_{21}&x_{22}&\dotsb&x_{2p}\\ \vdots&\vdots&\ddots&\vdots\\ x_{n1}&x_{n2}&\dotsb&x_{np}\\ \end{matrix} \right] X=⎣⎢⎢⎢⎡x11x21⋮xn1x12x22⋮xn2⋯⋯⋱⋯x1px2p⋮xnp⎦⎥⎥⎥⎤
2. 严格外生性
保证估计出来的回归系数无偏且一致
E
(
ϵ
i
∣
X
)
=
0
(
i
=
1
,
2
,
…
,
n
)
E(\epsilon_i|X)=0~~(i=1,2,\dots,n)
E(ϵi∣X)=0 (i=1,2,…,n)
由上式得出的结论:
- E ( ϵ i ) = 0 E(\epsilon_i)=0 E(ϵi)=0 迭代期望定理: E ( E ( ϵ i ∣ X ) ) = E ( ϵ i ) E(E(\epsilon_i|X))=E(\epsilon_i) E(E(ϵi∣X))=E(ϵi)
-
C
o
v
(
ϵ
i
,
x
j
k
)
=
0
(
i
=
1
,
2
,
…
,
n
,
j
=
1
,
2
,
…
,
n
,
k
=
1
,
2
,
…
,
p
)
Cov(\epsilon_i,x_{jk})=0~~(i=1,2,\dots,n,j=1,2,\dots,n,k=1,2,\dots,p)
Cov(ϵi,xjk)=0 (i=1,2,…,n,j=1,2,…,n,k=1,2,…,p) 即所有的自变量都与扰动项不相关。
E ( ϵ i ∣ x j k ) = E [ E ( ϵ i ∣ X ) ∣ x j k ] = 0 E ( x j k ϵ i ) = E [ E ( x j k ϵ i ∣ x j k ) ] = E [ x j k E ( ϵ i ∣ x j k ) ] = 0 ( 条 件 期 望 的 线 性 性 质 为 E [ f ( x ) y ∣ x ] = f ( x ) E ( y ∣ x ) ) C o v ( ϵ i , x j k ) = E ( ϵ i x j k ) − E ( ϵ i ) E ( x j k ) = E ( ϵ i x j k ) = 0 \begin{aligned} E(\epsilon_i|x_{jk})&=E[E(\epsilon_i|X)|x_{jk}]=0\\ E(x_{jk}\epsilon_i)&=E[E(x_{jk}\epsilon_i|x_{jk})]=E[x_{jk}E(\epsilon_i|x_{jk})]=0~~ (条件期望的线性性质为E[f(\boldsymbol{x}) y|\boldsymbol{x}]=f(\boldsymbol{x})E(y|\boldsymbol{x}))\\ Cov(\epsilon_i,x_{jk})&=E(\epsilon_ix_{jk})-E(\epsilon_i)E(x_{jk})\\ &=E(\epsilon_ix_{jk})\\ &=0 \end{aligned} E(ϵi∣xjk)E(xjkϵi)Cov(ϵi,xjk)=E[E(ϵi∣X)∣xjk]=0=E[E(xjkϵi∣xjk)]=E[xjkE(ϵi∣xjk)]=0 (条件期望的线性性质为E[f(x)y∣x]=f(x)E(y∣x))=E(ϵixjk)−E(ϵi)E(xjk)=E(ϵixjk)=0
3. 无完全多重共线性
保证能估计出来
- R ( X n × p ) = p R(X_{n\times p})=p R(Xn×p)=p 保证数据矩阵的秩为 p p p。
- 得到结论
- n ≥ p n\ge p n≥p
- R ( X T X ) = R ( X ) = p R(X^TX)=R(X)=p R(XTX)=R(X)=p,说明 X T X X^TX XTX 一定可逆。
4. 误差的球面方差
- 同方差: E ( ϵ i 2 ∣ X ) = σ 2 > 0 ( i = 1 , 2 , … , n ) E(\epsilon_i^2|X)=\sigma^2>0~~(i=1,2,\dots,n) E(ϵi2∣X)=σ2>0 (i=1,2,…,n)
- 观测值的无相关: E ( ϵ i ϵ j ∣ X ) = 0 ( i , j = 1 , 2 , … , n ; i ≠ j ) E(\epsilon_i\epsilon_j|X)=0~~(i,j=1,2,\dots,n;i\not ={j}) E(ϵiϵj∣X)=0 (i,j=1,2,…,n;i=j)
(2) 岭回归和lasso回归
1. 基本的线性回归
β ^ = ( β ^ 1 , β ^ 2 , … , β ^ n ) T \boldsymbol{\hat{\beta}}=(\hat{\beta}_1,\hat{\beta}_2,\dots,\hat{\beta}_n)^T β^=(β^1,β^2,…,β^n)T
- 多元性线性回归: β ^ = arg min β ^ ∑ i = 1 n ( y i − x i T β ^ ) 2 \boldsymbol{\hat{\beta}}=\argmin_{\boldsymbol{\hat{\beta}}}\sum_{i=1}^n(y_i-x_i^T\boldsymbol{\hat{\beta}})^2 β^=β^argmini=1∑n(yi−xiTβ^)2
2. 岭回归 (附加一个二范数)
- 岭回归: β ^ = arg min β ^ [ ∑ i = 1 n ( y i − x i T β ^ ) 2 + λ ∑ k = 1 n β ^ i 2 ] = arg min β ^ [ ( y − X β ^ ) T ( y − X β ^ ) + λ β ^ T β ^ ] = ( X T X + λ I ) − 1 X T y \begin{aligned} \boldsymbol{\hat{\beta}}&=\argmin_{\boldsymbol{\hat{\beta}}}[\sum_{i=1}^n(y_i-x_i^T\boldsymbol{\hat{\beta}})^2+\lambda\sum_{k=1}^n\hat{\beta}_i^2]\\ &=\argmin_{\hat{\beta}}[(\boldsymbol{y}-X\boldsymbol{\hat{\beta}})^T(\boldsymbol{y}-X\boldsymbol{\hat{\beta}})+\lambda\boldsymbol{\hat{\beta}}^T\boldsymbol{\hat{\beta}}]\\ &=(X^TX+\lambda \boldsymbol{I})^{-1}X^T\boldsymbol{y} \end{aligned} β^=β^argmin[i=1∑n(yi−xiTβ^)2+λk=1∑nβ^i2]=β^argmin[(y−Xβ^)T(y−Xβ^)+λβ^Tβ^]=(XTX+λI)−1XTy
⭐️确定 λ \lambda λ 的方法
- 岭迹分析
当 λ \lambda λ 取 0 → ∞ 0\rightarrow \infin 0→∞ 时得到的 β ^ \hat{\boldsymbol{\beta}} β^ 中各个分量的变化曲线(岭迹图),将 λ \lambda λ 选取在各回归系数相对稳定,符号合理,并且残差平方和增加不太多处,选取的主观成分比较多。
![](https://i-blog.csdnimg.cn/blog_migrate/3232a6eefcce49490cc8e5c84a4657da.png)
- VIF 方法
已经知道当 max V I F i > 10 \max {\bf VIF_i } >10 maxVIFi>10 存在严重的多重共线性,因此可以不断增加 λ \lambda λ 最终保证所有的 β ^ i \hat{\beta}_i β^i 的 VIF < 10 <10 <10。 - K 折交叉验证 方法
将样本数据随机分为 K K K 等分,依次选取子样本 a i a_i ai 作为验证集,每次选取一个,并将剩下的 K − 1 K-1 K−1 个子样本 a 1 , a 2 , … , a i − 1 , a i + 1 , … , a K a_1,a_2,\dots,a_{i-1},a_{i+1},\dots,a_K a1,a2,…,ai−1,ai+1,…,aK 作为训练集来预测 a i a_i ai ,并计算出 M S E i \bf MSE_i MSEi,最终求解 arg min λ ∑ i = 1 K M S E i \argmin_\lambda\sum_{i=1}^K{\bf MSE_i} λargmini=1∑KMSEi
3. Lasso 回归 (附加一个一范数)
- Lasso 回归
β ^ = arg min β ^ [ ∑ i = 1 n ( y i − x i T β ^ ) 2 + λ ∑ k = 1 n ∣ β ^ i ∣ ] \boldsymbol{\hat{\beta}}=\argmin_{\boldsymbol{\hat{\beta}}}[\sum_{i=1}^n(y_i-x_i^T\boldsymbol{\hat{\beta}})^2+\lambda\sum_{k=1}^n|\hat{\beta}_i|] β^=β^argmin[i=1∑n(yi−xiTβ^)2+λk=1∑n∣β^i∣]
⭐️ 无显示解,只能使用近似估计算法,但相比于岭回归,好在可以将不需要的变量的回归系数直接压缩至 0。 - STATA
- 下载对应的包
findit lassopack
cvlasso A1 A2...At,lopt seed(number)
,number可以自己选择一个数填入,选取不同的数得到的结果不同。
- 下载对应的包