全文链接:https://tecdat.cn/?p=33462
本文将关注R语言中的LASSO(Least Absolute Shrinkage and Selection Operator)惩罚稀疏加法模型(Sparse Additive Model,简称SPAM)。SPAM是一种用于拟合非线性数据的强大工具,它可以通过估计非线性函数的加法组件来捕捉输入变量与响应变量之间的复杂关系(点击文末“阅读原文”获取完整代码数据)。
相关视频
通过本文,我们将展示如何帮助客户在R语言中使用LASSO惩罚稀疏加法模型(SPAM)来拟合非线性数据,并进行相应的可视化分析。
本文提供了一个代码来设置、拟合和可视化加法模型。数值特征会自动使用样条基函数进行扩展。这个基本思想最早是由Ravikumar等人在2009年提出的,他们称之为SPAM,即稀疏加法模型。最初的提议涉及到组套索lasso惩罚,但grpreg的任何惩罚函数都可以代替。基本用法如下所示。
非线性数据:
dim(Data$X)
# [1] 1000 16
矩阵包含 16 个数字特征。
生成的对象是一个列表,其中包含扩展矩阵和分组分配,以及一些内部函数所需的元数据。使用具有三个自由度的自然三次样条曲线。
现在可以将扩展后的矩阵传递给 :grpreg()
fit <- grpreg
请注意,在这种情况下不必传递分组信息,因为分组信息包含在对象中。
plot_spline(fit,
偏残差也可包含在这些图中:
plot_splinpartial=TRUE)
点击标题查阅往期内容
R语言用GAM广义相加模型研究公交专用道对行程时间变异度数据的影响
左右滑动查看更多
01
02
03
04
默认情况下,这些图的居中值为 x(的平均值(其中 x表示正在绘制的特征)的平均值为零时,y值为零。另一种情况是,如果指定了plot_spline()x,则将绘制一幅纵轴代表模型预测值的曲线图,所有其他特征都固定为平均值:
plot_spline(fit, "V02, type='conditional')
在比较这两幅图时,请注意总体轮廓是相同的,唯一不同的是纵轴的值。下面是前 9 个系数的曲线图:
for (i in 1:9) ploline(fit
在生成模型中,变量 3 和 4 与结果呈线性关系,变量 1、2、5 和 6 呈非线性关系,而所有其他变量均不相关。稀疏加法模型很好地捕捉到了这一点。
进行交叉验证(默认情况下会绘制出使交叉验证误差最小的拟合结果):
cvfit <- cv.grp
plot_line
最后,这些工具还可用于生存模型和 glm 模型。在这里,所有绘图都以线性预测尺度返回,残差为偏差残差。
点击文末“阅读原文”
获取全文完整代码数据资料。
本文选自《R语言lasso惩罚稀疏加法(相加)模型SPAM拟合非线性数据和可视化》。
点击标题查阅往期内容
【视频】广义相加模型(GAM)在电力负荷预测中的应用
分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测
实现广义相加模型GAM和普通最小二乘(OLS)回归
R语言非参数模型厘定保险费率:局部回归、广义相加模型GAM、样条回归
R语言广义加性模型GAMs分析温度、臭氧环境数据绘制偏回归图与偏残差图
R语言广义相加(加性)模型(GAMs)与光滑函数可视化
R语言里的非线性模型:多项式回归、局部样条、平滑样条、 广义相加模型GAM分析
R语言用标准最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类
R语言ISLR工资数据进行多项式回归和样条回归分析
R语言中的多项式回归、局部回归、核平滑和平滑样条回归模型
R语言用泊松Poisson回归、GAM样条曲线模型预测骑自行车者的数量
R语言分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测
R语言中的多项式回归、B样条曲线(B-spline Curves)回归
R语言广义相加模型 (GAMs)分析预测CO2时间序列数据
R语言中实现广义相加模型GAM和普通最小二乘(OLS)回归
在r语言中使用GAM(广义相加模型)进行电力负荷时间序列分析
R语言用泊松Poisson回归、GAM样条曲线模型预测骑自行车者的数量
Python用广义加性模型GAM进行时间序列分析
R语言广义线性模型GLM、多项式回归和广义可加模型GAM预测泰坦尼克号幸存者
R语言中的广义线性模型(GLM)和广义相加模型(GAM):多元(平滑)回归分析保险资金投资组合信用风险敞口
R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归
对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归