弹性网惩罚项的可视化分析(R语言)

Posted 统计学小王子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了弹性网惩罚项的可视化分析(R语言)相关的知识,希望对你有一定的参考价值。

0引言

在博客《变量选择——lasso、SCAD、MCP的实现(R语言》中介绍了R语言做变量选择常用的函数和包,其中msaenet和glmnet是做的弹性网,弹性网是岭回归和lasso类惩罚的回归。下面以二维为例,介绍岭回归、lasso、弹性网惩罚项的区别,因为我们知道惩罚回归是似然函数或者最小二乘求条件极值,具体的形式以限制条件给出,给定常数C有:
岭回归,
x 2 + y 2 = C , x^2 + y^2=C, x2+y2=C,
lasso:
∣ x ∣ + ∣ y ∣ = C , |x|+|y|=C, x+y=C,
弹性网,给定0-1的 α \\alpha α有:
α ( ∣ x ∣ + ∣ y ∣ ) + ( 1 − α ) ( x 2 + y 2 ) = C . \\alpha (|x|+|y|)+(1-\\alpha)(x^2+y^2)=C. α(x+y)+(1α)(x2+y2)=C.
可以看出当 α = 1 \\alpha=1 α=1时退化为lasso,当 α = 0 \\alpha=0 α=0时退化为岭回归。
下面取C=1,对上述三个可行域可视化。

1、函数构建

1.1代码

# 2.2函数调用
O <- par(mfrow = c(2, 3))
netplot(C = 1, alpha = 0)
text(0,0.8,paste0("alpha = ",0),col = "blue", cex = 4)
netplot(C = 1, alpha = 0.1)
text(0,0.8,paste0("alpha = ",0.1),col = "blue", cex = 4)
netplot(C = 1, alpha = 0.2)
text(0,0.8,paste0("alpha = ",0.2),col = "blue", cex = 4)
netplot(C = 1, alpha = 0.5)
text(0,0.8,paste0("alpha = ",0.5),col = "blue", cex = 4)
netplot(C = 1, alpha = 0.8)
text(0,0.8,paste0("alpha = ",0.8),col = "blue", cex = 4)
netplot(C = 1, alpha = 1)
text(0,0.8,paste0("alpha = ",1),col = "blue", cex = 4)
par(O)

1.2图片

1.3动图

2、总结

最后希望可以帮助大家学习R语言。水平有限发现错误还望及时评论区指正,您的意见和批评是我不断前进的动力。当然如果有更好的改进方案欢迎评论区交流。
本文的代码已整理好,实在刚需移步下面链接下载研究。

以上是关于弹性网惩罚项的可视化分析(R语言)的主要内容,如果未能解决你的问题,请参考以下文章

拓端tecdat|R语言高维数据惩罚回归方法:主成分回归PCR岭回归lasso弹性网络elastic net分析基因数据

高维数据惩罚回归方法:主成分回归PCR岭回归lasso弹性网络elastic net分析基因数据|附代码数据

基于R语言科学数据可视化应用学习班

R语言e1071包中的支持向量机:构建nu-classification类型的支持向量机SVM并分析不同nu值惩罚下模型分类螺旋线型(sprials)线性不可分数据集的表现

python实现线性回归之弹性网回归

R语言回归anova方差分析相关性分析 《精品购物指南》调研数据可视化|附代码数据