【问题标题】:How to do curve-fitting with multiple curves and dependent variables如何使用多条曲线和因变量进行曲线拟合
【发布时间】:2020-08-12 13:11:22
【问题描述】:

我正在研究用于 covid 预测的扩展 SIR 模型。现在我正在尝试通过 lmfit 使用曲线拟合。

这是代码:

mod = lmfit.Model(fitter)

for kwarg, (init, mini, maxi) in params_init_min_max.items():
    mod.set_param_hint(str(kwarg), value=init, min=mini, max=maxi, vary=True)

params = mod.make_params()
fit_method = "leastsq"

我已经通过额外的“死亡”案例延长了我的 SIR。所以现在我可以根据历史“死亡”曲线拟合我的模型。但我也找到了可能的“感染”的可靠来源。问题是,我只能在“D”(死亡)曲线或“I”(感染)曲线上进行曲线拟合。有什么方法可以让我使用基于两条曲线的曲线拟合,这两条曲线基本上依赖于相同的 SIR 算法。例如,当对“D”进行曲线拟合时,我得到的 R0 为 3.5,而“I”的 R0 为 4.2。如何找到适合两条曲线的 R0 值(带有其他变量参数)。

【问题讨论】:

    标签: python curve-fitting least-squares lmfit


    【解决方案1】:

    是的,如果您需要对两个不同数据集(您的“死亡”和“感染”)建模的方程(或函数)并且它们共享一些参数(“r0”),您可以制作一个使用 np.concatenate() 的模型为模型附加两个数组,然后拟合连接的数据集。

    该串联模型将具有一组参数。如果某些参数真的只改变连接数据集的前半部分或后半部分,那也没关系。

    【讨论】:

    • @FarhangDehzad:如果它解决了您的问题,也请接受答案;您可以通过单击答案旁边的小检查来完成此操作,然后它会变为绿色。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 2019-04-20
    • 2021-11-14
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 2020-12-14
    相关资源
    最近更新 更多