问题标签 [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.
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 -
r - 以 exp(-exp(-x/c)) 为模型的非线性回归 (R,nls)
我很难将以下模型拟合到后续数据:
其实,我需要一个log(y, base = 10)
情节。因此,当我使用ggplot
and时stat_smooth(method='nls',...)
,我最终会非常适合。而且我不知道如何提高合身性。你能想出一个合理的方法吗?谢谢 !
到目前为止我的代码:
machine-learning - 如何为嘈杂(分散)的数据选择回归算法?
我将使用多个变量进行回归分析。在我的数据中,我有n = 23 个特征和m = 13000个训练示例。这是我的训练数据图(房屋面积与价格):
图上有 13000 个训练样例。如您所见,它是相对嘈杂的数据。我的问题是在我的案例中使用哪种回归算法更合适、更合理。我的意思是使用简单的线性回归或一些非线性回归算法更合乎逻辑。
为了更清楚,我提供了一些例子。
这是一些不相关的线性回归拟合示例:
现在我为我的数据提供一些假设的回归线:我的数据的 AFAIK 原始线性回归将产生非常高的错误成本,因为它是非常嘈杂和分散的数据。另一方面,没有明显的非线性模式(例如正弦)。在我的案例(房价数据)中使用哪种回归算法更合理,以便获得或多或少合适的房屋价格预测,为什么这种算法(线性或非线性)更合理?
statistics - 确定频谱峰值的不确定性(标准误差或参数误差)
我想从光谱(散射光子的能谱)中提取峰的位置。为此,我使用 scipy.optimize.curve_fit 将高斯拟合到类似于高斯的光谱区域。
如何找到峰值的不确定性?峰值本身将由高斯回归的平均参数的结果给出。
我想到了两件事:
- 我从最小化例程中获得协方差值,从中我得到平均参数的错误。
- 另外,我可以考虑使用高斯的 sigma 来得到平均值的误差。
我对此的想法是,平均参数上的错误不可能是错误的方法。我还敢打赌,标准误差并不能真正告诉我们知道峰值的不确定性。它告诉我们分布的形状,而不是峰值的不确定性(为简单起见,我们相信它有一个真实的、明确定义的值。)
(这是我最初在 stats.stackoverflow 上发布的一个问题的转贴,两天后我没有得到任何答案。)
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]);
r - R中的双指数模型
我有一个问题:在双指数模型的 R 中,我可以使用包含负数的数据吗???因为它给了我错误!负数有可能是错误的原因吗?
我在 R 中的 Biexponential 函数是:
A1*exp(-exp(lrc1)*input)+A2*exp(-exp(lrc2)*input)
在哪里:
输入- 用于评估模型的数值向量。
A1 - 一个数字参数,表示第一个指数的乘数。
lrc1 - 一个数字参数,表示第一个指数的速率常数的自然对数。
A2 - 一个数字参数,表示第二个指数的乘数。
lrc2 - 一个数字参数,表示第二个指数的速率常数的自然对数。
r - 如何在R中的“with”基础中编码删除NA
我的简单数据集如下所示。
可以使用以下代码重现上述数据集。
首先,我使用以下命令获取面板数据回归的面板结构
现在运行回归
然后为结果估计创建捷径,如下所示。
我有这个代码来计算面积的边际产品。但是我的数据框有一些缺失值,我需要包含代码以从上述计算中删除这些缺失值。否则,答案也为 NA。我只是尝试在上述代码的末尾包含以下内容。
但它不需要那个标签。数据框 pdat 是使用面板数据回归分析的面板数据集。a1、a2、a11、a12 是特定回归的系数。pdat 有一些丢失的数据,我相信由于 pdat 中缺少数据,因此 pdat$mpLab 会为每个观察结果提供 NA。
如果有人可以帮助我,将不胜感激。
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
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
: