收藏 分销(赏)

Lasso回归模型的变量选择功能及其在糖尿病发展预测模型中的应用.docx

上传人:精*** 文档编号:3850514 上传时间:2024-07-22 格式:DOCX 页数:15 大小:37.45KB
下载 相关 举报
Lasso回归模型的变量选择功能及其在糖尿病发展预测模型中的应用.docx_第1页
第1页 / 共15页
Lasso回归模型的变量选择功能及其在糖尿病发展预测模型中的应用.docx_第2页
第2页 / 共15页
Lasso回归模型的变量选择功能及其在糖尿病发展预测模型中的应用.docx_第3页
第3页 / 共15页
Lasso回归模型的变量选择功能及其在糖尿病发展预测模型中的应用.docx_第4页
第4页 / 共15页
Lasso回归模型的变量选择功能及其在糖尿病发展预测模型中的应用.docx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、 Lasso回归模型的变量选择功能及其在糖尿病发展预测模型中的应用 荣小辉摘 要:当前机器学习应用渐趋成熟,如何结合算法优势与医学研究特点是有效应用的关键。统计方法一直在预测精度与可解释性上做平衡,而医学问题多数情况下对可解释性具有较高的要求。Lasso回归模型通过将某些不相关变量的回归系数压缩到零的方法,可以有效的筛选出与研究结果相关的变量。通过缩小变量范围,增加模型的可解释性,尤其有利于医学问题的简化和医疗工作者的人工应用。本文将简要介绍Lasso回归模型的原理,并应用于糖尿病进展的多元变量筛选。在取得相近预测精度的前提下,将自变量由10个简化到4个,极大的提高了模型的简洁性与实用度。关键

2、词:Lasso回归;变量选择;数据挖掘;糖尿病:O212.1 :A :1671-2064(2017)24-0026-041 背景作为多变量回归问题的经典方法,最小二乘法一直得到广泛的应用。醫学问题往往都是涉及很多变量的复杂问题。哪个变量与研究结果紧密相关,哪个变量对研究结果其实毫无影响,了解其中含义在研究中具有关键的指引作用。最小二乘法可以得到哪些变量具有显著性的数据,但对那些不具有显著性的变量,无法判断是否应该从模型中删除哪个变量。由于有变量的共线性等问题,直接删除某些不显著变量,再建立最小二乘法多元回归模型会有很大的风险丢失重要变量,而且预测的精度也无法得到保证。Lasso回归模型通过将回

3、归系数压缩到零,实现了变量的有效选择1。最小二乘法采用最小化RSS的方法,来求得变量回归系数。而Lasso回归在最小二乘法RSS的基础上增加了一个惩罚项,是各回归系数的绝对值之和乘以参数lambda。通过最小化RSS与惩罚项的和来求得变量回归系数。当参数lambda为0时,Lasso回归与最小二乘法没有区别。当参数lambda逐渐增加,模型开始将回归系数向0压缩,当参数lambda足够大时,所有变量的系数将都被压缩到0。随着参数lambda的变化,各变量的回归系数也会跟着改变。所以选择一个合适的参数lambda对Lasso回归模型至关重要,如何选择参数lambda又要在预测精度与可解释性上做平

4、衡2。在预测精度可接受的范围内,选择一个比较大的参数lambda,将会得到一个尽可能精简的变量与模型。医学问题经常是复杂的多变量问题,在某些问题中往往有非常多的变量,这些变量之间的关系多样,有很大可能存在共线性或其他相互影响关系。在医学实践中取得大量样本数的机会通常会比较少,如果样本量不能远远大于变量数,而且多数变量与结果没有什么关系的情况下,最小二乘法多元回归将不能得到较好的预测结果。当样本量小于变量数时,甚至无法使用最小二乘法建立模型。在大数据时代,医学问题的变量数急剧增加。例如,新的全基因组扫描等方法可以轻松产生上万个变量,而医学研究的样本很难有快速的增长,这将导致样本量小于变量数的情况

5、。在这些情况下,Lasso回归模型可能既提高预测的精度,又通过变量筛选来简化模型。糖尿病的进展,可能会带来很多的并发症,这些并发症对患者的健康有重大影响。如果准确的预测出患者病情进展,提前采取多种措施,从诊断开始就对患者诊疗进行干预,可以取得很好的效果。2 资料与方法本文采用www4.stat.ncsu.edu下载的糖尿病数据集,有442个样本,11个变量,其中10个自变量,(AGE年龄BMI 身体质量指数BP收缩压与舒张压的均值SEX,1为女,2为男,LTG、TC、LDL、HDL、TCH、GLU是六个血生化指标)一个因变量Y。10个自变量是糖尿病确诊时的数据,因变量Y是一年后医生对患者糖尿病

6、严重程度的评分,分数越高病情越严重。通过对该数据集建立模型,可以根据糖尿病确诊时的数据,预测一年后患者的病情严重程度。本文使用R语言既相关的分析包glmnet,在最小二乘法回归模型十折交叉验证中使用了分析包dplyr3。数据集变量情况描述表1所示。2.1 Lasso回归(1)参数lambda取最佳预测准确时的值,Lasso模型和预测精度。使用glmnet()函数建立lasso模型,必须用一个x矩阵和一个y向量。Diabetes是该糖尿病数据集在R中的数据框名称。如图1所示,各个变量系数随参数lambda增大逐渐被压缩到0(L1 Norm随参数lambda减小而增大),意味着该变量被模型排除。x

7、 - model.matrix(Y.,diabetes),-1y - diabetes$Ylibrary(glmnet)grid - 10seq(10,-2,length=100)set.seed(1)train - sample(1:nrow(x), nrow(x)*9/10)test - (-train)y.test - ytestlasso.mod -glmnet(xtrain,ytrain,alpha=1, lambda=grid)plot(lasso.mod)set.seed(123)cv.out - cv.glmnet(xtrain,ytrain,alpha=1)plot(cv.o

8、ut)bestlam - cv.out$lambda.minlasso.pred - predict(lasso.mod, s=bestlam, newx=xtest,)a- lasso.predb- as.vector(a)mean(b-y.test)2)endprint1 2311.945out - glmnet(x,y,alpha=1,lambda=grid)lasso.coef lasso.coef(Intercept) AGE SEX2 BMI BP-270.9677843 0.0000000 -21.0338187 5.6668803 1.0703732TC LDL HDL TCH

9、 LTG-0.2402796 0.0000000 -0.6251458 3.0270844 47.9925758GLU0.2594034 result_10bestL mean(result_10bestL)1 2995.348 bestlam1 0.3956936首先根据10折交叉验证的方法,选出当交叉验证的均方误差最小时,参数lambda的取值为0.3956936,并用该参数建立lasso模型如上,AGE和LDL的系数被压缩到了0。取9成数据训练,1成数据测试,10次随机测试的均方误差的均值是2995.348。如图2所示,均方误差随lambda增大而增大,会有一个lambda最佳取值使得均

10、方误差最小。(2)参数lambda取10时的Lasso模型和预测精度。set.seed(1)train - sample(1:nrow(x), nrow(x)*9/10)test - (-train)y.test - ytestlasso.mod -glmnet(xtrain,ytrain,alpha=1, lambda=grid)plot(lasso.mod)bestlam - 10lasso.pred - predict(lasso.mod, s=bestlam, newx=xtest,)a- lasso.predb- as.vector(a)mean(b-y.test)2)out - g

11、lmnet(x,y,alpha=1,lambda=grid)lasso.coef mean(b-y.test)2)1 2629.674 lasso.coef(Intercept) AGE SEX2 BMI BP-191.8334615 0.0000000 0.0000000 5.1204788 0.4923885TC LDL HDL TCH LTG0.0000000 0.0000000 -0.2391955 0.0000000 37.5352114GLU0.0000000result_10 mean(result_10)1 3117.94取参数lambda的值为10,并用该参数建立lasso模

12、型如上,只有4個变量的系数没有被压缩到0。取9成数据训练,1成数据测试,10次随机测试的均方误差的均值是3117.94。所得的回归模型是:Y=-191+5.12BMI+0.49BP-0.24HDL+37.54LTG该模型比最佳的参数lambda取值时的模型简单的多了,而且预测的结果也相差不多,在可接受范围内。(3)参数lambda取100时的Lasso模型和预测精度。set.seed(1)train - sample(1:nrow(x), nrow(x)*9/10)test - (-train)y.test - ytestlasso.mod -glmnet(xtrain,ytrain,alph

13、a=1, lambda=grid)plot(lasso.mod)bestlam - 100lasso.pred - predict(lasso.mod, s=bestlam, newx=xtest,)a- lasso.predb- as.vector(a)mean(b-y.test)2)out - glmnet(x,y,alpha=1,lambda=grid)lasso.coef mean(b-y.test)2)1 4915.202 lasso.coef(Intercept) AGE SEX2 BMI BP152.1335 0.0000 0.0000 0.0000 0.0000TC LDL H

14、DL TCH LTG0.0000 0.0000 0.0000 0.0000 0.0000GLU0.0000参数lambda的取值为100时,所有系数都被压缩到0,这个不是好选择。2.2 最小二乘法回归模型 diabetes_lm summary(diabetes_lm)Call:lm(formula = Y ., data = diabetes)Residuals:Min 1Q Median 3Q Max-155.827 -38.536 -0.228 37.806 151.353Coefficients:Estimate Std. Error t value Pr(|t|)(Intercept

15、) -357.42679 67.05807 -5.330 1.59e-07 *AGE -0.03636 0.21704 -0.168 0.867031SEX2 -22.85965 5.83582 -3.917 0.000104*BMI 5.60296 0.71711 7.813 4.30e-14*BP 1.11681 0.22524 4.958 1.02e-06 *TC -1.09000 0.57333 -1.901 0.057948 .LDL 0.74645 0.53083 1.406 0.160390HDL 0.37200 0.78246 0.475 0.634723TCH 6.53383

16、 5.95864 1.097 0.273459LTG 68.48312 15.66972 4.370 1.56e-05*GLU 0.28012 0.27331 1.025 0.305990-Signif. codes: 0 * 0.001 * 0.01 * 0.05 . 0.1 1Residual standard error: 54.15 on 431 degrees of freedomMultiple R-squared: 0.5177,Adjusted R-squared: 0.5066F-statistic: 46.27 on 10 and 431 DF, p-value: 2.2e

17、-16最小二乘法回归模型十折交叉驗证:library(dplyr)data- diabetesk=10set.seed(123)data$id- sample(1:k, nrow(data), replace=TRUE)list- 1:kprediction- data.frame()testsetCopy- data.frame()progress.bar- create_progress_bar(text)progress.bar$init(k)for (i in 1:k) trainingset- subset(data, id %in% list-i)testset- subset(d

18、ata, id %in% c(i)trainingset - trainingsetc(-12) # delete idtestset - testsetc(-12) # delete idmymodel- lm(Y.,data= trainingset)temp1 - predict(mymodel, newdata = testset)prediction- rbind(prediction, as.data.frame (temp1)testsetCopy- rbind(testsetCopy, as.data.frame(testset,11)progress.bar$step()Re

19、sult_lm- mean(testsetCopy-prediction)2)data Result_lm1 2979.1493 结果3.1 Lasso回归模型(1)首先根据10折交叉验证的方法,选出当交叉验证的均方误差最小时,参数lambda的取值为0.3956936,并用该参数建立lasso模型如上,AGE和LDL的系数被压缩到了0。取9成数据训练,1成数据测试,10次随机测试的均方误差的均值是2995.348。endprint(2)取參数lambda的值为10,并用该参数建立lasso模型如上,只有4个变量的系数没有被压缩到0。取9成数据训练,1成数据测试,10次随机测试的均方误差的均值

20、是3117.94。所得的回归模型是:Y=-191+5.12BMI+0.49BP-0.24HDL+37.54LTG该模型比最佳的参数lambda取值时的模型简单的多了,而且预测的结果也相差不多,在可接受范围内。(3)参数lambda的取值为100时,所有系数都被压缩到0,这个不是好选择。3.2 最小二乘法回归模型(1)10折交叉验证预测的均方误差是2979.149;(2)有4个变量有显著性,BMI、BP、LTG、SEX2,整个模型也有显著性。4 讨论(1)取参数lambda值为10的lasso模型,具有较好的预测结果,同时10个变量简化到了4个变量,这对医疗工作者有很大的意义。因为在医疗过程中,

21、很多变量不容易能都收集到,而且变量多的时候,人脑很难记住这些关系并实际应用。这种方法对模型中有更多变量的情况,作用更大。Y=-191+5.12BMI+0.49BP-0.24HDL+37.54LTG。(2)lambda值从最佳的0.3956936,10,100的过程中,预测误差越来越大,回归系数压缩成0的变量也越来越多。在lasso模型的应用中,lambda值的选择是至关重要的。通常可以从交叉验证的均方误差最小的lambda值开始,逐渐取较大的lambda值,直到预测误差不能接受或变量已经筛选到满意的程度。(3)最佳lambda值的lasso模型,与最小二乘法回归模型预测误差几乎相同。但lass

22、o模型的优势在于有两个变量的系数压缩到0,模型更简单。在本文中的数据集预测中,lasso模型没有显著的提高预测误差。但在具有某些特征的数据集中,比如样本数不是远远大于变量数等情况下,lasso模型会有更好的预测表现。(4)取参数lambda值为10的lasso模型,所得的方程中4个变量中有3个在最小二乘法回归模型具有显著性,可见这两种方法得到的结果有较强的相互支持关系。(5)变量SEX在最小二乘法回归模型中具有显著性,但没有出现在取参数lambda值为10的lasso模型中。原因可能是变量SEX为类别变量,显著性的含义只是在这个类别中自己比较时才有,即其他条件相同时,不同变量SEX之间有显著区

23、别。最小二乘法回归模型无法把类别变量与其他变量直接比较,lasso模型剔除了变量SEX,表明变量SEX并没有显示出比其他变量更大的作用。实际上在另一种机器学习方法随机森林模型中,变量SEX在提高数据分类的纯洁度上重要性排在最后,没有重要意义。参考文献1詹姆斯(James,G.)等,著.王星等,译.统计学习导论-基于R应用M.北京:机械工业出版社,2015.2周志华,著.机器学习M.北京:清华大学出版社,2016.3麦特洛夫(Matloff,N.)等著.陈堰平,等译.R语言编程艺术M.北京:机械工业出版社,2013.Variable Selection Function of Lasso Reg

24、ression Model and its Application in Prediction Model of Diabetes DevelopmentAbstract:As machine learning is becoming more and more popular, it is very important to combine the advantage of algorithms and the specificity of medical questions. While statistic is always balance between prediction accu

25、racy and interpretability, medical questions have higher requirement on interpretability in many cases. The Lasso regression model can effectively screen variables related to the results by compressing the regression coefficients of these unrelated variables into zero. By reducing the number of vari

26、ables and increasing the interpretability, the Lasso regression model is especially helpful for the simplification of medical problems and the artificial application of medical experts. This article briefly introduces the principles of Lasso regression model and applies it to multivariate screening of diabetes progression. Under obtaining the near prediction accuracy conditions, the independent variables are reduced from 10 to 4, which greatly improves the simplicity and practicability of the model.Key words:Lasso regression;Variable selection;Data mining;Diabetesendprint -全文完-

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服