在Python的正交回归中遇到零除错误(scipy.odr)

2 投票
1 回答
1490 浏览
提问于 2025-04-18 05:05

根据这个讨论,我们在进行正交距离回归时,发现对于某个特定的数据集,程序出现了错误:

/usr/local/lib/python2.7/site-packages/scipy/odr/odrpack.py:361: RuntimeWarning: divide by zero encountered in true_divide
return 1./numpy.power(sd, 2)
Beta: [ nan  nan]
Beta Std Error: [ 0.  0.]
Beta Covariance: [[ 0.  0.]
                  [ 0.  0.]]
Residual Variance: 0.0
Inverse Condition #: 0.0482240040702
Reason(s) for Halting:
   Numerical error detected

我原以为是因为回归数组中有一些空值,但看起来并不是这样。关于如何使用scipy.odr的说明非常少,我也不是专家,所以我不知道发生了什么。sd是什么?导致这个错误的计算过程是什么?

补充:这个是返回错误的数据集,这个是相关错误的数组。

1 个回答

1

相关的错误值不能是零。比如可以用NaN值来替代它们,或者直接把这些错误值从数据集中去掉。

撰写回答