R语言实现LASSO回归的方法

Lasso回归又称为套索回归,是Robert Tibshirani于1996年提出的一种新的变量选择技术。Lasso是一种收缩估计方法,其基本思想是在回归系数的绝对值之和小于一个常数的约束条件下,使残差平方和最小化,从而能够产生某些严格等于0的回归系数,进一步得到可以解释的模型。R语言中有多个包可以实现Lasso回归,这里使用lars包实现。

1.利用lars函数实现lasso回归并可视化显示

x = as.matrix(data5[, 2:7]) #data5为自己的数据集
y = as.matrix(data5[, 1])
lar1 <-lars(x,y,type = "lasso")
lar1 #查看得到的结果

从图1可以看出通过lasso回归得到的R^2为0.426,较低。标红的部分是在进行lasso回归时,自变量被选入的顺序。下面用图表的形式显示。

plot(lar1) 

可以看到图2中的竖线对应于lasso中迭代的次数,对应的系数值不为0的自变量即为选入的,竖线的标号与图1中的step相对应。

2.选取cp值最小时对应的模型,获取模型对应系数

对于选取最小cp值对应的模型可以通过两种方式实现:
(1)显示所有cp值,从中挑选最小的

summary(lar1) #输出lasso对象的细节,包括Df、RSS和Cp,其中Cp是MallowsCp统计量,通常选取Cp最小的那个模型

图3显示了lasso回归中所有的cp值,选择最小的,即上图标红的部分,对应的df=3,最前面一列对应迭代次数(即步数),step=2 。

(2)直接选取最小的cp值

lar1$Cp[which.min(lar$Cp)] #选择最小Cp,结果如下:

与图3中标红的部分结果一样,但是要注意,2表示的是step大小。

3.选取cp值最小时对应的模型系数

(1)获取所有迭代系数,根据step大小选择cp值最小对应的自变量系数值

lar1$beta #可以得到每一步对应的自变量对应的系数

图4标红的部分就是step=2对应的cp值最小时对应的模型的自变量的系数

(2)获取指定迭代次数(即步数)对应的自变量的系数,可以通过下面的代码实现:

coef <-coef.lars(lar,mode="step",s=3) #s为step+1,也比图2中竖线为2的迭代次数对应,与图3中df值相等;s取值范围1-7.
coef[coef!=0] #获取系数值不为零的自变量对应的系数值

与图4中标红部分一样。

4.获取截距的系数

通过第4部分可以获取cp值最小时对应的自变量的系数,但是没有办法获取对应模型的截距值,下面的代码可以获取对应模型的截距值。

上面的代码就是求取cp值最小时对应的模型的截距值,结果如下:

总结:

通过上面的4步可以利用R语言实现Lasso回归,并可以获取模型相应的系数和截距值。

到此这篇关于R语言实现LASSO回归的方法的文章就介绍到这了,更多相关R语言LASSO回归内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • R语言如何实现多元线性回归

    R小白几天的摸索 红色为输入,蓝色为输出 输入数据 先把数据用excel保存为csv格式放在"我的文档"文件夹 打开R软件,不用新建,直接写 回归计算 求三个平方和 置信区间(95%) 散点图(最显著的因变量) 拟合图 一元线性回归 结果:(看图) 变量系数  Estimate 变量系数标准误  Std. Error T检验值  t value T检验p值  Pr(>|t|) 均方根误差  Residual standard error 判定系数  R-squared 调整判定系

  • R语言实现线性回归的示例

    在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析. 简单对来说就是用来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法. 回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析.如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析. 一元线性回归分析法的数学方程: y = ax + b

  • R语言时间序列TAR阈值自回归模型示例详解

    为了方便起见,这些模型通常简称为TAR模型.这些模型捕获了线性时间序列模型无法捕获的行为,例如周期,幅度相关的频率和跳跃现象.Tong和Lim(1980)使用阈值模型表明,该模型能够发现黑子数据出现的不对称周期性行为. 一阶TAR模型的示例: σ是噪声标准偏差,Yt-1是阈值变量,r是阈值参数, {et}是具有零均值和单位方差的iid随机变量序列. 每个线性子模型都称为一个机制.上面是两个机制的模型. 考虑以下简单的一阶TAR模型: #低机制参数 i1 = 0.3 p1 = 0.5 s1 = 1

  • 详解R语言中的多项式回归、局部回归、核平滑和平滑样条回归模型

    在标准线性模型中,我们假设 .当线性假设无法满足时,可以考虑使用其他方法. 多项式回归 扩展可能是假设某些多项式函数, 同样,在标准线性模型方法(使用GLM的条件正态分布)中,参数  可以使用最小二乘法获得,其中  在  . 即使此多项式模型不是真正的多项式模型,也可能仍然是一个很好的近似值 .实际上,根据 Stone-Weierstrass定理,如果  在某个区间上是连续的,则有一个统一的近似值  ,通过多项式函数. 仅作说明,请考虑以下数据集 db = data.frame(x=xr,y=y

  • R语言多元Logistic逻辑回归应用实例

    可以使用逐步过程确定多元逻辑回归.此函数选择模型以最小化AIC. 如何进行多元逻辑回归 可以使用阶梯函数通过逐步过程确定多元逻辑回归.此函数选择模型以最小化AIC. 通常建议不要盲目地遵循逐步程序,而是要使用拟合统计(AIC,AICc,BIC)比较模型,或者根据生物学或科学上合理的可用变量建立模型. 多元相关是研究潜在自变量之间关系的一种工具.例如,如果两个独立变量彼此相关,可能在最终模型中都不需要这两个变量,但可能有理由选择一个变量而不是另一个变量. 多元相关 创建数值变量的数据框 Data.

  • R语言如何进行线性回归的拟合度详解

    R语言进行线性回归的拟合度. 本文只是使用 R做回归计算,查看拟合度等,不讨论 R 函数的内部公式 在R中线性回归分析的函数是lm(),基本语法是 一元回归: lm(y ~ x,data) 多元回归:lm(y ~ x1+x2+x3-,data) 创建关系模型并获取系数 x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131) y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48) # 使用lm()函数

  • R语言逻辑回归、ROC曲线与十折交叉验证详解

    自己整理编写的逻辑回归模板,作为学习笔记记录分享.数据集用的是14个自变量Xi,一个因变量Y的australian数据集. 1. 测试集和训练集3.7分组 australian <- read.csv("australian.csv",as.is = T,sep=",",header=TRUE) #读取行数 N = length(australian$Y) #ind=1的是0.7概率出现的行,ind=2是0.3概率出现的行 ind=sample(2,N,rep

  • R语言实现LASSO回归的方法

    Lasso回归又称为套索回归,是Robert Tibshirani于1996年提出的一种新的变量选择技术.Lasso是一种收缩估计方法,其基本思想是在回归系数的绝对值之和小于一个常数的约束条件下,使残差平方和最小化,从而能够产生某些严格等于0的回归系数,进一步得到可以解释的模型.R语言中有多个包可以实现Lasso回归,这里使用lars包实现. 1.利用lars函数实现lasso回归并可视化显示 x = as.matrix(data5[, 2:7]) #data5为自己的数据集 y = as.ma

  • R语言实现随机森林的方法示例

    目录 随机森林算法介绍 算法介绍: 决策树生长步骤: 投票过程: 基本思想: 随机森林的优点: 缺点 R语言实现 随机森林模型搭建 1:randomForest()函数用于构建随机森林模型 2:importance()函数用于计算模型变量的重要性 3:MDSplot()函数用于实现随机森林的可视化 4:rfImpute()函数可为存在缺失值的数据集进行插补(随机森林法),得到最优的样本拟合值 5:treesize()函数用于计算随机森林中每棵树的节点个数 随机森林算法介绍 算法介绍: 简单的说,

  • R语言实现岭回归的示例代码

    岭参数的一般选择原则 选择k(或lambda)值,使得: 各回归系数的岭估计基本稳定 用最小二乘估计时符号不合理的回归系数,其岭回归的符号变得合理 回归系数没有不合乎实际意义的绝对值 残差平方和增大的不多 用R语言进行岭回归 这里使用MASS包中的longley数据集,进行岭回归分析(longley数据集中的变量具有显著的多重共线性).从而分析使用岭回归进行多重共线性的解决. 首相将longley数据集中的第一列数据命名为"y",并使用岭回归创建线性模型: 显示当y为因变量,其余各个变

  • R语言seq()函数的调用方法

    看到有很多读者浏览了这篇文章,心里很是开心,为了能够更好地帮助大家,决定再修改一下,帮助大家更好地理解. --------修改于:2018年4月28日 为了方便大家在开发环境中直接实验测试代码,下面,我将说明和函数的用法全部用英文给出(避免乱码),并加以注释,希望能够对大家有所帮助! 首先,我们来看一个seq()函数应用的实例! x <- seq(0, 10, by = 0.01) y <- sin(x) plot(y) 下面,我们来看函数的主要使用方法! 注意:在本文调用函数时,均采用写出入

  • R语言创建矩阵的实现方法

    矩阵 向量vector用于描述一维数据,是R语言中最基础的数据结构形式 矩阵matrix可以描述二维数据,和向量相似,其内部元素可以是实数.复数.字符.逻辑型数据 矩阵包含行和列,分为单位矩阵.对角矩阵和普通矩阵.矩阵可以进行四则运算,以及进行求特征值.特征向量等运算 矩阵matrix使用两个下标来访问元素,A[i,j]表示矩阵A第i行.第j列的元素 矩阵创建--matrix函数 matrix函数创建矩阵,其格式为: matrix(data = NA,nrow = 1,ncol = 1,byro

  • R语言读取excel数据的方法(两行命令)

    安装库 安装xlsx install.packages("xlsx") 使用 library(xlsx) ray = read.xlsx('D:/Code/R/Data in Excel/Chapter 8/gamma-ray.xls',1) 后面的参数,第一个放地址,第二个放具体sheet页(这里除了可以放数值之外,还可以放对应的名字(字符串)).除此之外,还可以使用encoding="utf-8"的方式来定义使用中文数据. 效果: > a = read.x

  • R语言处理JSON文件的方法

    JSON文件以人类可读格式将数据存储为文本. Json代表JavaScript Object Notation. R可以使用rjson包读取JSON文件. 安装rjson包 在R语言控制台中,您可以发出以下命令来安装rjson包. install.packages("rjson") 输入数据 通过将以下数据复制到文本编辑器(如记事本)中来创建JSON文件. 使用.json扩展名保存文件,并将文件类型选择为所有文件(*.*). { "ID":["1"

  • R语言中逻辑回归知识点总结

    逻辑回归是回归模型,其中响应变量(因变量)具有诸如True / False或0/1的分类值. 它实际上基于将其与预测变量相关的数学方程测量二元响应的概率作为响应变量的值. 逻辑回归的一般数学方程为 y = 1/(1+e^-(a+b1x1+b2x2+b3x3+...)) 以下是所使用的参数的描述 y是响应变量. x是预测变量. a和b是作为数字常数的系数. 用于创建回归模型的函数是glm()函数. 语法 逻辑回归中glm()函数的基本语法是 glm(formula,data,family) 以下是

  • R语言关于泊松回归知识点总结

    泊松回归(英语:Poisson regression)包括回归模型,其中响应变量是计数而不是分数的形式. 例如,足球比赛系列中的出生次数或胜利次数. 此外,响应变量的值遵循泊松分布. 泊松回归的一般数学方程为 log(y) = a + b1x1 + b2x2 + bnxn..... 以下是所使用的参数的描述 ​y​是响应变量. ​a​和​b​是数字系数. ​x​是预测变量. 用于创建泊松回归模型的函数是​glm()​函数. 语法 在泊松回归中​glm()​函数的基本语法是 glm(formula

  • R语言常用两种并行方法之snowfall详解

    上一篇博客(R中两种常用并行方法之parallel)中已经介绍了R中常见的一种并行包:parallel,其有着简单便捷等优势,其实缺点也是非常明显,就是很不稳定.很多时候我们将大量的计算任务挂到服务器上进行运行时,更看重的是其稳定性. 这时就要介绍R中的另一个并行利器--snowfall,这也是在平时做模拟时用的最多的一种方法. 针对上篇中的简单例子 首先是一个最简单的并行的例子,这个例子不需要载入任何依赖库.函数.对象等.相对也比较简单: library(snowfall) # 载入snowf

随机推荐