R语言Lasso回归模型变量选择和糖尿病发展预测模型

Lease Absolute Shrinkage and Selection Operator(LASSO)在给定的模型上执行正则化和变量选择。

由Kaizong Ye,Weilong Zhang撰写

根据惩罚项的大小,LASSO将不太相关的预测因子缩小到(可能)零。

因此,它使我们能够考虑一个更简明的模型。在这组练习中,我们将在R中实现LASSO回归。在R中实现LASSO回归(Least Absolute Shrinkage and Selection Operator)是一个常见的统计学习任务,尤其是在需要处理高维数据或避免过拟合时。LASSO回归通过添加一个惩罚项来减少模型的复杂度,从而帮助选择对预测目标最重要的变量。在R中实现LASSO回归,我们通常使用glmnet包,它提供了高效且灵活的算法来处理LASSO和弹性网回归。首先,我们需要准备数据,将响应变量和预测变量分开,并将预测变量转换为矩阵格式。数据预处理是一个关键步骤,它可以影响模型的性能和稳定性。对于LASSO回归来说,特征缩放尤为重要,因为L1正则化对特征的尺度是敏感的。通常,我们会使用标准化(将数据转换为均值为0,标准差为1的分布)或归一化(将数据缩放到特定范围,如0到1)来预处理特征。


练习1

加载糖尿病数据集。这有关于糖尿病的病人水平的数据。数据为n = 442名糖尿病患者中的每个人获得了10个基线变量、年龄、性别、体重指数、平均血压和6个血清测量值,以及感兴趣的反应,即一年后疾病进展的定量测量。”
接下来,加载包用来实现LASSO。

head(data)

练习2

数据集有三个矩阵x、x2和y。x是较小的自变量集,而x2包含完整的自变量集以及二次和交互项。
检查每个预测因素与因变量的关系。生成单独的散点图,所有预测因子的最佳拟合线在x中,y在纵轴上。用一个循环来自动完成这个过程。

summary(x)

视频

Lasso回归、岭回归等正则化回归数学原理及R语言实例

探索见解

去bilibili观看

探索更多视频

for(i in 1:10){
  plot(x\[,i\], y)
  abline(lm(y~x\[,i\])
}

 

练习3

使用OLS将y与x中的预测因子进行回归。我们将用这个结果作为比较的基准。

plot(model_lasso)

基于R语言实现LASSO回归分析

阅读文章


练习5

得到交叉验证曲线和最小化平均交叉验证误差的lambda的值。

plot(cv_fit)


随时关注您喜欢的主题


练习6

使用上一个练习中的lambda的最小值,得到估计的β矩阵。注意,有些系数已经缩减为零。这表明哪些预测因子在解释y的变化方面是重要的。

> fit$beta

练习7

为了得到一个更简明的模型,我们可以使用一个更高的λ值,即在最小值的一个标准误差之内。用这个lambda值来得到β系数。注意,现在有更多的系数被缩减为零。

lambda.1se
beta

练习8

如前所述,x2包含更多的预测因子。使用OLS,将y回归到x2,并评估结果。

summary(ols2)

练习9

对新模型重复练习-4。

lasso(x2, y)
plot(model_lasso1)

当有很多候选变量时,这是缩小重要预测变量的有效方法。

练习10

对新模型重复练习5和6,看看哪些系数被缩减为零。

plot(cv_fit1)
beta


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds