局部多项式回归拟合是对两维散点图进行平滑的常用方法,它结合了传统线性回归的简洁性和非线性回归的灵活性。当要估计某个响应变量值时,先从其预测变量附近取一个数据子集,然后对该子集进行线性回归或二次回归,回归时采用加权最小二乘法,即越靠近估计点的值其权重越大,最后利用得到的局部回归模型来估计响应变量的值。用这种方法进行逐点运算得到整条拟合曲线。

在R语言中进行局部多项式回归拟合是利用loess函数,我们以cars数据集做为例子来看下使用方法。该数据中speed表示行驶速度,dist表示刹车距离。用loess来建立模型时重要的两个参数是span和degree,span表示数据子集的获取范围,取值越大则数据子集越多,曲线越为平滑。degree表示局部回归中的阶数,1表示线性回归,2表示二次回归,也可以取0,此时曲线退化为简单移动平均线。这里我们设span取0.4和0.8,从下图可见取值0.8的蓝色线条较为平滑。

------------------------
plot(cars,pch=19)
model1=loess(dist~speed,data=cars,span=0.4)
lines(cars$speed,model1$fit,col='red',lty=2,lwd=2)
model2=loess(dist~speed,data=cars,span=0.8)
lines(cars$speed,model2$fit,col='blue',lty=2,lwd=2)
------------------------

当模型建立后,也可以类似线性回归那样进行预测和残差分析

------------------------
x=5:25
predict(model2,data.frame(speed=x))
plot(model2$resid~model2$fit)
------------------------

R语言中另一个类似的函数是lowess,它在绘图上比较方便,但在功能上不如loess强大和灵活。

------------------------ 
plot(cars,pch=19) 
lines(lowess(cars),lty=2,lwd=2) 
------------------------

LOESS的优势是并不需要确定具体的函数形式,而是让数据自己来说话,其缺点在于需要大量的数据和运算能力。LOESS作为一种平滑技术,其目的是为了探寻响应变量和预测变量之间的关系,所以LOESS更被看作一种数据探索方法,而不是作为最终的结论。

在R语言中进行局部多项式回归拟合(LOESS)相关推荐

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

    全文下载链接:http://tecdat.cn/?p=20531 当线性假设无法满足时,可以考虑使用其他方法(点击文末"阅读原文"获取完整代码数据). 相关视频 多项式回归 扩展可 ...

  2. 二次拟合r方_拟合R语言中的多项式回归

    原标题:拟合R语言中的多项式回归 让我们看一个经济学的例子:假设你想购买一定数量q的特定产品.如果单价是p,那么你会支付总金额y.这是一个线性关系的典型例子.总价格和数量成正比. 如下所示: 但购买和 ...

  3. R语言机器学习实战之多项式回归

    最近我们被客户要求撰写关于多项式回归的研究报告,包括一些图形和统计输出.  相关视频:非线性模型原理与R语言多项式回归.局部平滑样条. 广义相加模型GAM分析 非线性模型原理与R语言多项式回归.局部平 ...

  4. R语言中使用非凸惩罚函数回归(SCAD、MCP)分析前列腺数据

    原文链接:http://tecdat.cn/?p=20828 本文使用lasso或非凸惩罚拟合线性回归,GLM和Cox回归模型的正则化,特别是_最小_最_大凹_度_惩罚_函数_(MCP)_和光滑切片绝 ...

  5. r语言中正定矩阵由于误差不正定_R语言之数据处理(一)

    在上一篇小文中,提到了关于R语言导入数据的一些方法,之后的重点就转向了数据的处理上.数据处理其实在整个数据分析项目中所占用的时间是比较多的,所以根据处理的目的不同,也有不同的处理方法.在R语言中,我通 ...

  6. r语言中检测异常值_R中的异常值检测

    r语言中检测异常值 介绍 (Introduction) An outlier is a value or an observation that is distant from other obser ...

  7. 用r语言画出y = ax^2 + bx + c,R语言中如何使用最小二乘法

    这里只是介绍下R语言中如何使用最小二乘法解决一次函数的线性回归问题. 代码如下: > x > y > lsfit(x,y) 结果如下: $coefficients Intercept ...

  8. R语言中使用pkgbuild::find_rtools查看是否有Rtools、使用Sys.which函数查看make是否存在、如果没有则安装、使用writeLines函数绑定R和Rtools

    R语言中使用pkgbuild::find_rtools(debug = TRUE)查看是否有Rtools.使用Sys.which函数查看make是否存在.如果没有则安装Rtools.使用writeLi ...

  9. R语言中如何计算C-Statistics?几种计算方法详解

    R语言中如何计算C-Statistics?几种计算方法详解 目录 R语言中如何计算C-Statistics? #包导入 #数据加载编码

最新文章

  1. 什么是Hive?它有哪些特点和特性?
  2. opengl开启垂直同步_你的下一部鼠标,何必是鼠标?来试试肯辛通垂直无线轨迹球?...
  3. 分享Silverlight/WPF/Windows Phone一周学习导读(07月18日-07月24日)
  4. 【转】Virtualbox虚拟机配置安装CentOS 6.5图文教程
  5. 转 在b/s开发中经常用到的javaScript技术
  6. python调用系统命令_Python如何调用外部系统命令
  7. 科技爱好者周刊:第 91 期
  8. 数电——全减器分析(用74HC138设计提示)
  9. wiki搭建详细步骤
  10. 如何查看计算机关机事件,深度技术win7系统如何查看电脑的开关机时间【图文】...
  11. “UnsatisfiedDependencyException“的解决方案
  12. Android10 HAL模块的实现
  13. Excel中怎样固定单元格?
  14. python名人问题_Python 思考录 练习01
  15. 括号配对检测python123_《括》字意思读音、组词解释及笔画数 - 新华字典 - 911查询...
  16. Oracle数据库 —— DDL
  17. Thinkpad R400待机后自动唤醒的解决办法
  18. android 滑动导航栏颜色渐变,Android App页面滑动标题栏颜色渐变
  19. hss网元 java_在NB-IoT建构和流程中,作为网元实体的MME和HSS进行了哪些功能方面的升级?...
  20. dirname: missing operand 问题解决

热门文章

  1. 堪比巨著:饿了么交易系统5年演化血泪史
  2. Oracle05:什么是OCP认证
  3. 个人计算机架构和相关的设备组件
  4. 不顺本也正常,斗志不可磨灭
  5. 奥村マヨ - 見えない翼
  6. bugkuCTF之散乱的密文
  7. iOS 上架流程图文详解2022版 (上)
  8. LabVIEW开发FPGA参考框架
  9. 偏门赚钱日赚1000,这个创业项目我本来不想说的....
  10. Python可视化扩展库Matplotlib中使用参数cmap实现颜色映射