问题标签 [nls]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - R nls 以拟合自定义 gompertz 曲线
我正在尝试将我的数据拟合到用户定义的 Gompertz 方程。但是,我收到如下错误:
nls (Eq, data = GPdata, start = list(K = 1), algorithm = "default", : 奇异梯度中的错误
我知道这可能意味着我的起始值不足以收敛,但是除了猜测之外还有什么办法吗?我还尝试使用 nls2 函数(蛮力),扩展可能的 K 值的巨大向量以尝试但收到相同的错误。
这是我的代码,包括示例数据。
任何帮助或建议将不胜感激。
谢谢!
r - 在 R 中计算 nls() 的问题
我正在尝试用程序 R 中的多项式函数拟合点数据,并想看看哪个顺序最适合。我使用非线性回归模型nls(function, data, start)
,函数为y~a*(x+c)^b
.
我想做的是计算填谷矿床的横截面积。出于这个原因,我需要对底层山谷底部的样子进行建模。我已经有了线性场景,现在想尝试一些多项式场景。
我的数据集代表山谷剖面,看起来像这样(x_combsl 是距离,y_combsl 是高程):
当我尝试生成模型时,我收到以下错误消息:
任何想法可能导致问题?多项式的峰值很可能在 c=35 左右,因此起始参数似乎不会引起问题。可能是点的线性对齐吗?我尝试了更少的数据点 [24:31],但我收到了相同的错误消息。
我在使用 R 编程方面不是很有经验,所以具体的答案会很棒。
dojo - Dojo 1.9 在加载语言环境时构建“multipleDefine”错误
我的 dojo 应用程序在构建后中断,在加载应用程序期间,抛出“multipleDefine”并给出此错误:
错误{src:“dojoLoader”,信息:对象}
消息:多重定义
信息:对象{pid:“dojo”,mid:“dojo/nls/dojo_en-us”,pack:对象,url:“dojo/nls/dojo_en-us.js”,执行:5…}
这是我的个人资料:
}
这是 src/ 中的 index.html
注意:
build.sh
负责在部署到生产环境时删除“isDebug”标志。如果您完全修改此标志,您将破坏构建!
这是在 dist/ 中生成的 index.html
我检查以确保 dojo/nls/dojo_en-us.js 存在并且没问题。我被困在这一点上,没有任何线索!
任何解决此问题的帮助表示赞赏。
r - 在 R 中使用“nls.lm”时如何处理边界约束
我前段时间问过这个问题。我不确定是否应该将此作为答案或新问题发布。我没有答案,但我通过nls.lm
在 R 中应用 Levenberg-Marquardt 算法“解决”了这个问题,当解决方案在边界处时,我运行 trust-region-reflective 算法(TRR,在 R 中实现)步骤远离它。现在我有新的问题。
根据我的经验,这样做程序会达到最佳状态,并且对起始值不那么敏感。但这只是一种实用的方法,可以避开我在使用nls.lm
R 中遇到的问题以及其他优化函数。我想知道为什么nls.lm
在具有边界约束的优化问题上表现得这样,以及nls.lm
在实践中使用时如何处理边界约束.
下面我举了一个例子来说明这两个问题nls.lm
。
- 它对起始值很敏感。
- 当某个参数到达边界时它会停止。
一个可重现的例子:焦点数据集 D
描述模型/系统的微分方程是:
左图是带有初始值的模型,中间是使用“TRR”的拟合模型(类似于Matlablsqnonlin
函数中的算法),右图是使用“LM”的拟合模型nls.lm
。查看拟合参数(Fit.LM$par
),您会发现一个拟合参数(f_parent_to_m1
)位于边界处1
。如果我将一个参数的起始值M0_parent
从 0.1 更改为 100,那么使用nls.lm
和得到相同的结果lsqnonlin
。我有很多这样的情况。
除了上述问题,经常会出现由返回的 Hessiannls.lm
是不可逆的(特别是当某些参数在边界上时),所以我无法得到协方差矩阵的估计。另一方面,“TRR”算法(在 Matlab 中)几乎总是通过计算解点处的雅可比来给出估计。我认为这很有用,但我也确信 R 优化算法(我尝试过的那些)没有这样做是有原因的。我想知道我是否错了,通过使用 Matlab 计算协方差矩阵的方法来获得参数估计的标准误差。
最后一点,我在上一篇文章中声称,Matlablsqnonlin
在几乎所有情况下都优于 R 的优化功能。我错了。从上面的示例中可以看出,如果在 R 中也实现,则 Matlab 中使用的“信任区域反射”算法实际上更慢(有时慢得多)。但是,它仍然比 R 的基本优化算法更稳定并达到更好的解决方案。
r - 使用 R 函数“nls”估计 GEV 参数
我想使用加权最小二乘法估计 GEV(广义极值)分布的参数。我使用 R,并且我发现了一个名为 nls 的函数,我认为它可以用于此目的。它要求一个公式和一个可选的数据集。我想 GEV 公式和年度最大值系列应该在这里,但我不确定如何。有没有人使用过 nls 并且对如何做到这一点有任何想法?
该错误表明 y 丢失。y 是我们优化 GEV 参数时得到的,因此对于所有 x(也取决于权重),y 变得尽可能接近 x。所以 y 在我们估计 GEV 参数之前是未知的……
r - 将 nls 函数与 R 中的 apply 函数一起使用
感谢您的初步回复。
假设,我有一个矩阵;
如果我想使用 apply 函数将以下 nls 函数应用于每一行。
我该如何编程?同样,由于k
响应变量直观地是上述矩阵的行。
oracle11g - 未使用动态 SQL 设置 NLS_DATE_FORMAT 参数
我有一个带有动态 SQL 的存储过程,它创建一个表并调用另一个过程将一些值插入到表中。存储过程还设置了一些会话设置,其中之一是NLS_DATE_FORMAT
.
程序运行时,此参数不起作用。我已经尝试在SYSTEM
(所有者)和ADMIN
具有 DBA、Connect 和 Resource 权限的用户下运行该过程,但它总是以格式DD-MON-RR
而不是所需的MM/DD/YYYY
. 在 SQL Developer 中,在 DBA->Database Configuration->Current Database Properties 下,NLS_DATE_FORMAT
也以DD-MON-RR
.
有没有办法为整个数据库改变这个?我找到并尝试了以下方法,但它根本不起作用(这包括停止和重新启动数据库):
我查看了 SPFILE 和 init.ora 的答案,但我发现最好的是一个触发器,它会在每个用户登录后设置值。我不反对这一点,但我想知道是否有一种更全局的方式来设置参数一次,而无需创建设置以下会话参数的触发器:
这是我的存储过程的相关部分:
一旦过程运行(并调用后续过程来插入值),当我打开表时,对于任何用户,NLS_DATE_FORMAT
都没有改变(即它仍然是格式DD-MON-RR
而不是MM/DD/YYYY
)。
谢谢。
oracle - 如何获取一周的第一天,取决于 NLS
我想获取一周第一天的日期,但我希望它依赖于 NLS 参数。说,当我在美国运行它时,它应该给我星期天的日期,但在土耳其它应该给我星期一..
我怎样才能让它依赖?
r - 如何计算 R 中的圆拟合的预测区间
我希望用公式 > r² = (xh)²+(yk)² 计算圆拟合的半径的预测区间。r-圆的半径,x,y,是高斯坐标,h,k,标记拟合圆的中心。
问题是,predict()
不适用于 nls.lm,因此我正在尝试使用 nlsLM 计算圆拟合。(我可以手动计算,但在创建我的 Designmatrix 时遇到了麻烦)。
所以这就是我接下来尝试的:
这导致:
问题 1a:如何nlsLM()
使用圆形拟合?(优点是泛型predict()
可用。问题 1b:如何获得我的圆拟合的预测区间?
线性回归的例子(这就是我想要的圆形回归)
亲切的问候
编辑摘要:
Edit1:重新排列 nlsLM 中的公式,但参数 (h,k,r) 结果现在在 out 和 out1 中有所不同...
Edit2:添加了 2 个维基百科链接,用于澄清所用术语的 puprose:(参见下文)
Edit3:问题的一些改写
Edit4:添加了线性回归的工作示例