问题标签 [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 投票
0 回答
305 浏览

r - stat_smooth with complex function

I would like to use non-linear regression within ggplot, such that I may plot data and fit a curve to the reaction rate r = (k1*PA*PB^0.5)/(1+k2*PA^0.5) where PA and PB are tabulated against reaction rate r. I would like to find constants k1 and k2. I have been able to use nls() to carry out regression, but I need to lay the curve on top of ggplot data.

Something of this sort...data is for example only I have ~30 rows in series. Let me know what else I can provide to make this an easier to understand example -

0 投票
1 回答
137 浏览

r - 如何在不忽略权重的函数的情况下运行有序逻辑回归?

假设我有这个数据集:

我将因变量和自变量都转换为因子

并使用权重进行简单的有序逻辑回归:

警告信息:

我有理由相信,如果使用权重,结果会完全不同。

我该如何解决?大多数解决这个警告的问题都没有给出这个特定警告的正确答案。(这里这里这里

0 投票
1 回答
854 浏览

r - 以 exp(-exp(-x/c)) 为模型的非线性回归 (R,nls)

我很难将以下模型拟合到后续数据:

其实,我需要一个log(y, base = 10)情节。因此,当我使用ggplotand时stat_smooth(method='nls',...),我最终会非常适合。而且我不知道如何提高合身性。你能想出一个合理的方法吗?谢谢 !

到目前为止我的代码:

0 投票
1 回答
1524 浏览

machine-learning - 如何为嘈杂(分散)的数据选择回归算法?

我将使用多个变量进行回归分析。在我的数据中,我有n = 23 个特征和m = 13000个训练示例。这是我的训练数据图(房屋面积与价格):

在此处输入图像描述

图上有 13000 个训练样例。如您所见,它是相对嘈杂的数据。我的问题是在我的案例中使用哪种回归算法更合适、更合理。我的意思是使用简单的线性回归或一些非线性回归算法更合乎逻辑。

为了更清楚,我提供了一些例子。
这是一些不相关的线性回归拟合示例:

在此处输入图像描述

还有一些不相关的非线性回归拟合示例: 在此处输入图像描述

现在我为我的数据提供一些假设的回归线:我的数据的 在此处输入图像描述 AFAIK 原始线性回归将产生非常高的错误成本,因为它是非常嘈杂和分散的数据。另一方面,没有明显的非线性模式(例如正弦)。在我的案例(房价数据)中使用哪种回归算法更合理,以便获得或多或少合适的房屋价格预测,为什么这种算法(线性或非线性)更合理?

0 投票
1 回答
1155 浏览

statistics - 确定频谱峰值的不确定性(标准误差或参数误差)

我想从光谱(散射光子的能谱)中提取峰的位置。为此,我使用 scipy.optimize.curve_fit 将高斯拟合到类似于高斯的光谱区域。

如何找到峰值的不确定性?峰值本身将由高斯回归的平均参数的结果给出。

我想到了两件事:

  • 我从最小化例程中获得协方差值,从中我得到平均参数的错误。
  • 另外,我可以考虑使用高斯的 sigma 来得到平均值的误差。

我对此的想法是,平均参数上的错误不可能是错误的方法。我还敢打赌,标准误差并不能真正告诉我们知道峰值的不确定性。它告诉我们分布的形状,而不是峰值的不确定性(为简单起见,我们相信它有一个真实的、明确定义的值。)

(这是我最初在 stats.stackoverflow 上发布的一个问题的转贴,两天后我没有得到任何答案。)

0 投票
1 回答
790 浏览

matlab - nlinfit 尺寸错误

我在 matlab 中使用非线性拟合工具。我不断收到以下错误:

使用 nlinfit 时出错(第 210 行) MODELFUN 必须是一个函数,该函数返回与 Y(1×100)大小相同的拟合值向量。您提供的模型函数返回 1×2 的结果。大小不匹配的一个常见原因是在函数中使用矩阵运算符 ( , /, ^) 而不是相应的元素运算符 (. , ./, .^)。

我发现这个问题与我的非常相似,但我仍然得到同样的错误。我尝试在控制台上计算myfun,同时使用向量作为输入,这给了我正确尺寸的输出。如果有人能指出错误,那将是非常有帮助的。

提前致谢...:)

编辑:发现这是有效的。 g = fittype('exp(k*x + a)'); [fit1,gof,fitinfo] = fit(x',y',g,'StartPoint',[1 1]);

0 投票
0 回答
640 浏览

r - R中的双指数模型

我有一个问题:在双指数模型的 R 中,我可以使用包含负数的数据吗???因为它给了我错误!负数有可能是错误的原因吗?

我在 R 中的 Biexponential 函数是:

A1*exp(-exp(lrc1)*input)+A2*exp(-exp(lrc2)*input)

在哪里:

  • 输入- 用于评估模型的数值向量。

  • A1 - 一个数字参数,表示第一个指数的乘数。

  • lrc1 - 一个数字参数,表示第一个指数的速率常数的自然对数。

  • A2 - 一个数字参数,表示第二个指数的乘数。

  • lrc2 - 一个数字参数,表示第二个指数的速率常数的自然对数。

0 投票
2 回答
132 浏览

r - 如何在R中的“with”基础中编码删除NA

我的简单数据集如下所示。

可以使用以下代码重现上述数据集。

首先,我使用以下命令获取面板数据回归的面板结构

现在运行回归

然后为结果估计创建捷径,如下所示。

我有这个代码来计算面积的边际产品。但是我的数据框有一些缺失值,我需要包含代码以从上述计算中删除这些缺失值。否则,答案也为 NA。我只是尝试在上述代码的末尾包含以下内容。

但它不需要那个标签。数据框 pdat 是使用面板数据回归分析的面板数据集。a1、a2、a11、a12 是特定回归的系数。pdat 有一些丢失的数据,我相信由于 pdat 中缺少数据,因此 pdat$mpLab 会为每个观察结果提供 NA。

如果有人可以帮助我,将不胜感激。

0 投票
3 回答
3294 浏览

julia - Julia: using CurveFit package non linear

why the code below does not work?

Error: LoadError: MethodError: convert has no method matching convert(::Type{Float64}, ::Array{Float64,1}) This may have arisen from a call to the constructor Float64(...), since type constructors fall back to convert methods. Closest candidates are: call{T}(::Type{T}, ::Any) convert(::Type{Float64}, !Matched::Int8) convert(::Type{Float64}, !Matched::Int16)

while loading In[269], in expression starting on line 8 in nonlinear_fit at /home/jmarcellopereira/.julia/v0.4/CurveFit/src/nonlinfit.jl:75

0 投票
1 回答
555 浏览

c++ - GSL 非线性最小二乘拟合不会收敛

我对 C++ 尤其是 GSL 比较陌生。尽管如此,我还是努力通过 GSL 提供的实现来解决将非线性函数拟合到某些数据的问题。这个想法是有一个类(Clnm),它保存数据和模型系数等。Clnm该类有一个方法Cnlm::fitModel_manu,它采用初始值和指向要最小化的函数的函数指针,这些函数在fit_functions.cpp.

我有一个最小的工作示例,我首先使用 GSL 参考手册提供的示例中的公式和系数生成一些数据(Y = A exp(lambda*x)+b ,
{A,lambda,b}=<5.0, -0.1,1.0>)。这很好,我得到了预期的数据。

使用这些数据Cnlm构造一个对象。然后fitModel_manu调用该方法。

实现工作正常,代码编译良好(使用 g++ 和 ISO C++11,g++ -std=c++0x),但是我似乎永远无法收敛,即使我提供了正确的参数作为初始猜测。

我浏览了很多帖子,但找不到解决问题的方法。

我已经走投无路了。如果有人想尝试,我在下面提供了我的代码。也许其他人可以提供一些启示?

提前致谢!


这是代码

标题,nlls.h

main.cpp

class_functions.cpp

fit_functions.cpp