0

我想用 python 拟合我的部分数据,使用 lmfit(这不是必须的!)。我想要拟合数据的动态范围,这意味着有两个拟合参数来定义我要拟合的数据部分(我们称之为下边界和上边界)。原因是我有很多数据集。在每个拟合范围内各不相同,我无法定义一个模型来拟合整个数据范围。另一方面,我无法遍历每个数据集并定义拟合范围。有可能吗?我想将脉冲函数与我的模型相乘,这也会影响原始数据。尽管据我所知,我无法告诉 lmfit 将其与数据相乘。所以我不知道!

橙色线是拟合,蓝点是拟合数据,浅绿点是排除数据

4

1 回答 1

2

模型函数或要最小化的函数返回的观测值数量(数据点或残差数组的长度)在整个单独拟合中必须相同。当然,这可以在连续拟合之间改变。因此,您可以尝试对具有不同范围的每个数据集进行多次拟合,也许是根据之前的拟合进行设置。

我认为您使用“不适合的地方”来确定不适合的地方的想法有些可疑,您需要确保避免导致荒谬的结果。例如,如果范围自动缩小到 Ndata = Nvariables+1,那么与 Ndata = 100*Nvariables 相比,您可能会得到一个非常低的卡方。

在不知道细节的情况下,我认为您最好提出选择仅依赖于数据而不适合它的数据范围的标准。

于 2019-02-11T13:12:09.723 回答