拓端tecdat|r语言bootstrap的岭回归和自适应lasso回归可视化(代码片段)

大数据部落 大数据部落     2022-12-02     367

关键词:

原文链接:http://tecdat.cn/?p=22921

原文出处:拓端数据部落公众号

拟合岭回归和LASSO回归,解释系数,并对其在λ范围内的变化做一个直观的可视化。

  1.  
    # 加载CBI数据
  2.  
    # 子集所需的变量(又称,列)
  3.  
    CBI_sub <- CBI
  4.  
     
  5.  
    # 重命名变量列(节省大量的输入)
  6.  
    names(CBI_sub)[1] <- "cbi"
  7.  
     
  8.  
     
  9.  
    # 只要完整案例,删除缺失值。
  10.  
    CBI_sub <- CBI_sub[complete.cases(CBI_sub),]
  11.  
     
  12.  
    #现在检查一下CBI_sub里面的内容
  13.  
    names(CBI_sub)

  1.  
    # 设置控制参数
  2.  
    control = method = "cv",number=5) # 5折CV
  3.  
     
  4.  
    cbi ~ ., data = CBI_sub, method = "glmnet",
  5.  
    trControl = control, preProc = c("center","scale"), # 中心和标准化数据
  6.  
     
  7.  
    # 得到系数估计值(注意,我们真正关心的是β值,而不是S.E.)。
  8.  
    coef(ridge_caret.fit, bestTune$lambda)

  1.  
    cbi ~ ., data = CBI_sub, method = "glmnet",
  2.  
    tuneGrid = expand.grid(alpha = 1,
  3.  
     
  4.  
    # 获得系数估计
  5.  
    coef(lasso_caret,bestTunelambda)

使用glmnet软件包中的相关函数对岭回归和lasso套索回归进行分析。 

准备数据  

注意系数是以稀疏矩阵格式表示的,因为沿着正则化路径的解往往是稀疏的。使用稀疏格式在时间和空间上更有效率 

  1.  
    # 拟合岭回归模型
  2.  
    glmnet(X, Y, alpha = 0)
  3.  
     
  4.  
    #检查glmnet模型的输出(注意我们拟合了一个岭回归模型
  5.  
    #记得使用print()函数而不是summary()函数
  6.  
    print(glmnet.fit)

  1.  
    # 输出最佳lamda处的岭回归coefs
  2.  
     
  3.  
    coef(glmnet.fit, s = lambda.1se)

绘制结果 

  1.  
    #
  2.  
    plot(ridge_glmnet.fit, label = TRUE)

图中显示了随着lambda的变化,模型系数对整个系数向量的L1-norm的路径。上面的轴表示在当前lambda下非零系数的数量,这也是lasso的有效自由度(df)。 

  1.  
    par(mfrow=c(1,2)) # 建立1乘2的绘图环境
  2.  
    plot_glmnet(ridge_glmnet.fit, xvar = "lambda", label=6, xlab = expression(paste("log(", lambda, ")")), ylab = expression(beta)) # "标签"是指你想让图表显示的前N个变量。

  1.  
    # 进行变量选择,比如说,我想根据λ>0.1的标准或其他一些值来选择实际系数。
  2.  
    coef(ridge_glmnet.fit, s = 0.1)

交叉验证的岭回归 

  1.  
    #
  2.  
    plot(cv.ridge)
  3.  
     
  4.  
    # 我们可以查看选定的lambda和相应的系数。例如:
  5.  
    lambda.min

# 根据最小的lambda(惩罚)选择变量

  1.  
    # lambda.min是λ的值,它使交叉验证的平均误差最小
  2.  
    # 选择具有最大惩罚性的一个
  3.  
    coef

## 对lasso模型做同样的处理

数据挖掘

使用自适应LASSO进行函数形式规范检查

  1.  
    # 加载CBI数据
  2.  
    CBI <- read.csv("dat.csv")
  3.  
    #对需要的变量进行取子集(列)
  4.  
    names(CBI)<- "cbi"
fitpoly(degree = 2, thre = 1e-4)   # 设置多项式的度数为2 

bootstrap 

boot(poly.fit1, nboot = 5)   #5次bootstrap迭代

交叉验证 

  1.  
    # 交叉验证,10折CV
  2.  
    cbi ~ ., data = CBI_sub, degrees.cv = 1:3,)

  1.  
    # 提取最佳模型并进行bootstrap
  2.  
    boot(cv.pred, nboot = 5) # 5次bootstrap
  3.  
     
  4.  
    # 绘制cv.boot的预测值的边际效应
  5.  
    marg(cv.boot))

补充

获得岭回归和LASSO模型的bootstrap平均数

  1.  
    #如果你想要S.E.,通过bootstrap模拟得到它。
  2.  
     
  3.  
    library(boot)
  4.  
    boot(CBI_sub, function(data, idx)
  5.  
    bootSamples

最受欢迎的见解

1.R语言多元Logistic逻辑回归 应用案例

2.面板平滑转移回归(PSTR)分析案例实现

3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

4.R语言泊松Poisson回归模型分析案例

5.R语言回归中的Hosmer-Lemeshow拟合优度检验

6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

7.在R语言中实现Logistic逻辑回归

8.python用线性回归预测股票价格

9.R语言如何在生存分析与Cox回归中计算IDI,NRI指标

拓端tecdat|r语言编程指导多分类logistic逻辑回归模型在混合分布模拟单个风险损失值评估的应用

R语言多分类logistic逻辑回归模型在混合分布模拟单个风险损失值评估的应用 通常,我们在回归模型中一直说的一句话是“ 请查看一下数据 ”。在​​上一篇文章中​​,我们没有查看数据。如果我们查看单个损失的... 查看详情

拓端tecdat|r语言编程指导用线性模型进行臭氧预测:加权泊松回归,普通最小二乘,加权负二项式模型,多重插补缺失值

R语言用线性模型进行臭氧预测:加权泊松回归,普通最小二乘,加权负二项式模型,多重插补缺失值  在这篇文章中,我将从一个基本的线性模型开始,然后从那里尝试找到一个更合适的线性模型。数据预处理由于空气... 查看详情

拓端tecdat|r语言代写使用混合模型进行聚类

R语言使用混合模型进行聚类  混合模型是k个分量分布的混合,它们共同形成混合分布:F(x )f(x)F(x )= Σk = 1ķαķFķ(x )f(x)=∑k=1Kαkfk(x)  为什么要使用混合模型?让我们通过一个例子激... 查看详情

拓端tecdat|r语言辅导wald检验vs似然比检验

R语言Wald检验vs似然比检验 在开展基于概率推理的课程时,关键主题之一是基于似然函数的检验和置信区间构建。通常包括Wald,似然比和分数检验。在这篇文章中,我将修改Wald和似然比检验的优缺点。我将重点关注置信区间... 查看详情

拓端tecdat|r语言辅导解释生存分析中危险率和风险率的变化

R语言解释生存分析中危险率和风险率的变化 危险率函数 让我们模拟R中的一些数据:n<-10000h<-0.5t<--log(runif(n))/h该代码模拟了危险函数的存活时间,即常数。 事件<-1*(t<5)时间<-tobstime[obstime>=5]<... 查看详情

拓端tecdat|r语言编程指导时间序列数据指数平滑法分析交互式动态可视化

R语言时间序列数据指数平滑法分析交互式动态可视化 R语言提供了丰富的功能,可用于绘制R中的时间序列数据。包括:自动绘制 ​​xts​​ 时间序列对象(或任何可转换为xts的对象)的图。高度可配置的轴和系列显... 查看详情

拓端tecdat|r语言中的多类别问题的绩效衡量:f1-score和广义auc

R语言中的多类别问题的绩效衡量:F1-score和广义AUC 对于分类问题,通常根据与分类器关联的混淆矩阵来定义分类器性能。根据混淆矩阵,可以计算灵敏度(召回率),特异性和精度。 对于二进制分类问题,所有这些性能... 查看详情

拓端tecdat:看推特数据如何”塑造”地区形象

“高度信息化的今天,社交媒体向我们提供直接认识外界的一个窗口,决定着大家对一个地区的认知,像是一双对地区形象“塑型”的“看不见”的手。▼根据这个背景,tecdat对素有“塞上江南”之称的宁夏热门推文(hottweet,推... 查看详情

r语言用logistic逻辑回归和afrimaarima时间序列模型预测世界人口(代码片段)

原文链接:http://tecdat.cn/?p=27493 原文出处:拓端数据部落公众号本文应用R软件技术,分别利用logistic模型、ARFMA模型、ARIMA模型、时间序列模型对从2016到2100年的世界人口进行预测。作者将1950年到2015年的历史数据作为训... 查看详情

拓端tecdat|python代写辅导使用神经网络进行简单文本分类

Python使用神经网络进行简单文本分类深度学习无处不在。在本文中,我们将使用Keras进行文本分类。准备数据集出于演示目的,我们将使用  20个新闻组  数据集。数据分为20个类别,我们的工作是预测这些类别。如... 查看详情

使用插入符号的岭逻辑回归系数的标准误差

】使用插入符号的岭逻辑回归系数的标准误差【英文标题】:StandardErrorofRidgeLogisticRegressionCoefficientusingcaret【发布时间】:2020-05-2714:18:09【问题描述】:我在R中使用caret包来执行岭逻辑回归。现在我可以找到每个变量的系数了。... 查看详情

拓端tecdat|python辅导基于粒子群优化的投资组合优化研究

基于粒子群优化的投资组合优化研究 我今年的研究课题是​​使用粒子群优化(PSO)的货币进行交易组合优化​​。在本文中,我将介绍投资组合优化并解释其重要性。其次,我将演示粒子群优化如何应用于投资组合优化。... 查看详情

r语言之岭回归

岭回归可以用来解决过度拟合的问题一、线性模型的岭回归可使用ridge包中的linearRidge函数和MASS包中的lm.ridge函数>library(RSADBE)>data(OF)>LM<-lm.ridge(Y~poly(X,3),data=as.data.frame(OF),lambda=c(0,0.5,1,1.5,2,5,10,30))lambda为指定值二、Lo 查看详情

拓端tecdat|基于出租车gps轨迹数据的研究:出租车行程的数据分析

基于出租车GPS轨迹数据的研究:出租车行程的数据分析数据Reddit用户imjasonh和fhoffa解析了原始数据,该模式如下所示:  每次骑行都有非常具体的上/下车位置以及开始/结束时间的详细信息。 下面显示了一个示例 ... 查看详情

拓端tecdat|图像倾斜校正算法的matlab代写实现:图像倾斜角检测及校正

图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正随着多媒体技术的不断发展,数码相机,高清拍照手机等多媒体设备己经在人们的生活中占据了越来越重要的地位。通过采用图像处理技术,可以将数码设备采集到的文字、... 查看详情

基于sklearn的岭回归

】基于sklearn的岭回归【英文标题】:RidgeRegressionBasedonsklearn【发布时间】:2022-01-2019:47:04【问题描述】:基于Numpy,创建数据x并标注y来训练岭回归模型,然后使用另一个创建的x和y来预测回归。正确预测的百分比仅为14/64。我不... 查看详情

多项式内核度数 = 1 的岭回归和 SVM 回归器 (SVR) 之间的差异

】多项式内核度数=1的岭回归和SVM回归器(SVR)之间的差异【英文标题】:DifferencebetweenridgeregressionandSVMregressor(SVR)withpolynomialkernelofdegree=1【发布时间】:2021-05-1123:25:40【问题描述】:我正在尝试为应用程序构建模型,我使用了sklearn... 查看详情

使用 sklearn 的岭回归制作 L 曲线

】使用sklearn的岭回归制作L曲线【英文标题】:MakinganL-curvewithsklearn\'sridgeregression【发布时间】:2020-02-1408:35:42【问题描述】:可视化ridgeregression的解决方案的常用方法是Lcurve,它针对不同选择的正则化参数绘制误差平方和与岭... 查看详情