当前位置:网站首页>岭回归和lasso回归
岭回归和lasso回归
2022-07-01 03:08:00 【weixin_961876584】
本文内容来源于清风老师的讲解
- 回归中关于自变量的选择大有门道,变量过多可能会导致多重共线性问题造成回归系数的不显著,甚至造成OLS估计的失效。
- 岭回归和lasso回归在OLS回归模型的损失函数(残差平方和SSE)上加上了不同的惩罚项,该惩罚项由回归系数的函数构成,一方面,加入的惩罚项能够识别出模型中不重要的变量,对模型起到简化作用,可以看作逐步回归的升级班;另一方面,加入的惩罚项会让模型变得可估计,即使之前的数据不满足列满秩。
岭回归的原理
- 多元线性回归: β ^ = arg min ∑ i = 1 n ( y i − x i ′ β ^ ) 2 \hat\beta=\argmin{\sum_{i=1}^n(y_i-x_i^{'}\hat\beta)^2} β^=argmin∑i=1n(yi−xi′β^)2,其中 β ^ = ( β ^ 1 , β ^ 2 , . . . , β ^ k ) ′ \hat\beta=(\hat\beta_1,\hat\beta_2,...,\hat\beta_k)^{'} β^=(β^1,β^2,...,β^k)′
- 岭回归: β ^ = arg min ∑ i = 1 n [ ( y i − x i ′ β ^ ) 2 + λ ∑ i = 1 k β ^ i 2 ] = arg min [ ( y − x β ^ ) ′ ( y − x β ^ ) + λ β ^ ′ β ^ ] \hat\beta=\argmin{\sum_{i=1}^n[(y_i-x_i^{'}\hat\beta)^2+\lambda\sum_{i=1}^k{\hat\beta^2_i}]}=\argmin[(y-x\hat\beta)^{'}(y-x\hat\beta)+\lambda\hat\beta^{'}\hat\beta] β^=argmin∑i=1n[(yi−xi′β^)2+λ∑i=1kβ^i2]=argmin[(y−xβ^)′(y−xβ^)+λβ^′β^] λ \lambda λ为一正常数。
记 L = ( y − x β ^ ) ′ ( y − x β ^ ) + λ β ^ ′ β ^ L=(y-x\hat\beta)^{'}(y-x\hat\beta)+\lambda\hat\beta^{'}\hat\beta L=(y−xβ^)′(y−xβ^)+λβ^′β^, λ → 0 \lambda\to0 λ→0时,岭回归和多元线性回归完全相同; λ → + ∞ \lambda\to +\infty λ→+∞时, β ^ = 0 k × 1 \hat\beta=\boldsymbol 0_{k\times 1} β^=0k×1
另外: ∂ L ∂ β ^ = − 2 x ′ y + 2 x ′ x β ^ + 2 λ β ^ = 0 ⇒ ( x ′ x + λ I ) β ^ = x ′ y \frac{\partial L}{\partial \hat\beta}=-2x^{'}y+2x^{'}x\hat\beta+2\lambda\hat\beta=0\Rightarrow (x^{'}x+\lambda I)\hat\beta=x^{'}y ∂β^∂L=−2x′y+2x′xβ^+2λβ^=0⇒(x′x+λI)β^=x′y
由于 x ′ x x^{'}x x′x半正定,则 x ′ x x^{'}x x′x特征值均为非负数,加上 λ I \lambda I λI后, x ′ x + λ I x^{'}x+\lambda I x′x+λI特征值均为整数,则 x ′ x + λ I x^{'}x+\lambda I x′x+λI可逆,所以 β ^ = ( x ′ x + λ I ) x ′ y ( λ > 0 ) \hat\beta=(x^{'}x+\lambda I)x^{'}y\quad(\lambda>0) β^=(x′x+λI)x′y(λ>0)
如何选择 λ \lambda λ
岭迹分析(用得比较少)
- 岭迹的概念:将 λ \lambda λ从 0 → + ∞ 0\to+\infty 0→+∞变量,得到的 β ^ = ( β ^ 1 β ^ 2 ⋮ β ^ k ) \hat\beta=\left( \begin{array}{c} \hat\beta_1\\ \hat\beta_2\\ \vdots\\ \hat\beta_k \end{array} \right) β^=⎝⎜⎜⎜⎛β^1β^2⋮β^k⎠⎟⎟⎟⎞中每个变量的变化曲线。
- 用岭迹法选择 λ \lambda λ的一般原则是:
(1)各回归系数的岭估计基本稳定;
(2)用最小二乘估计时符号不合理的回归系数,其岭估计的符号变得合理;
(3)回归系数没有不合乎经济意义的绝对值;
(4)残差平方和增大不太多。

VIF法(方差膨胀因子)(几乎不用)
- 不断增加 λ \lambda λ,直到所有的 β ^ \hat\beta β^的 V I F < 10 VIF<10 VIF<10
最小化均方预测误差(用的最多)
- 我们使⽤ K 折交叉验证的⽅法来选择最佳的调整参数。所谓的K 折交叉验证,是说将样本数据随机分为 K 个等分。将第 1 个⼦样本作为 “验证集”(validation set)⽽保留不⽤,⽽使⽤其余 K-1 个⼦样本作为 “训练集”(training set)来估计此模型,再以此预测第 1 个⼦样本,并计算第1个⼦样本的 “均⽅预测误差”(Mean Squared Prediction Error)。其次,将第 2 个⼦样本作为验证集,⽽使⽤其余 K-1 个⼦样本作为训练集来预测第2个⼦样本,并计算第 2 个⼦样本的 MSPE。以此类推,将所有⼦样本的 MSPE 加总,即可得整个样本的 MSPE。最后,选择调整参数 ,使得整个样本的 MSPE 最⼩,故具有最佳的预测能⼒。
- 注意:我们需要保证 X X X量纲一致,若不同可考虑标准化 x i − x ˉ σ x \frac{x_i-\bar x}{\sigma_x} σxxi−xˉ
Lasso回归的原理
- 多元线性回归: β ^ = arg min ∑ i = 1 n ( y i − x i ′ β ^ ) 2 \hat\beta=\argmin{\sum_{i=1}^n(y_i-x_i^{'}\hat\beta)^2} β^=argmin∑i=1n(yi−xi′β^)2,其中 β ^ = ( β ^ 1 , β ^ 2 , . . . , β ^ k ) ′ \hat\beta=(\hat\beta_1,\hat\beta_2,...,\hat\beta_k)^{'} β^=(β^1,β^2,...,β^k)′
- 岭回归: β ^ = arg min ∑ i = 1 n [ ( y i − x i ′ β ^ ) 2 + λ ∑ i = 1 k β ^ i 2 ] = arg min [ ( y − x β ^ ) ′ ( y − x β ^ ) + λ β ^ ′ β ^ ] \hat\beta=\argmin{\sum_{i=1}^n[(y_i-x_i^{'}\hat\beta)^2+\lambda\sum_{i=1}^k{\hat\beta^2_i}]}=\argmin[(y-x\hat\beta)^{'}(y-x\hat\beta)+\lambda\hat\beta^{'}\hat\beta] β^=argmin∑i=1n[(yi−xi′β^)2+λ∑i=1kβ^i2]=argmin[(y−xβ^)′(y−xβ^)+λβ^′β^] λ \lambda λ为一正常数。
- Lasso回归(用得多): β ^ = arg min ∑ i = 1 n [ ( y i − x i ′ β ^ ) 2 + λ ∑ i = 1 k ∣ ^ β i ∣ ] \hat\beta=\argmin{\sum_{i=1}^n[(y_i-x_i^{'}\hat\beta)^2+\lambda\sum_{i=1}^k{\hat|\beta_i|}]} β^=argmin∑i=1n[(yi−xi′β^)2+λ∑i=1k∣^βi∣]
Lasso回归与岭回归模型相比,其最大的优点是可以将不重要的变量的回归系数压缩至0,而岭回归虽然也对原来系数做了一定程度的压缩,但是任一系数都不会为,最终的模型保留了搜索变量。可以用上述的“最小化均方预测误差”来确定 λ \lambda λ。
何时使用Lasso回归
- 首先使用最一般的OLS对数据进行回归,然后计算方差膨胀因子VIF,如果VIF>10则说明存在多重共线性的问题,因此需要对变量进行筛选。
- 使用lasso回归筛选出不重要的变量(lasso回归可以看陈逐步回归的进阶版)
- 判断自变量的量纲是否一样,如果不一样则首先进行标准化的预处理
- 对变量进行lasso回归,记录下lasso回归结果表中回归系数不为0的变量,这些变量就是最终我们要留下来的重要变量
- 将这些重要变量视为自变量,进行回归,并分析结果。(此时的变量可以是标准化前的,lasso回归只起到变量筛选的目的)
边栏推荐
- 伺服第二编码器数值链接到倍福PLC的NC虚拟轴做显示
- gcc使用、Makefile总结
- 限流组件设计实战
- Lavaweb [first understanding the solution of subsequent problems]
- POI导出excel,按照父子节点进行分级显示
- Redis分布式锁的8大坑
- EtherCAT简介
- A shooting training method based on the digital measurement of Joule energy and posture of sphygmomanometer air bag with standard air pressure
- 【小程序项目开发 -- 京东商城】uni-app 商品分类页面(下)
- An article explaining the publisher subscriber model and the observer model
猜你喜欢

雪崩问题以及sentinel的使用

servlet【初识】

Restcloud ETL practice to realize incremental data synchronization without identification bit

Restcloud ETL WebService data synchronization to local

A few lines of transaction codes cost me 160000 yuan

Hal library setting STM32 interrupt

Design practice of current limiting components

XXL job User Guide

最新接口自动化面试题

STM32 - DS18B20 temperature sampling of first-line protocol
随机推荐
Introduction and basic knowledge of machine learning
Dart training and sphygmomanometer inflation pump power control DPC
Restcloud ETL WebService data synchronization to local
PHP batch Excel to word
The best learning method in the world: Feynman learning method
Force buckle - sum of two numbers
Mybati SQL statement printing
UE4 rendering pipeline learning notes
[QT] add knowledge supplement of third-party database
HTB-Lame
Redis tutorial
[applet project development -- JD mall] uni app commodity classification page (Part 2)
Hal library operation STM32 serial port
[applet project development -- JD mall] uni app commodity classification page (first)
[small program project development -- Jingdong Mall] the home page commodity floor of uni app
【日常训练】1175. 质数排列
Latest interface automation interview questions
彻底解决Lost connection to MySQL server at ‘reading initial communication packet
Is it safe to open an account online in a small securities firm? Will my money be unsafe?
Why are strings immutable in many programming languages? [repeated] - why are strings immutable in many programming languages? [duplicate]