问题标签 [model-fitting]

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 回答
434 浏览

regression - 有没有回归模型的工具?

我需要从一组示例中推导出线性/二次方程。有没有可用的工具?

0 投票
11 回答
30729 浏览

algorithm - 在曲线上找到最佳权衡点

假设我有一些数据,我想为其拟合一个参数化模型。我的目标是找到这个模型参数的最佳值。

我正在使用AIC / BIC / MDL类型的标准进行模型选择,该标准奖励具有低错误的模型但也惩罚具有高复杂性的模型(可以说,我们正在为这些数据寻求最简单但最有说服力的解释,a la Occam's剃须刀)。

继上述之后,这是我根据三个不同标准(两个要最小化,一个要最大化)得到的那种东西的一个例子:

有氧运动 合身

在视觉上,您可以轻松地看到肘部形状,并且您可以在该区域的某处为参数选择一个值。问题是我正在为大量实验这样做,我需要一种无需干预即可找到此值的方法。

我的第一个直觉是尝试从拐角处以 45 度角画一条线并继续移动它直到它与曲线相交,但这说起来容易做起来难 :) 如果曲线有些倾斜,它也可能会错过感兴趣的区域。

关于如何实现这一点或更好的想法的任何想法?

以下是重现上述图表之一所需的样本:


编辑

我接受了Jonas给出的解决方案。基本上,对于p曲线上的每个点,我们找到最大距离d为:

点线距离

0 投票
1 回答
258 浏览

r - 使用 nls 函数可视化的初始猜测

我正在尝试将由几个高斯钟组成的函数拟合到一些实验数据中。使用的方法是来自 R 的 nls 函数。但是很难得到足够好的初始猜测,使得该方法可以收敛。

是否可以在调用优化例程之前可视化初始猜测?

我正在处理的代码如下所示(我无法提供对数据文件的访问权限)。

0 投票
1 回答
3277 浏览

r - 尝试使用 ggplot2 的 geom_smooth() 显示原始和拟合数据(nls + dnorm)

我正在探索一些数据,所以我想做的第一件事是尝试对其进行正态(高斯)分布。这是我第一次在 R 中尝试这个,所以我一步一步来。首先,我预先合并了我的数据:

情节1

由于我想要计数,我需要添加一个归一化因子 (N) 来扩大密度:

然后我为显示创建拟合数据,一切正常:

情节2

当我发现这个线程谈论使用 geom_smooth() 一步完成所有操作时,我感到很兴奋,但我无法让它工作:

这是我尝试的......以及我得到的:

该错误似乎表明它正在尝试适应观察到的变量counts,但这没有任何意义,而且如果我也为 counts 指定一个“起始”值,它可以预见会吓坏:

知道我做错了什么吗?当然,这不是世界末日,但步骤越少越好,你们总是为这些常见任务想出最优雅的解决方案。

提前致谢!

杰弗里

0 投票
2 回答
163 浏览

java - Java:如何在尽可能小的表面上绘制图像?

假设我有 256 张平均大小为 70x150 的图像(因此,大小可变)。而且我有一个Graphic-instance(从具有给定大小的 BufferedImage 创建),我想在其上绘制图像。但我想在尽可能低的表面上绘制它们。所以,不是单纯的在一个格子里,而是真的在彼此不解。但是!:它们可能不会相互重叠。

也许这是只有人脑才能做到的事情。
值得一问,我认为......

在此先感谢,
马丁

例如:

0 投票
1 回答
1266 浏览

matlab - MATLAB:多功能拟合

我有一个函数,三个指数的总和:

确切地:

其中 f1, f2, f3 是分数,每个 exp 有一个参数,称为 a1, a2 和 a3。

因此,将此函数拟合到实验数据会给出六个参数(f1、f2、f3、a1、a2、a3)。

注意

拟合完成了几个时滞(称为 t1、t2、t3....)。因此,对于每个时间延迟,都有一组六个参数。

参数 a1、a2 和 a3 以线性方式随时间延迟增加(a1(t1) < a1(t2) < a1(t3)... 等等)。每个时滞的分数都是相同的。

我需要的是 a1(t)、a2(t)、a3(t) 和分数的斜率。问题是,当我为每个时滞拟合函数时,我经常遇到 a1 和 a2 很好地上升(完美的线性拟合)但 a3 下降的情况。我也有分数的问题 - 我不能取每个分数的平均值,因为当我添加 f1(t) + f2(t) + f3(t) 时,它永远不会等于 1。

有没有(简单的)方法可以“一次”全部安装?怎么做?谢谢!

0 投票
1 回答
17677 浏览

python - 正确使用 fmin_l_bfgs_b 来拟合模型参数

我有一些实验数据(对于 y、x、t_exp、m_exp),并希望使用受约束的多元 BFGS 方法找到该数据的“最佳”模型参数(A、B、C、D、E) 。参数 E 必须大于 0,其他不受约束。

几个问题:

  1. 我的模型公式应该func包括我的自变量x还是应该从实验数据中提供x_exp作为 的一部分*args
  2. 当我运行上面的代码时,我得到一个错误func() takes at least 6 arguments (3 given),我假设是 x,我的两个 *args ......我应该如何定义func

编辑:感谢@zephyr 的回答,我现在明白目标是最小化残差平方和,而不是实际函数。我得到了以下工作代码:

我不确定界限是否正常工作。当我为 E 指定 (0, None) 时,我得到一个运行标志 2,异常终止。如果我将其设置为 (1e-6, None),它运行良好,但选择 1e-6 作为 E。我是否正确指定了边界?

0 投票
2 回答
9244 浏览

matlab - 将高斯拟合到特定数据(查找模型参数)

从上面的数据中,我想提取高斯函数公式。高斯函数公式为y=A*exp(-(x-τ)^2/σ^2)(A为幅度,τ为相位,σ为宽度)。从上面的数据中,我知道 A 是 13.7092(最大值-最小值),τ 是 47。但是,我不知道 σ。我已经将 σ 计算为标准偏差。但是值不合适。matlab中有没有提取函数公式的函数?我怎么解决这个问题?

0 投票
1 回答
2940 浏览

algorithm - Mathematica 在 NonlinearModelFit[] 中使用什么拟合算法?

我需要知道它使用的算法,因为我必须编写自己的程序。Levenberg-Marquardt 并没有真正做同样的事情。是否有一个算法列表,Mathematica 可以从中选择用于特定问题的算法?

谢谢你。

0 投票
1 回答
12530 浏览

r - R 非线性最小二乘 (nls) 模型拟合

我正在尝试将数据的 G 函数中的信息拟合到以下数学模式: y = A / ((1 + (B^2)*(x^2))^((C+1)/2 ))。该图的形状可以在这里看到:

http://www.wolframalpha.com/input/?i=y+%3D+1%2F+%28%281+%2B+%282%5E2%29*%28x%5E2%29%29%5E%28%282 %2B1%29%2F2%29%29

这是我一直在做的一个基本示例:

“Gest”是“spatstat”库中的一个函数。它是 G 函数或最近邻函数,它显示了独立轴上粒子之间的距离,以及在从属轴上找到最近邻粒子的概率。因此,它从 y=0 开始并在 y=1 处达到饱和点。

如果您绘制 simdat.Gest,您会注意到曲线是“s”形的,这意味着它从 y = 0 开始并在 y = 1 结束。因此,我反转了向量 Gvalues,它是依赖的变量。因此,信息处于适合上述模型的正确方向。

您可能还注意到我已经自动设置了 A = 1。这是因为 G(r) 总是在 1 处饱和,所以我没有费心将它保留在公式中。

我的问题是我不断收到错误。对于上面的示例,我收到此错误:

我也遇到了这个错误:

我不知道第一个错误来自哪里。然而,我认为第二个发生是因为我没有为 B 和 C 选择合适的起始值。

我希望有人可以帮助我找出第一个错误来自哪里。另外,选择起始值以避免第二个错误的最有效方法是什么?

谢谢!