R语言组lasso改进逻辑回归变量选择分析高血压、易感因素、2型糖尿病和LDL可视化

简介: R语言组lasso改进逻辑回归变量选择分析高血压、易感因素、2型糖尿病和LDL可视化

全文链接:https://tecdat.cn/?p=33015


本文用逻辑回归和lasso算法医学上的疾病的相关因素,帮助客户确定哪种模型可用于某种疾病的相关因素分析。3个模型:Logistic模型、成组Lasso Logistic模型、由组Lasso选出协变量的Logistic模型,有3个易感因素、高血压、2型糖尿病和LDL,得出误差率和变量数目的图点击文末“阅读原文”获取完整代码数据


为了比较不同调整参数筛选解释变量的效果, 建立如下三个包含不同协变量的模型并通过十折交叉验证计算判断误差:

1)模型 I:包含所有待选协变量的 Logistic 模型;

2)模型 II:成组 Lasso Logistic 模型;

3)模型 III:仅包含由成组 Lasso 选出协变量的 Logistic 模型


查看数据变量


image.png

image.png

读取数据


data=read.spss("test1_3.sav", to.data.frame=T)
head(data)

image.png

1)模型I:包含所有待选协变量的Logistic模型;


包含所有待选协变量的Logistic模型是一种统计模型,用于预测二分类结果的概率。协变量是指与待预测结果相关的特征或变量。在这种模型中,使用了所有待选的协变量作为自变量,并基于这些自变量与待预测结果之间的关系,建立了一个数学模型。

具体而言,模型使用logistic函数(也称为sigmoid函数)来建立自变量和待预测结果之间的关系。logistic函数将自变量的线性组合映射到一个0到1之间的概率值,表示该样本属于某个特定类别的概率。

在构建模型时,需要确定每个协变量的系数(也称为权重),以及和结果之间的关系。通常使用最大似然估计方法来确定这些系数,以最大化模型对观测数据的拟合度。

该模型的目标是通过对待选协变量的使用,最大化对结果的预测准确性和可解释性。然而,选择合适的协变量需要基于领域知识、统计分析和模型评估等综合考虑。

需要注意的是,选择所有待选协变量并不意味着所有的协变量都是对结果有帮助的,也可能存在一些多余或不相关的协变量。因此,在模型构建过程中,还需要进行变量筛选、特征工程和模型评估等步骤来确保选择的协变量和模型的可靠性和精确性。

split <- sample(1:nrow(data),nrow(data)*(2/3))  
  
data$HP=as.numeric(data$HP!=0)
HP ~.,family=binomial(link='logit'

image.png

点击标题查阅往期内容


数据分享|R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病


01

02

image.png

03

04



混淆矩阵

混淆矩阵是用于评估分类模型性能的一种表格形式。它是由预测结果和实际结果组成的二维矩阵,其中行表示实际类别,列表示预测类别。每个单元格的值代表了在特定类别下的样本数量。

混淆矩阵的四个主要单元格包括:

  1. 真正例(True Positive, TP):预测为正例且实际也为正例的样本数量。
  2. 假正例(False Positive, FP):预测为正例但实际为负例的样本数量。
  3. 假反例(False Negative, FN):预测为负例但实际为正例的样本数量。
  4. 真反例(True Negative, TN):预测为负例且实际也为负例的样本数量。

通过混淆矩阵,我们可以计算出一些常用的分类模型评估指标,例如准确率(Accuracy)、精确率(Precision)、召回率(Recall)和 F1 值等。这些指标可以帮助我们了解模型在不同类别上的表现,并判断其分类能力的好坏。

res <- data.frame(real,predict =ifelse(predict>0.5,'good','bad'))  
  
  
table(res)

image.png

auc

AUC (Area Under the Curve) 是一种常用的评估二分类模型性能的指标。它表示模型在不同阈值下的真阳性率(True Positive Rate,也称为召回率)与假阳性率(False Positive Rate)之间的关系。

AUC的取值范围在0到1之间,其中0.5表示模型的预测性能与随机猜测相当,而1表示模型完美地预测了正例和负例。

AUC的计算方法是首先将模型的预测结果按照概率从高到低进行排序,然后根据不同的阈值,计算出对应的真阳性率和假阳性率。最后,通过对这些真阳性率和假阳性率的数值进行积分,得到AUC的值。

AUC的优点是不受分类阈值的影响,能够全面评估模型的性能。它适用于不平衡数据集和多类别问题,并且对于数据集中存在噪声和异常值的情况也比较鲁棒。因此,AUC是评估和比较分类模型性能的重要指标之一。

performance( prediction( predict, real ),  "auc" )@y.values[[1]]
## [1] 0.7642045

image.png

2)模型II:组Lasso Logistic模型;


组Lasso Logistic模型是一种用于分类问题的机器学习模型。它结合了Lasso回归和逻辑回归的方法。Lasso回归是一种用于特征选择和正则化的线性回归方法,它倾向于将参数稀疏化,即将一些参数设为零,从而获得更简单的模型。逻辑回归则是一种常用的分类算法,适用于二分类或多分类问题。

组Lasso Logistic模型通过结合Lasso回归和逻辑回归的思想,旨在同时实现特征选择和分类任务。它在建模过程中考虑了特征选择的问题,从而可以处理高维数据集中的冗余特征,并且能够在给定的特征集中选择出对分类任务最有用的特征。通过对损失函数进行优化,模型可以找到最佳的参数设置,以最大程度地减小预测错误,并增强模型的泛化能力。

组Lasso Logistic模型在许多实际应用中都表现出很好的性能。它在生物信息学、文本分类、图像识别和金融预测等领域都有广泛的应用。通过结合Lasso回归的特征选择能力和逻辑回归的分类能力,组Lasso Logistic模型能够提供更准确和可解释的分类结果。

##建立lasso模型  
cv.lasso <- cv.ata_train$HP[1:nrow(xmat)] ) )

绘制误差

image.png

点击标题查阅往期内容


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


01

02

03

04



coef(cv.lasso

image.png

根据lasso筛选出最优的变量

Lasso(Least Absolute Shrinkage and Selection Operator)是一种用于变量选择和模型建立的统计方法。它通过对目标函数添加一个惩罚项,将某些变量的系数缩减为零,从而实现变量筛选和模型简化。

根据Lasso筛选出最优的变量的过程可以概括为以下几个步骤:

  1. 数据准备:将数据集分为训练集和测试集,用于模型的训练和评估。
  2. 模型建立:使用训练集数据,通过Lasso算法建立回归模型。Lasso算法通过最小化目标函数,其中包括了一个惩罚项,该项是变量系数的绝对值之和与一个常数的乘积。这个常数称为惩罚力度,用于控制变量收缩的程度。
  3. 变量筛选:根据Lasso算法的特点,它会将一些变量的系数收缩为零,从而将这些变量排除在最优模型之外。通过观察Lasso算法得到的变量系数,可以确定哪些变量被选中,即为最优的变量。
  4. 模型评估:使用测试集数据,对选中的最优变量建立回归模型进行评估。可以使用一些评估指标(如均方误差、决定系数等)来评估模型的性能。

总之,根据Lasso筛选出最优的变量是通过使用Lasso算法建立回归模型,并根据变量系数的收缩情况来确定哪些变量被选中,从而得到最优的变量组合。这可以帮助简化模型、提高预测准确性,并揭示出对目标变量具有显著影响的变量。

#筛选变量  
data_train=data_train[,c(variables
=binomial(link='logit')

image.png

混淆矩阵

table(res)

image.png

lot( performance( prediction(

image.png

"auc" )@y.values[[1]]
## [1] 0.75


3)模型III:仅包含由成组Lasso选出协变量的Logistic模型。


仅包含由成组Lasso选出协变量的Logistic模型是一种统计模型,用于预测二元分类问题。在此模型中,使用了Lasso方法来选择协变量(也称为特征或自变量),该方法可以帮助确定对目标变量有最强预测能力的协变量。

Lasso方法是一种特征选择和正则化技术,它可以通过对模型中的系数进行惩罚,将某些系数推向零,从而实现变量选择的效果。这意味着,在仅包含由成组Lasso选出的协变量的Logistic模型中,只有少数对预测目标有重要影响的协变量被保留下来,而其他对预测目标没有重要影响的协变量则被排除。

Logistic模型是一种广泛应用于分类问题的模型。它使用逻辑函数(也称为sigmoid函数)来将输入特征映射到0和1之间的概率值,该概率值表示样本属于某个类别的可能性。在仅包含由成组Lasso选出的协变量的Logistic模型中,利用这些协变量的值来预测样本的分类标签。

这种模型在实际应用中具有一定的优势,因为它可以减少模型的复杂性和计算成本,同时提供准确的预测能力。然而,需要注意的是,选择哪些协变量是一个重要的决策,并且应该考虑相关领域的专业知识和实际需求。

reg(X, y ,colnames(data)[-14], penalty

image.png

select(fit, "AIC")

image.png

相关文章
|
3月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
2月前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
55 3
|
3月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
7月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
7月前
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
R语言在数据科学中的应用实例:探索与预测分析
【8月更文挑战第31天】通过上述实例,我们展示了R语言在数据科学中的强大应用。从数据准备、探索、预处理到建模与预测,R语言提供了完整的解决方案和丰富的工具集。当然,数据科学远不止于此,随着技术的不断发展和业务需求的不断变化,我们需要不断学习和探索新的方法和工具,以更好地应对挑战,挖掘数据的潜在价值。 未来,随着大数据和人工智能技术的普及,R语言在数据科学领域的应用将更加广泛和深入。我们期待看到更多创新的应用实例,为各行各业的发展注入新的动力。
|
4月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
4月前
|
资源调度 数据挖掘
R语言回归分析:线性回归模型的构建与评估
【8月更文挑战第31天】线性回归模型是统计分析中一种重要且实用的工具,能够帮助我们理解和预测自变量与因变量之间的线性关系。在R语言中,我们可以轻松地构建和评估线性回归模型,从而对数据背后的关系进行深入的探索和分析。
|
4月前
|
机器学习/深度学习 数据采集
R语言逻辑回归、GAM、LDA、KNN、PCA主成分分类分析预测房价及交叉验证
上述介绍仅为简要概述,每个模型在实施时都需要仔细调整与优化。为了实现高度精确的预测,模型选择与调参是至关重要的步骤,并且交叉验证是提升模型稳健性的有效途径。在真实世界的房价预测问题中,可能还需要结合地域经济、市场趋势等宏观因素进行综合分析。
89 3
|
7月前
|
数据采集 数据可视化
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
下一篇
DataWorks