版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简单线性回归01102多元线性回归01自变量有定性变量的回归0104逐步回归03多重共线性分析0106线性回归正则化05逻辑回归0107PAGE2理解线性回归回归是一种有监督学习,常用于建模分析一个因变量(响应变量、目标变量)和一个或多个自变量(预测变量)之间的关联。对于线性回归,自变量与因变量都是连续变量。我们可以借助回归来建立一个预测模型,基于训练集中给定的数据计算最小误差平方和来找到最优匹配的模型,并进一步地将该模型应用到新数据集上,对因变量进行预测。2PAGE3简单线性回归基本原理3PAGE4自定义函数实现4>#自定义函数,计算线性回归系数估计值>estmate<-function(x,y){+mean.x<-mean(x,na.rm=T)+mean.y<-mean(y,na.rm=T)+sxx<-sum((x-mean.x)^2)+syy<-sum((y-mean.y)^2)+sxy<-sum((y-mean.y)*(x-mean.x))+#计算回归系数+alpha1<-sxy/sxx+alpha0<-mean.y-alpha1*mean.x+#返回参数估计值+return(data.frame('Intercept'=round(alpha0,2),+'X_Coefficients'=round(alpha1,2)))+}>#生成100个样本点>set.seed(1234)>X<-2*runif(100)>y<-4+3*X+rnorm(100)>#估计回归系数值>fit<-estmate(X,y)>fitInterceptX_Coefficients14.12.98>y_predict<-fit$Intercept+fit$X_Coefficients*X>plot(X,y,col='blue',pch=16,main="增加回归直线的散点图")>lines(X,y_predict,col='red',lwd=2)>text(2,8,labels=paste("y=",fit$Intercept,"+",fit$X_Coefficients,"*X",sep=""),+pos=2)>for(iin1:length(X)){+segments(X,y,X,y_predict,lty=2,col="seagreen")+}PAGE5简单线性回归R语言实现5在R语言中,lm()函数可以实现运行最小二乘线性回归,且返回结果包括参数估计值、n个残差值、n个拟合值以及其他许多输出,完全用不着套用以上公式来计算。lm()函数的基本表达形式为:
lm(formula,data)其中,formula指要拟合的模型表达表形式,data是一个数据框,包含用于拟合模型的数据。表达式(formula)形式如:Y~X_1+X_2+⋯+X_n,波浪号(~)左边为因变量,右边为自变量,自变量之间用+符号分隔。当回归模型只包含一个因变量和一个自变量时,我们称之为简单线性回归。当只有一个自变量,当同时包含自变量的幂(比如,X,X^2,X^23)时,我们称之为多项式回归。当不止有布置一个自变量时(X_1,X_2,…,X_n)时,我们称之为多元线性回归。PAGE6简单线性回归R语言示例6>lm.fit<-lm(y~X)>names(lm.fit)[1]"coefficients""residuals""effects""rank""fitted.values"[6]"assign""qr""df.residual""xlevels""call"[11]"terms""model">lm.fit$coefficients(Intercept)X4.0991882.977789>#查看更详细的信息>summary(lm.fit)Call:lm(formula=y~X)Residuals:Min1QMedian3QMax-2.03362-0.66078-0.086020.579262.47401Coefficients:EstimateStd.ErrortvaluePr(>|t|)(Intercept)4.09920.178422.97<2e-16***X2.97780.172217.29<2e-16***Signif.codes:0‘***’0.001‘**’0.01‘*’0.05‘.’0.1‘’1Residualstandarderror:0.9553on98degreesoffreedMultipleR-squared:0.7531, AdjustedR-squared:0.7505F-statistic:298.9on1and98DF,p-value:<2.2e-16PAGE7模型诊断及预测7>#生成模型诊断图>par(mfrow=c(2,2))>plot(lm.fit)>par(mfrow=c(1,1))>#对新数据进行预测>set.seed(1234)>(X_new<-data.frame(X=2*runif(3)))X10.227406821.244598831.2185495>(y_predct<-predict(lm.fit,X_new))1234.7763587.8053417.727772PAGE8指数变换8当因变量和自变量的散点不是呈现明显的“直线”分布时,我们往往考虑对因变量做指数变换或对数变换,其统一形式为Box-Cox变换。Box-Cox变换是统计建模中常用的一种数据变换,用于连续的因变量不满足正态分布的情况。比如在使用线性回归的时候,由于残差ϵ不符合正态分布而不满足建模的条件,这时要对因变量y进行变换,把数据变成正态的。Box-Cox变换之后,可以一定程度上减少残差和自变量的相关性。利用MASS扩展包的boxcox()函数可以找到回归中的Box-Cox变换的最优参数λ,其采取的方法是最大似然估计。在关于λ的对数最大似然图像上找估计值的95%置信区间。对λ的搜索默认范围是[-2,2],步长是0.1。结果会输出一张表示似然结果的图,当然可以自定义搜索的范围或者步长。>set.seed(1234)>X<-2*runif(100)>y<-(4+3*X+rnorm(100))^2>if(!require(MASS))install.packages("MASS")>b<-boxcox(y~X)>lamdba<-b$x[b$y==max(b$y)]>lamdba[1]0.5050505PAGE9多项式回归9如果数据实际上比简单的直线更复杂呢?令人惊讶的是,依然可以使用线性模型来拟合非线性数据。我们可以利用n阶多项式来建模,这种方法称为多项式回归。>#生成非线性数据>set.seed(1)>m=100>X=6*runif(m)-3>y=0.5*X^2+X+rnorm(m)>#生成二阶多项式回归模型>lmfit<-lm(y~X+I(X^2))>lmfitCall:lm(formula=y~X+I(X^2))Coefficients:(Intercept)XI(X^2)-0.0092771.0524890.494568>X_new<-data.frame(X=seq(-3,3,length.out=100))>y_new<-predict(lmfit,X_new)>plot(X,y,col='blue',pch=16,main="添加拟合曲线的散点图")>lines(X_new$X,y_new,col='red',lwd=2)>abline(lm(y~X),col="slategrey",lty=2,lwd=2)PAGE10稳健线性回归10数据中的离群点会对直线的正确性带来一定影响,可以通过剔除离群点后再建立线性回归模型。除了去掉离群点,也可以利用稳健线性回归来处理包含离群点的数据集。可以借助MASS扩展包的rlm()函数对包含离群点的数据集进行稳健线性回归分析。我们先生成30个线性的样本数据,并增加一个离群点,然后直接利用rlm()函数生成稳健线性回归模型,并在散点图上增加稳健线性回归直线和简单线性回归直线,对比差异。>#稳健线性回归>#生成30个线性样本点>set.seed(1234)>X<-2*runif(30)>y<-4+3*X>#增加一个孤立点(离群点)>X_out<-c(X,2)>y_out<-c(y,5)>#生成稳健线性回归模型>library(MASS)>rlmfit<-rlm(y_out~X_out)>rlmfitCall:rlm(formula=y_out~X_out)Convergedin5iterations
Coefficients:(Intercept)X_out4.0000112.999982
Degreesoffreedom:31total;29residualScaleestimate:0.000111>#在散点图增加拟合直线>plot(X_out,y_out,pch=16,col="blue")>abline(rlmfit,col='red',lwd=2)>abline(lm(y_out~X_out),col="slategray",lty=2,lwd=2)PAGE11多元线性回归11对于一元线性回归模型来说,其反映的是单个自变量对因变量的影响,然而实际情况中,影响因变量的自变量往往不止一个,从而需要将一元线性回归模型扩展到多元线性回归模型。多元线性回归模型也可以利用lm()函数实现。我们对kaggle上的个人医疗费用数据集insurance(/mirichoi0218/insurance/)进行研究。>#导入数据集,查看数据结构>insurance<-read.csv("../data/insurance.csv")>#计算各参数值>X<-as.matrix(cbind(Intercept=1,insurance[,c("age","bmi","children")]))>y<-as.matrix(insurance[,"charges"])>theta_best<-solve(t(X)%*%X)%*%t(X)%*%y>theta_best[,1]Intercept-6916.2433age239.9945bmi332.0834children542.8647>#利用lm()函数>fit<-lm(charges~age+bmi+children,data=insurance)>summary(fit)Call:lm(formula=charges~age+bmi+children,data=insurance)Residuals:Min1QMedian3QMax-13884-6994-5092712548627Coefficients:EstimateStd.ErrortvaluePr(>|t|)(Intercept)-6916.241757.48-3.9358.74e-05***age239.9922.2910.767<2e-16***bmi332.0851.316.4721.35e-10***children542.86258.242.1020.0357*Signif.codes:0‘***’0.001‘**’0.01‘*’0.05‘.’0.1‘’1Residualstandarderror:11370on1334degreesoffreedomMultipleR-squared:0.1201, AdjustedR-squared:0.1181F-statistic:60.69on3and1334DF,p-value:<2.2e-16PAGE12自变量有定性变量的回归12线性回归模型要求自变量为连续变量,当自变量中有定性变量(也称分类变量、离散变量、属性变量等)时,需要将其进行哑变量虚拟化处理,再利用转换后的数据构建线性回归模型。在R语言中的lm()函数会自动把具有字符串水平的变量识别为定性变量,然后将其进行虚拟化处理。直接用lm()函数拟合线性回归,R语言默认把定性变量的第一个因子的参数定义为0。对于定性变量,参数估计值不是斜率,而是各种截距。PAGE13逐步回归13一般来讲,如果在一个回归方程中忽略了对y有显著影响的自变量,那么所建立的方程必与实际有较大的偏离,如前面数据集insurance数据集中忽略smoker对charges的影响,造成判定系数(R^2)偏低情况。但变量选的过多,可能因为误差平方和(SSE)的自由度减少而使σ^2的估计值增大,从而影响使用回归方程作预测的精度。因此,在众多变量中选择合适的自变量以建立一个“最优”的回归方程十分重要。这里讲的“最优”是指从可供选择的所有变量中选出对y有显著影响的变量建立方程,且在方程中不含对y无显著影响的变量。多元线性回归能否按照一些方法筛选变量,建立“最优”回归方程。常用的方法有“一切子集回归法”、“向前法”、“向后法”、“逐步法”。这几种方法进入或剔除变量的一个准则为AIC(AkaikeInformationCriterion,赤池信息量)准则,即最小信息准则,其计算公式如下:AIC=2k-2ln(L)其中,k是参数个数,L是似然函数,最小二乘法在正态假设下等价于选择参数使似然函数L最大(或-ln(L)最小)。一般来说,增加参数可使得AIC第二项减少,但会使惩罚项2k增加。显然,这是在模型简单性和模型拟合性上做平衡。R语言提供了较为方便的“逐步回归”计算函数step(),它是以AIC信息统计量为准则,通过选择最小的AIC信息统计量,来达到删除或增加变量的目的。其基本表达形式为:step(object,scope,scale=0,direction=c("both","backward","forward"),trace=1,keep=NULL,steps=1000,k=2,...)PAGE14多重共线性分析14PAGE15线性回归正则化15机器学习算法的核心任务是使得我们的算法能够在新的、未知的数据上表现良好,而不只是在训练集上表现良好。这种在新数据上表现能力被称为算法的泛化能力(generalization)。简单来说,如果一个模型在测试集(testset)与训练集(trainingset)上表现一样好,就说明这个模型的泛化能力很好;如果模型在训练集上表现良好,但在测试集上表现一般,就说明这个模型的泛化能力不好。从误差的角度来说,泛化能力差就是指的是测试误差(testerror)比训练误差(trainingset)要大的情况,所以我们常常采用训练误差、测试误差来判断模型的拟合能力,这也是测试误差也常常被称为泛化误差(generalizationerror)的原因。机器学习的目的就是去降低泛化误差。在训练模型时有两个目标:(1)降低训练误差,寻找针对训练集最佳的拟合曲线。(2)缩小训练误差和测试误差的差距,增强模型的泛化能力。这两大目标就对应机器学习中的两大问题:欠拟合(Underfitting)与过拟合(Overfitting)。两者的定义如下:(1)欠拟合是指模型在训练集与测试集上表现都不好的情况,此时,训练误差、测试误差都很大。欠拟合也被称为高偏差(Bais),也就是我们建立的模型拟合与预测效果较差。(2)过拟合是指模型在训练集上表现良好,但在测试集上表现不好的情况,此时,训练误差很小,测试误差很大,模型泛化能力不足。过拟合也被称为高方差(Variance)。PAGE16线性回归正则化16当我们使用数据训练模型时的时候,很重要的一点就是要在欠拟合和过拟合之间达成一个平衡。欠拟合问题可以不断尝试各种合适的算法,优化算法中的参数调整,以及通过数据预处理等特征工程找到模型拟合效果最优化的结果;而当模型过拟合的情况发生时,可以通过添加更多的数据、模型加入提前终止条件、通过控制解释变量等手段降低模型的拟合能力,提高模型的泛化能力。控制解释变量个数有很多方法,例如变量选择(featureselection)(featureselection),即用filter或wrapper方法提取解释变量的最佳子集。或是进行变量构造(featureconstruction)(featureconstruction),即将原始变量进行某种映射或转换,如主成分方法和因子分析。变量选择的方法是比较“硬”的方法,变量要么进入模型,要么不进入模型,只有0-1两种选择。但也有“软”的方法,也就是正则化,可以保留全部解释变量,且每一个解释变量或多或少都对模预测型预处有些许影响。例如岭回归(RidgeRegression)(RidgeRegression)和套索方法(LASSO:leastabsoluteshrinkageandselectionoperator)(LASSO:leastabsoluteshrinkageandselectionoperator)。 岭回归和Lasso回归都是线性回归算法正则化的两种常用方法。两者区别在于:引入正则化的形式不同。此外,岭回归和Lasso回
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47236-2026铸造机械低压铸造机及其他金属型铸造设备安全技术规范
- 2026中铁集装箱运输有限责任公司招聘普通高校毕业生40人笔试模拟试题及答案解析
- 2026河南金渠钼业有限公司市场化选聘贸易副总经理1人笔试备考试题及答案解析
- 犍为县2026年上半年公开考核招聘教育类事业单位工作人员(16人)笔试模拟试题及答案解析
- 2026江苏事业单位统考镇江市集中招聘138人笔试参考题库及答案解析
- 2026黑龙江大庆市肇源县医疗卫生专项人才引进22人笔试备考试题及答案解析
- 2026福建教师招聘统考三明市宁化县招聘7人笔试备考试题及答案解析
- 2026年新疆和田学院招聘事业编制工作人员(72人)考试备考题库及答案解析
- 2026年枣庄滕州市校园招聘教师 (山师站)考试备考题库及答案解析
- 2026浙江事业单位统考绍兴市新昌县招聘42人考试备考题库及答案解析
- 2026江苏苏州市昆山市自然资源和规划局招聘编外人员8人笔试参考题库及答案解析
- 2026年及未来5年市场数据中国演出行业市场发展数据监测及投资潜力预测报告
- (新教材)2026年部编人教版二年级下册语文 第7课 我不是最弱小的 课件
- 2026年学士学位英语测试题及答案
- 2026年甘肃平凉市华亭煤业集团有限责任公司招聘笔试参考题库附带答案详解
- (一模)2026年深圳市高三年级第一次调研考试政治试卷(含官方答案)
- 上海市普陀区学校(五四制)2025-2026学年六年级上学期期中语文试题(解析版)
- 2026广东清远市清城区医疗卫生共同体总医院招聘编外工作人员42人笔试参考题库及答案解析
- 园林绿化工国家职业技能标准
- 智联招聘考试题库及答案
- 2025上半年湖南能源集团招聘322人笔试历年常考点试题专练附带答案详解2套试卷
评论
0/150
提交评论