回归模型——岭回归和lasso回归

个人学习笔记,课程为数学建模清风付费课程

目录

一、多元线性回归模型的推导

1.1古典回归模型:满足四个假定

1.1.1假定一:线性假定

1.1.2假定二:严格外生性 

1.1.3无完全多重共线性

1.1.4球型扰动项 

二、原理

1.1岭回归

1.2lasso回归

三、岭回归和lasso回归的应用 

2.1安装lassopack命令

2.2使用lasso回归分析棉花产量例题

四、总结:何时使用lasso回归?


       在第七讲时,我们介绍了多元线性回归模型,估计回归系数使用的是OLS ,并在最后探讨了异方差和多重共线性对于模型的影响。事实上,回归中关于自变量的选择大有门道,变量过多时可能会导致多重共线性问题造成回归系数的不显著,甚至造成OLS 估计的失效。
       本节介绍到的岭回归和 lasso 回归在 OLS 回归模型的损失函数上加上了不同的惩罚项,该惩罚项由回归系数的函数构成,一方面,加入的惩罚项能够识别出模型中不重要的变量,对模型起到简化作用,可以看作逐步回归法的升级版;另一方面,加入的惩罚项能够让模型变得可估计,即使之前的数据不满足列满秩,在稍后的原理推导中我们将更加详细的说明这一点。

一、多元线性回归模型的推导

1.1古典回归模型:满足四个假定

1.1.1假定一:线性假定

1.1.2假定二:严格外生性 

保证估计回来的回归系数无偏且一致

 

1.1.3无完全多重共线性

保证能估计出来

1.1.4球型扰动项 

二、原理

1.1岭回归

岭回归 (Ridge regression: Hoerl and Kennard, 1970)  的原理和 OLS  估计类似,但是对系数的大小设置了惩罚项。

1.2lasso回归

三、岭回归和lasso回归的应用 

       Stata 中,我们可以安装 lassopack 命令来实现 Lasso  回归,Lassopack 包含三个 Lasso  相关的子命令(输入 help lassopack 可以查看详情): 子命令 lasso2  可进行 Lasso  估计 子命令 cvlasso 可进行 折交叉验证( k‐fold cross  validation ); 子命令 rlasso 可以估计惩罚项由数据决定或者高维情形(变量维度超过样本数)。

2.1安装lassopack命令

2.2使用lasso回归分析棉花产量例题

先将Excel数据导入到Stata(自变量的量纲相同所以不用标准化) 

注:Matlabzscore函数可以对数据进行标准化处理。 

       我们使用 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最小,故具有最佳的预测能力。
cvlasso 单产 种子费 化肥费 农药费 机械费 灌溉费, lopt seed(520)
       其中,选择项 “ lopt”  表示选择使 MSPE  最小的 λ ,选择项 “ seed(520)”  表示将随机数种子设为 520 (可自行设定),以便结果具有可重复性;默认 K=10(即 10  折交叉验证)。

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

四、总结:何时使用lasso回归?

       我们首先使用最一般的 OLS 对数据进行回归,然后计算方差膨胀因子VIF,如果 VIF>10 则说明存在多重共线性的问题,此时我们需要对变量进行筛选。
       在第七讲时我们提到可以使用逐步回归法来筛选自变量,让回归中仅留下显著的自变量来抵消多重共线性的影响,学完本讲后,大家完全可以把lasso 回归视为逐步回归法的进阶版,我们可以使用 lasso 回归来帮我们筛选出不重要的变量,步骤如下:(1 )判断自变量的量纲是否一样,如果不一样则首先进行标准化的预处理;(2 )对变量使用 lasso 回归,记录下lasso回归结果表中回归系数不为 0 的变量,这些变量就是最终我们要留下来的重要变量,其余未出现在表中的变量可视为引起多重共线性的不重要变量。
       在得到了重要变量后,我们实际上就完成了变量筛选,此时我们只将这些重要变量视为自变量,然后进行回归,并分析回归结果即可。(注意:此时的变量可以是标准化前的,也可以是标准化后的,因为lasso 只起到变量筛选的目的)
  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
多元线性回归是一种用于预测房屋价格的常用方法。它基于多个自变量与因变量之间的线性关系建立回归模型。在Python中,可以使用sklearn库的LinearRegression类来实现多元线性回归岭回归是对多元线性回归的一种正则化方法。它通过引入一个正则化项,可以在模型训练过程中对自变量的系数进行约束,从而避免过拟合的问题。在Python中,可以使用sklearn库的Ridge类来实现岭回归Lasso回归也是对多元线性回归的一种正则化方法,与岭回归类似,但它使用的是L1正则化。Lasso回归不仅可以约束自变量的系数,还可以用于特征选择,将不重要的特征的系数推向零。在Python中,可以使用sklearn库的Lasso类来实现Lasso回归。 使用这些方法进行房屋价格预测的步骤大致相同。首先,将房屋的特征作为自变量,房屋价格作为因变量,构建多元回归模型。然后,根据数据集中的房屋特征和对应的价格,利用模型进行训练。最后,可以使用训练好的模型对新的房屋特征进行预测,得到对应的价格。 需要注意的是,为了得到准确的预测结果,应该对数据进行适当的预处理,例如特征缩放、数据清洗和特征选择等。此外,还应该通过交叉验证等方法,选择适当的模型超参数,以避免过拟合或欠拟合的问题。 总的来说,多元回归岭回归lasso回归都是常用的预测房屋价格的方法,使用Python中的相应库可以方便地实现这些方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值