(nb。刚刚在 google 群组上发布了这个,但它说它现在已被弃用)
我有一些代码可以将大约 12 个模型参数拟合到一系列数据集。pymc 代码的结果看起来很好,并且与我使用 lmfit 包的相同版本的代码一致,即非线性最小二乘法。我确实担心的一个问题是 95% 的可信区间在我看来是很小的,这对我来说表明某处存在错误。来自其他拟合脚本的标准误差在大小上是合理的,并且函数足够复杂,以至于不太可能出现这种独特的最小值。这可能是我如何采样数据的结果吗?我正在执行 100,000 次迭代,燃烧 50,000 次,然后细化 10 倍。
我的代码是:
https://github.com/mdekauwe/FitFarquharModel/blob/master/fit_farquhar_model/fit_dummy_pymc.py
如果有帮助,我可以尝试上传示例驱动文件,但也许我做了一些明显愚蠢的事情?
当我说微小时,这里是一个例子:
[lmfit] Vcmax25_1 = 16.55232485 +/- 1.22831709 (Std.err)
[pymc] Vcmax25_1 = 19.5718912 [19.57150052, 19.57232205] (95% HPD)
非常感谢,
马丁
附言。如果有人想测试它,我已经添加了一个示例文件。该脚本的底部有必要的链接......(当然需要从示例目录下载文件)
我的猜测是采样器必须卡住,所以我会尝试更详细地查看痕迹。