Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >什么时候选择nls()而不是loess()?

什么时候选择nls()而不是loess()?
EN

Stack Overflow用户
提问于 2011-09-26 04:14:27
回答 2查看 6.4K关注 0票数 11

如果我有一些(x,y)数据,我可以很容易地画直线通过它,例如

代码语言:javascript
运行
AI代码解释
复制
f=glm(y~x)
plot(x,y)
lines(x,f$fitted.values)

但是对于曲线型数据,我想要一条曲线型。看起来loess()可以使用:

代码语言:javascript
运行
AI代码解释
复制
f=loess(y~x)
plot(x,y)
lines(x,f$fitted)

这个问题在我打字和研究的过程中不断演变。一开始,我想要一个简单的函数来拟合曲线数据(我对数据一无所知),并希望了解如何使用nls()optim()来实现这一点。在我发现的类似问题中,似乎每个人都在暗示这一点。但现在我偶然发现了loess()我很高兴。所以,现在我的问题是,为什么有人会选择使用nlsoptim而不是loess (或smooth.spline)?使用工具箱类比,nls是螺丝刀而loess是电动螺丝刀(这意味着我几乎总是选择后者,因为它做同样的事情,但我的努力更少)?或者nls是平头螺丝刀,loess是十字头螺丝刀(这意味着loess更适合解决某些问题,但对于其他问题,它根本不能完成工作)?

作为参考,以下是我使用的播放数据,loess对这些数据提供了令人满意的结果:

代码语言:javascript
运行
AI代码解释
复制
x=1:40
y=(sin(x/5)*3)+runif(x)

和:

代码语言:javascript
运行
AI代码解释
复制
x=1:40
y=exp(jitter(x,factor=30)^0.5)

遗憾的是,它在这一点上做得不太好:

代码语言:javascript
运行
AI代码解释
复制
x=1:400
y=(sin(x/20)*3)+runif(x)

nls()或任何其他函数或库是否可以在不给出提示(即不被告知是正弦波)的情况下同时处理此示例和前面的exp示例?

更新:stackoverflow上关于同一主题的一些有用的页面:

Goodness of fit functions in R

How to fit a smooth curve to my data in R?

smooth.spline“开箱即用”在我的第一个和第三个例子中给出了很好的结果,但在第二个例子中很糟糕(它只是连接了几个点)。然而,f=smooth.spline(x,y,spar=0.5)在这三个方面都很好。

更新#2: gam() (来自mgcv包)到目前为止很棒:它给出了与loess()相似的结果,当它更好的时候,它给出了类似的结果,当它更好的时候,它给出了与smooth.spline()相似的结果。并且全部不需要提示或额外的参数。这些文档对我来说太难了,我感觉自己就像是在盯着一架从头顶飞过的飞机;但我发现了一些试验和错误:

代码语言:javascript
运行
AI代码解释
复制
#f=gam(y~x)    #Works just like glm(). I.e. pointless
f=gam(y~s(x)) #This is what you want
plot(x,y)
lines(x,f$fitted)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-26 09:09:00

非线性-最小二乘法是一种拟合参数非线性的模型的方法。通过拟合模型,我的意思是,对于响应和协变量之间的关系,存在某种先验指定的形式,以及一些待估计的未知参数。由于模型在这些参数中是非线性的,NLS是一种通过以迭代方式最小化最小二乘准则来估计这些系数的值的方法。

黄土是作为平滑散点图的一种手段而开发的。它有一个定义不太明确的“模型”概念(IIRC没有“模型”)。LOESS通过尝试识别响应和协变量之间的关系模式来工作,而用户不必指定该关系是什么形式。LOESS从数据本身找出了关系。

这是两个根本不同的想法。如果您知道数据应该遵循特定的模型,那么您应该使用NLS来拟合该模型。你总是可以比较两个拟合(NLS和LOESS),看看是否存在与假设模型等的系统差异-但这将在NLS残差中显示出来。

而不是LOESS,您可以考虑通过推荐的软件包mgcv中的gam()安装的通用加性模型(GAMs)。这些模型可以看作是一个惩罚回归问题,但允许从数据中估计拟合的平滑函数,就像它们在黄土中一样。GAM扩展了GLM,允许协变量的平滑、任意函数。

票数 25
EN

Stack Overflow用户

发布于 2013-03-12 19:24:38

loess()是非参数的,这意味着您不会得到一组以后可以使用的系数-它不是一个模型,而是一条拟合线。nls()将为您提供系数,您可以使用这些系数来构建方程,并使用不同但相似的数据集预测数值-您可以使用nls()创建一个模型。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7550582

复制
相关文章
Tcp连接建立与连接释放
1)客户端给服务器发送了一条将其SYN标志位置1的请求连接建立报文,然后其状态由closed转变为SYN-SENT(同步已发送)。
你的益达
2020/08/25
3.8K0
Tcp连接建立与连接释放
建立JDBC数据库连接实例解析
  连接(Connection)是一个代表与数据库进行的程序连接的对象。通过连接,可以执行SQL语句、返回数据库操作结果等。 创建指定数据库的URL     要建立与数据库的连接,首先要创建指定数据库的URL。连接通常是通过数据库的URL对象,利用DriverManager的getConnection方法建立的。数据库URL对象与网络资源的统一资源定位类似,其构成格式如下:    jdbc:subProtocol:subName://hostname:port; DatabaseName=XXX  
阿新
2018/04/11
2.2K0
如何与 Zappos 建立 EDI 连接?
Zappos 是一家享誉全球的知名在线鞋类和服饰零售商,经营范围涵盖各类时尚品牌的鞋类、服饰及配饰等,使命是为广大消费者提供方便、愉悦、优质的购物体验,让每一位顾客都能找到心仪的产品。多年来,Zappos 卖场凭借卓越的服务与产品质量,积累了众多荣誉和成就。
知行软件EDI
2023/07/28
2520
如何与 Zappos 建立 EDI 连接?
如何与 MACOM 建立 EDI 连接?
MACOM提供高性能射频,微波和毫米波器件,其产品广泛应用于通信,航空航天,国防和工业市场。近年来MACOM在中国地区的业务一直高速增长。
知行软件EDI
2023/04/17
1.3K0
如何与 MACOM 建立 EDI 连接?
如何与GHSP 建立 EDI 连接?
GHSP是全球领先的汽车、运输和电器行业机械和机电系统供应商。最初成立于1924年,此后已扩展到世界各地。如果GHSP向我们发来EDI连接邀请,我们应该如何应对呢?
知行软件EDI
2022/10/31
1.3K0
如何与GHSP 建立 EDI 连接?
如何与Kostal 建立EDI连接?
Kostal是一家德国公司,主要从事汽车电子和工业电子产品的研发、生产和销售,是全球领先的电子元器件和系统供应商之一。其产品包括电气系统、传感器、电动驱动系统、电池管理系统等方面,被广泛应用于汽车、工业、家用电器等领域。
知行软件EDI
2023/05/09
6220
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
星哥玩云
2022/08/16
5.7K0
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误
速读原著-TCP/IP(连接的建立与终止)
T C P是一个面向连接的协议。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。本章将详细讨论一个 T C P连接是如何建立的以及通信结束后是如何终止的。这种两端间连接的建立与无连接协议如 U D P不同。我们在第 11章看到一端使用 U D P向另一端发送数据报时,无需任何预先的握手。
cwl_java
2020/03/11
5480
如何与宜家IKEA建立EDI连接?
宜家IKEA是来自瑞典的全球知名家具和家居零售商,在全球拥有223个商场,其中有36家商场位于中国大陆。如今宜家在全球53个国家有大约1300个供应商,在16个国家的28个分销中心负责为宜家商场供货。如此庞大的供应链体系和业务数据量使得宜家的业务数据处理流程面临巨大挑战。究竟如何处理大批量的业务数据呢?答案是:使用EDI(电子数据交换)技术。EDI专攻于大批量的业务数据处理,助力宜家提升其自动化水平。
知行软件EDI
2021/05/24
9630
如何与宜家IKEA建立EDI连接?
Linux下与github建立ssh连接
3.当你看到 “Enter a file in which to save the key,” 的提示后,按Enter键.意思就是使用默认路径.
LogicPanda
2018/08/30
6.8K0
Linux下与github建立ssh连接
Linux下与github建立ssh连接
前期准备 设置用户: git config --global user.name "your name" git config --globa user.email "your email.com" 全局使用该用户名及用户邮箱 创建目录: mkdir new_folder_name 创建一个用于跟踪的新文件夹或者使用系统自带的文件管理系统创建一个新的文件夹 可以参看 git常用命令及含义[http://blog.csdn.net/autuan_liu/article/details/5
zenRRan
2018/04/10
6.5K0
Linux下与github建立ssh连接
浅谈TCP协议(建立与断开连接)
TCP是面向连接的,可靠的进程到进程通信的协议。 TCP提供全双工服务,即数据可在同一时间双向传输,每一个TCP都有发送缓存,用来临时存储数据。 TCP将若干个字节构成一个分组,成为报文段(segment) TCP报文段封装在IP数据报中:
小手冰凉
2019/09/10
2.7K0
浅谈TCP协议(建立与断开连接)
如何与 Boot Barn 建立 EDI 连接?
Boot Barn 大力鼓励其供应商使用 EDI,计划与其供应商一起使用 EDI 技术,从而转换采购订单、发票和提前发货通知 (ASN) 的人工处理方式。
知行软件EDI
2023/08/04
2550
如何与 Boot Barn 建立 EDI 连接?
MariaDB 建立连接
上面给出的代码连接到MariaDB并提供一个命令提示符来执行SQL命令。 输入代码后,将显示一条欢迎消息,指示连接成功,并显示版本号。
用户9042463
2021/09/29
1.7K0
建立技术连接的思维
从工作计划的角度来说,我们是罗列出一些工作的清单,标明任务权重,当然从我们的角度来说,我们更多会从系统,技术的角度来进行描述和权衡。
jeanron100
2019/05/13
7650
Mysql连接建立与thread cache唤醒原理
Thread 1 监听socket,协议栈的连接上来后,使用现有的或新建线程处理连接。
mingjie
2022/05/12
1.1K0
一、Django连接与建立数据库
如果没有修改django默认数据库连接,那么会自动生产一个sqlite3的数据库。
Dreamy.TZK
2020/04/09
2.8K0
如何与劳氏 Lowe's 建立EDI连接?
劳氏Lowe's(以下简称:Lowe's)是专门从事家庭装修的美国零售公司,而 EDI 则是电子数据交换的缩写,是指通过计算机网络进行企业间电子数据交换的一种标准化方式。
知行软件EDI
2023/05/10
3690
如何与劳氏 Lowe's 建立EDI连接?
【说站】python中socket建立客户连接
以上就是python中socket建立客户连接的方法,希望对大家有所帮助。更多Python学习指路:python基础教程
很酷的站长
2022/11/23
5380
【说站】python中socket建立客户连接
如何与安森美Onsemi建立EDI连接?
安森美半导体(ON Semiconductor)是应用于高能效电子产品的首要高性能硅方案供应商。其产品包括电源和信号管理、逻辑、分立及定制器件,帮助客户解决他们在汽车、通信、计算机、消费电子等领域的独特设计挑战。近期我们帮助客户成功与安森美Onsemi建立EDI连接,实现自动化地业务数据传输。
知行软件EDI
2022/10/25
5050
如何与安森美Onsemi建立EDI连接?

相似问题

当大小文件较大时,$_FILE为空,代码点火器

12

当字段为空时,验证无效

10

当字段为空时删除行

15

当字段为空时获取"null“

15

当字段为空时触发变更

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档