线性回归

在多元线性回归模型中,估计回归系数使用的是OLS,并在最后讨论异方差和多重共线性对模型的影响。事实上,回归中自变量的选择大有门道,变量过多可能会导致多重共线性问题导致回归系数不显著,甚至造成OLS估计失效。

岭回归和lasso回归在OLS回归模型的损失函数上加上了不同的惩罚项,该惩罚项由回归系数的函数组成,一方面,加入的惩罚项能够识别出模型中不重要的变量,对模型起到简化作用,可以看作逐步回归法的升级版,另一方面,加入的惩罚项让模型变得可估计,即使原数据矩阵不满足列满秩。

线性回归模型

在标准线性回归中,通过最小化真实值(yiy_{i}yi​)和预测值(y^i\hat{y}_{i}y^​i​)的平方误差来训练模型,这个平方误差值也被称为残差平方和(RSS, Residual Sum Of Squares):
RSS=∑i=1n(yi−y^i)2R S S=\sum_{i=1}^{n}\left(y_{i}-\hat{y}_{i}\right)^{2} RSS=i=1∑n​(yi​−y^​i​)2
最小二乘法即最小残差平方和,为:
Jβ(β)=arg⁡min⁡β∑i=1p(yi−xiβi−β0)2J_{\beta}(\beta)=\underset{\beta}{\arg \min } \sum_{i=1}^{p}\left(y_{i}-x_{i} \beta_{i}-\beta_{0}\right)^{2} Jβ​(β)=βargmin​i=1∑p​(yi​−xi​βi​−β0​)2
将其化为矩阵形式:
Jβ(β)=arg⁡min⁡β(Y−Xβ)T(Y−Xβ)J_{\beta}(\beta)=\underset{\beta}{\arg \min }(Y-X \beta)^{T}(Y-X \beta) Jβ​(β)=βargmin​(Y−Xβ)T(Y−Xβ)
求解为:
β=(XTX)−1XTY\beta=\left(X^{T} X\right)^{-1} X^{T} Y β=(XTX)−1XTY
由于求解β\betaβ,需要假设矩阵XTXX^{T} XXTX是满秩矩阵
然而XTXX^{T} XXTX往往不是满秩矩阵或者某些列之间的线性相关性比较大,例如会出现变量数(属性数)远超过样例数,导致XXX的列数多于行数,XTXX^{T} XXTX显然不满秩,可解出多个β\betaβ,使得均方误差最小化,即在多元回归中,特征之间会出现多重共线问题,使用最小二乘法估计系数会出现系数不稳定问题,缺乏稳定性和可靠性。

岭回归

在矩阵XTXX^{T} XXTX的对角线元素加一个小的常数值λ\lambdaλ,取其逆求得系数:
β^ridge =(XTX+λIn)−1XTY\hat{\beta}_{\text {ridge }}=\left(X^{T} X+\lambda I_{n}\right)^{-1} X^{T} Y β^​ridge ​=(XTX+λIn​)−1XTY
InI_{n}In​为单位矩阵,对角线全为1,类似山岭
λ\lambdaλ是岭系数,改变其数值可以改变单位矩阵对角线的值

随后代价函数Jβ(β)J_{\beta}(\beta)Jβ​(β)在RSSRSSRSS基础上加入对系数值的惩罚项:
Jβ(β)=RSS+λ∑j=0nβj2=RSS+λ∥β∥2\begin{aligned} J_{\beta}(\beta) &=R S S+\lambda \sum_{j=0}^{n} \beta_{j}^{2} \\ &=R S S+\lambda\|\beta\|^{2} \end{aligned} Jβ​(β)​=RSS+λj=0∑n​βj2​=RSS+λ∥β∥2​
矩阵形式为:
Jβ(β)=∑i=1p(yi−Xiβ)2+λ∑j=0nβj2=∑i=1p(yi−Xiβ)+λ∥β∥2\begin{aligned} J_{\beta}(\beta) &=\sum_{i=1}^{p}\left(y_{i}-X_{i} \beta\right)^{2}+\lambda \sum_{j=0}^{n} \beta_{j}^{2} \\ &=\sum_{i=1}^{p}\left(y_{i}-X_{i} \beta\right)+\lambda\|\beta\|^{2} \end{aligned} Jβ​(β)​=i=1∑p​(yi​−Xi​β)2+λj=0∑n​βj2​=i=1∑p​(yi​−Xi​β)+λ∥β∥2​
λ\lambdaλ是超参数,用来控制对βJ\beta_{J}βJ​的惩罚强度,λ\lambdaλ值越大,生成的模型就越简单

λ\lambdaλ的选择方法

1.岭迹分析法(主观性强)
(1)各回归系数的岭估计稳定
(2)用最小二乘法估计时符号不合理的回归系数,其岭估计的符号变得合理
(3)回归系数没有不合乎经济意义的绝对值
(4)残差平方和增长不太多

2.VIF法(方差膨胀因子)
若β\betaβ的VIFVIFVIF>10,数据列与列指标之间存在多重共线性,因此我们可以不断增加λ\lambdaλ的值来不断减少VIFVIFVIF,知道所有的β\betaβ的VIFVIFVIF>10,确定理想的λ\lambdaλ的值

3.最小化均方预测误差(最广泛,最准确)
我们使用K折交叉验证的方法,来选择最佳的调整参数。所谓的k折交叉验证,就是把样本数据随机分为k等份,将第1个子样本作为验证集而保留不用,剩余k-1个子样本作为训练集来估计模型,再以此预测第1个子样本,并计算第1个子样本的均方预测误差(MSPE)。之后,将第2个子样本作为验证集,剩余k-1个子样本作为训练集来预测第2个子样本,并计算第二个子样本的MSPE。以此类推,将所有子样本的MSPE加总,可以获得整个样本的MSPE,最后选择调整参数,使得整个样本的MSPE最小,从而确定最理想的λ\lambdaλ的值,具有最佳的预测能力。
需要保证数据的量纲一致,若量纲不一致应对数据进行标准化处理。

Lasso回归

代价函数Jβ(β)J_{\beta}(\beta)Jβ​(β)在RSSRSSRSS基础上加入对系数值的惩罚项:
Jβ(β)=RSS+λ∑j=0n∣βj∣=RSS+λ∣β∣\begin{aligned} J_{\beta}(\beta) &=R S S+\lambda \sum_{j=0}^{n} |\beta_{j}| \\ &=R S S+\lambda|\beta| \end{aligned} Jβ​(β)​=RSS+λj=0∑n​∣βj​∣=RSS+λ∣β∣​
岭回归与Lasso回归最大的区别在于岭回归引入的是L2范数惩罚项,Lasso回归引入的是L1范数惩罚项。
矩阵形式为:
Jβ(β)=∑i=1p(yi−Xiβ)2+λ∑j=0n∣βj∣=∑i=1p(yi−Xiβ)+λ∣β∣\begin{aligned} J_{\beta}(\beta) &=\sum_{i=1}^{p}\left(y_{i}-X_{i} \beta\right)^{2}+\lambda \sum_{j=0}^{n} |\beta_{j}| \\ &=\sum_{i=1}^{p}\left(y_{i}-X_{i} \beta\right)+\lambda|\beta| \end{aligned} Jβ​(β)​=i=1∑p​(yi​−Xi​β)2+λj=0∑n​∣βj​∣=i=1∑p​(yi​−Xi​β)+λ∣β∣​
其中λ\lambdaλ称为正则化参数,如果λ\lambdaλ选取过大,会把所有参数θ均最小化,造成欠拟合,如果λ\lambdaλ选取过小,会导致对过拟合问题解决不当。
岭回归与Lasso回归最大的区别在于岭回归引入的是L2范数惩罚项,Lasso回归引入的是L1范数惩罚项。Lasso回归能够使得损失函数中的许多β\betaβ均变成0,这点要优于岭回归,因为岭回归是要所有的β\betaβ均存在的,这样计算量Lasso回归将远远小于岭回归。(升级版的逐步回归
Lasso的缺点也很明显,Lasso没有显示解,只能使用近似估计算法(坐标轴下降法和最小角回归法)

案例分析

分析棉花年产量与种子费,化肥费,农药费,机械费,灌溉费之间的关系

因为数据量纲一致,所以不需要对数据进行标准化处理,我们可以使用stata来对数据进行回归处理,在回归处理结束后,计算β\betaβ的方差膨胀因子检验变量之间是否存在多重共线性

我们可以明显看到回归系数的VIFVIFVIF明显大于10,因此变量之间有较强的多重共线性。
由于lasso回归的计算量显著小于岭回归,因此我们在处理多重共线性回归分析中大多使用lasso回归,在选择λ\lambdaλ时,岭迹分析法具有较强的主观性,不利于准确的测定,而VIFVIFVIF法在实际中几乎不用,因为岭回归基本筛选不出变量,所以在实际生活大多使用最小化均方预测误差方法


通过对数据进行最小化均方预测误差,stata会在最小的MSPE的一栏中标注*号,以此确定合适的λ\lambdaλ的值。

上表右边第1列即为Lasso所估计的变量系数。其中,除常数项外,只有3个变量的系数为非零,而其余变量(未出现在表中)的系数则为 0。考虑到作为收缩估计量的Lasso存在偏差(bias),上表右边第2列汇报了“Post Lasso”估计量的结果,即仅使用Lasso进行变量筛选,然后扔掉 Lasso 的回归系数,再对筛选出来的变量进行OLS回归。
注意:以上结果可能随着我们之前设置的随机数种子变化,因为lasso回归的估计是近似算法,且剔除的多重共线性变量是相对的。

总结

岭回归在stata使用中会存在bug,如遇到需要岭回归计算的问题,最好使用python实现
何时使用lasso回归:
我们首先使用一般的OLS对数据进行回归,然后计算方差膨胀因子VIFVIFVIF,如果VIFVIFVIF>10时,变量之间存在多重共线性,此时我们需要对变量进行筛选。
我们可以使用逐步回归法来筛选自变量,让回归中仅留下显著的自变量来抵消多重共线性的影响,在学习lasso后可以把lasso回归视为逐步回归法的进阶版,我们可以使用lasso回归来帮我们筛选出不重要的变量,步骤如下:
(1)判断自变量的量纲是否一样,如果不一样则首先进行标准化的预处理;(2)对变量使用lasso回归,记录下lasso回归结果表中回归系数不为0的变量,这些变量就是最终我们要留下来的重要变量,其余未出现在表中的变量可视为引起多重共线性的不重要变量。
在得到了重要变量后,我们实际上就完成了变量筛选,此时我们只将这些重要变量视为自变量,然后进行回归,并分析回归结果即可。(注意:此时的变量可以是标准化前的,也可以是标准化后的,因为lasso只起到变量筛选的目的)

岭回归python代码

def reg_model_Ridge(x,y,alphas,dim):''';岭回归估计:param x::param y::param alphas: 随机生成多个模型参数Lambda:param dim:维度:return: ridge_B 最优模型的系数'''model_coff=[]for alpha in alphas:ridge = Ridge(alpha=alpha,normalize=True)ridge.fit(x,y)model_coff.append(ridge.coef_)# if dim<=10:#plot_data(alphas, model_coff, 'Log Alpha', 'Cofficients', 'alpha系数与岭回归系数的关系 ,dim='+str(dim))# 交叉验证,找到模型最优的Lambda值ridge_cv= RidgeCV(alphas=alphas,normalize=True,scoring="neg_mean_absolute_error", cv=5)ridge_cv.fit(x,y)ridge_best_lambda = ridge_cv.alpha_# 建立最优模型ridge = Ridge(alpha=ridge_best_lambda,normalize=True)ridge.fit(x,y)# 得到最优模型的系数ridge_B = ridge.coef_return ridge_B

数学建模学习:岭回归和lasso回归相关推荐

  1. 数学建模 —— 岭回归和Lasso回归

    文章目录 前言 一.岭回归 1.原理 二.Lasso回归 1.使用情形 总结 前言 岭回归和Lasso回归相比较来说,Lasso回归要更好一点,但是Lasso回归求的是近似解,可以使用Lasso回归筛 ...

  2. 应用预测建模第六章-线性回归-预测化合物溶解度练习-R语言(多元线性回归,稳健回归,偏最小二乘回归,岭回归,lasso回归,弹性网)

    模型:多元线性回归,稳健回归,偏最小二乘回归,岭回归,lasso回归,弹性网 语言:R语言 参考书:应用预测建模 Applied Predictive Modeling (2013) by Max K ...

  3. ESL3.4 学习笔记(奇异值分解与拉格朗日乘子法下的岭回归,Lasso回归,最小角回归及三者对比分析)

    3.4 收缩的方法 这是一篇有关<统计学习基础>,原书名The Elements of Statistical Learning的学习笔记,该书学习难度较高,有很棒的学者将其翻译成中文并放 ...

  4. [机器学习-实践篇]学习之线性回归、岭回归、Lasso回归,tensorflow实现的线性回归

    线性回归.岭回归.Lasso回归 前言 1.线性回归 2. 岭回归 3. Lasso回归 4. tensorflow利用梯度下降实现的线性回归 前言 本章主要介绍线性回归.岭回归.Lasso回归,te ...

  5. 应用预测建模第六章线性回归习题6.1【主成分分析,模型的最优参数选择与模型对比 ,多元线性回归,稳健回归,偏最小二乘回归,岭回归,lasso回归,弹性网】

    模型:多元线性回归,稳健回归,偏最小二乘回归,岭回归,lasso回归,弹性网 语言:R语言 参考书:应用预测建模 Applied Predictive Modeling (2013) by Max K ...

  6. 应用预测建模第六章线性回归习题6.3【缺失值插补,分层抽样,预测变量重要性,重要预测变量如何影响响应变量,多元线性回归,稳健回归,偏最小二乘回归,岭回归,lasso回归,弹性网】

    模型:多元线性回归,稳健回归,偏最小二乘回归,岭回归,lasso回归,弹性网 语言:R语言 参考书:应用预测建模 Applied Predictive Modeling (2013) by Max K ...

  7. R语言学习笔记 06 岭回归、lasso回归

    R语言学习笔记 文章目录 R语言学习笔记 比较lm.ridge和glmnet函数 画岭迹图 图6-4 <统计学习导论 基于R语言的应用>P182 图6-6<统计学习导论 基于R语言的 ...

  8. [机器学习-原理篇]学习之线性回归、岭回归、Lasso回归

    线性回归.岭回归.Lasso回归 前言 一,线性回归--最小二乘 二,Lasso回归 三,岭回归 四, Lasso回归和岭回归的同和异 五, 为什么 lasso 更容易使部分权重变为 0 而 ridg ...

  9. [机器学习] - 岭回归与Lasso回归

    注:在学习机器学习中回归算法时,随时都会接触最小二乘法原理和求解过程,最小二乘法可能对于理工科的学生低头不见抬头见的知识点,特点是在我学习<数值分析>课程中,老师讲了些最小二乘法的历史[- ...

最新文章

  1. Thrift的java和php数据交互
  2. 1.13 抽象类和接口的区别
  3. SCU3033 Destroying a Painting(最小费用最大流)
  4. Python 网络爬虫笔记10 -- Scrapy 使用入门
  5. 傲游浏览器新浪微博插件v2发布
  6. centos7 部署elasticsearch
  7. android 读取俄文csv乱码,android导出CSV,中文乱码问题
  8. 计算机辅助档案管理文字说明,计算机辅助档案管理
  9. win10 uwp 相机的分辨率设置方法
  10. 解除excel打开密码
  11. UWB DW1000 TWR测距定位功能实现
  12. vue 中v-model原理及应用
  13. VIVADO版本不一致的IP更新问题
  14. 计算机网络协议(三)——UDP、TCP、Socket
  15. 集合相关题目0927
  16. 微信公众号与微信小程序相辅相成
  17. matlab加停顿,求高手解释下这段程序,实在是搞不懂了,要死的节奏了。。。。...
  18. 【安装与运行】IROS2020:Remove, then Revert - 基于多分辨率深度图的动态物体移除方法
  19. 哈工大软件构造 复习
  20. 基于SSM的药店管理系统

热门文章

  1. 精典的古代情诗,程序员追MM不可缺少.....
  2. 全国城市python-json格式
  3. MIT线性代数笔记四 矩阵的LU分解
  4. PhotoShop使用 之 图层文字编辑
  5. 勒索软件、移动恶意软件攻击将在2020年激增
  6. 基于 DocumentFormat.OpenXml 操作 Excel (1)-- 初识
  7. Sim300模块AT命令
  8. MG动画实例——旋转的地球
  9. 有赞、微盟“卷”向海外
  10. case when 用法