问题标签 [non-linear-regression]

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.

0 投票
1 回答
2247 浏览

r - 在 ggplot2 中绘制引导输出的中位数、置信区间

我有一个数据框df(见下文)

我基于我的数据集创建了一个非线性回归 (nls)。

然后我为这个函数计算了一个引导程序来获取多组参数(A、B 和 k)。

我现在想在一个 ggplot2 中绘制中值曲线以及从 bootstrap 对象计算的上下置信区间曲线。每条曲线的参数(A、B 和 K)包含在Boo_Gamma$bootCI. 有人可以帮我解决吗?提前致谢。

0 投票
0 回答
368 浏览

r - 使用 nlsLM() 和 <'dimnames' 的长度不等于数组范围> 错误

给出了测量点(y_i, t_i)(而在这个最小的例子中,y_i只有 3 维向量(最初来自 R^6)和t_i 固定时间点。我不得不(不确定代码是否,现在的方式,表示它)应用高斯-牛顿法,以最小化(双)平方误差之和并在拟合系统中找到函数参数ajcj在由函数表示的代码中fitFunc())。

当我在我的 C++ 实现中不断获得雅可比矩阵的 Inf 小条目时,我搜索了一个替代方法并偶然发现了nls()R 中的函数(因为我在使用时遇到了“奇异梯度矩阵”错误nls(),我切换到了nlsLM()

这是最小的示例(仅使用N_0and N_r,而原始系统具有 3 个不同的 sumExp 类函数,N_0cN_c调用 in fitfunc()):

我现在得到了这个

colnames<-( , value = c("t", "cj", "aj")) 中的错误*tmp*:'dimnames' [2] 的长度不等于数组范围另外:警告消息:在矩阵中(out$hessian,nrow = length(unlist(par))) : 数据长度 [9] 不是行数 [24] 的子倍数或倍数

问:你知道如何解决这个错误吗?警告消息中的这个 9 是从哪里来的?

0 投票
1 回答
643 浏览

r - 如何在 R 中的多变量非线性回归中使用 S 曲线(sigmoid)?

我正在研究市场组合建模 - 我需要通过s-curve. 以下是我需要使用的等式 -

我尝试了 NLS,但不断收到起始值错误。然后,我使用了自启动功能,nls - Sslogis但它一次只能用于一个变量,而不是如上所述的整个功能。

如何sigmoidal(s-curve)在非线性回归模型中拟合超过 1 个函数?

0 投票
0 回答
693 浏览

r - 如何在表格中自动化零膨胀 beta 回归报告结果?

我有一个包含 11 个名为“env”的列的矩阵,其中 1 个响应变量介于 0 和 1(“R1”)之间,10 个可能的预测变量范围从“P1”到“P10”。我想使用零膨胀 beta 回归(r包和函数“gamlss”)来评估每个预测变量对我的响应变量的单独影响,总结表中每个预测变量的AIC、估计和概率。该表应该将预测变量作为行和模型参数(AIC,估计和概率)作为列。必须针对 beta 分布的三个系数(MU、NU 和 SIGMA)单独重复此过程。

这是我的数据矩阵的一个子集(很抱歉无法按照指南对其进行模拟)

下面是具有 3 个系数的 gamlss 函数的语法:

这是我想要得到的表的结构:

我认为我应该能够通过“for loop”、“lapply”或“apply”和“cbind”的组合来自动化它,但不幸的是我无法让它工作。如果你们中的一些人能帮我一把,那就太好了。非常感谢

0 投票
2 回答
541 浏览

r - 由于 NA 导致 R 中的优化失败

很长一段时间以来,我一直试图在 R 中估计一个相当混乱的非线性回归模型。在无数次尝试使用该nls功能失败后,我现在正在尝试我optim过去曾多次使用过的运气。对于此示例,我将使用以下数据:

我想估计上面 log() 函数中多项式表达式中的参数,因此我定义了以下函数来复制非线性最小二乘回归:

为了避免 log() 表达式中的负起始值,我首先估计下面的线性模型:

上面的定义intercept.start保证了 log() 内部的表达式一开始就严格为正。但是,当我运行optim命令时

我收到以下错误消息

有谁知道我如何强制optim例程简单地忽略会在 log() 表达式中产生负值的参数估计?提前致谢。

0 投票
1 回答
942 浏览

r - 如何在R中平滑非线性回归曲线

所以我被要求获得 MASS 包中变量 Length 的估计值。我使用的代码如下所示,以及生成的曲线。不知何故,我最终没有得到一条平滑的曲线,而是一条非常“块状”的曲线,以及曲线上各点之间的一些线。谁能帮我得到一个平滑的曲线?

情节图像:在此处输入图像描述

编辑:作为后续问题:如果我想更准确地预测曲线,我使用非线性回归来预测 21 个物种中的每一个的曲线。这给了我一个向量

我可以创建一个绘制所有图形的 for 循环,但像以前一样,我最终得到了块状曲线。但是,看到我必须将这些曲线绘制如下:

我不知道如何使用相同的技巧来平滑这些曲线,因为肌肉$Conc 仍然只有 4 个值。

编辑2:我想通了,并将其更改为以下内容:

0 投票
1 回答
1019 浏览

c# - 使用 minlmoptimize 拟合 Alglib 数据不会最小化结果。包含完整的 c#

我在 alglib 库中实现 lm 优化器时遇到问题。我不确定为什么在仍然收到退出代码 4 的同时参数几乎没有改变。我无法确定我在使用 alglib 的文档时做错了什么。以下是我正在运行的完整来源:

0 投票
1 回答
291 浏览

r - 在 R 中找到合适的非线性回归公式

我正在尝试为我在 R 中的数据计算非线性回归。我无法找到合适的公式和参数值。

我的数据如下所示:

在此处输入图像描述

我一直在使用我认为合适的 nls 和 nlrq 函数,但我认为我指定的公式不合适。我已经尝试过指数衰减函数y ~ ab^xy ~ c + a*b^x,但得到的回归线看起来一点也不正确。

不幸的是,我不知道哪个公式合适。我已经阅读了一些拟合非线性回归的教程,但它们都从一个似乎适合其数据集的初始公式开始。这里的指导将是最受欢迎的,特别是如果有人可以推荐一个开始的公式。

数据的子集:

当我使用y ~ c + a*b^x以下实现时:

它看起来像这样:

在此处输入图像描述

我还没弄清楚为什么它似乎绘制了多条线。

提前感谢你的帮助。

根据反馈,我尝试使用以下代码绘制回归:

结果是:

在此处输入图像描述

这看起来像是一条实际的回归线,但曲线的斜率向我表明,公式或参数可能不适合数据。

0 投票
0 回答
1021 浏览

matlab - 使用 nlinfit 的 Matlab 错误,病态雅可比行列式

我正在使用nlinfitMatlab 中的函数来绘制一条最适合我拥有的数据集的线。我正在使用的功能是f = @(a, b) 1 - exp(-(x/a)^b). 对于大多数数据集,这可以正常工作,但对于某些图表来说,我收到了警告:

警告:
解处的雅可比是病态的,某些模型参数可能无法很好地估计(它们无法识别)。在做出预测时要小心。

我发现通常我们大致有a=5, b=5,但是对于不正确的拟合nlinfit给出a=0, b=-0.02a=4.6, b=174。我在下面包含了图表和数据点。 合身 a=0 b=174

怎么了?!

0 投票
0 回答
241 浏览

r - 在非线性拟合中使用泊松误差结构

我拟合了一个三线性模型

细菌存活数据

使用符合以下条件的 OLS nls

在此处输入图像描述

我想知道我是否也可以在原始(非对数转换)单元 nrs(在本例中为survivalcurve1$N = (10^survivalcurve1$LOG10N))上使用最大似然拟合该模型,同时考虑到误差结构约为泊松?这也许可以使用bbmle's来完成mle2,如果可以,正确的语法是什么?

编辑:我试过

给我

虽然无法绘制预测工作:

因为这给了我错误

有什么想法吗?另外,我如何判断泊松mle2拟合是否比那个更好nls?(由于规模不同,无法比较AIC)

PS该geeraerd模型也可以,以防万一会更容易: