【问题标题】:SciPy genextreme.fit gives: "RuntimeWarning: divide by zero"SciPy genextreme.fit 给出:“RuntimeWarning:除以零”
【发布时间】:2019-02-17 18:15:34
【问题描述】:

我正在尝试使用 SciPy 中的 genextreme 包进行 GEV-fit。虽然我可以用它来估计参数,但我收到警告说它正在被零除。

我尝试拟合不同的数据集,尝试为形状参数 c 设置不同的初始值,还尝试将数据乘以例如100. 没有一个奏效。我正在使用 Python 2.7.12 和 SciPy 0.17.0。

我是 Python 新手,想用我现有的安装做一个快速的第一次测试。

代码中给出的数据大致是 Gumbel 分布的 (c=0),因为我已经在 Gumbel 图上对其进行了检查,并使用线性回归进行了 Gumbel 拟合。

import numpy as np
from scipy.stats import genextreme as gev
t=np.array([3.8482, 3.6435, 3.0417, 4.0329, 3.2967, 3.3535, 3.6179, 3.3042, 3.6164, 3.5855, 2.7932, 2.8833, 2.6513, 2.7794, 3.2649, 3.2613, 3.1736, 3.1131, 3.3896, 4.2891])
a=gev.fit(t)

根据我的线性回归,我预计形状参数接近 c=0,位置参数接近 3.15,比例参数接近 0.39。实际结果是:

/usr/lib/python2.7/dist-packages/scipy/stats/_continuous_distns.py:1776: RuntimeWarning: invalid value encountered in true_divide
np.sign(c)*(-g3+(g2+2*g2mg12)*g1)/((g2mg12)**(3./2.)))
/usr/lib/python2.7/dist-packages/scipy/stats/_continuous_distns.py:1781: RuntimeWarning: invalid value encountered in true_divide
(g4+(-4*g3+3*(g2+g2mg12)*g1)*g1)/((g2mg12)**2))

然而,一个值显然被赋给了 a,因为:

>>> a
(0.16458924337692377, 3.1800328240261857, 0.37894174199431357)

这些值接近我的预期,但我不明白警告。

【问题讨论】:

    标签: python scipy statistics


    【解决方案1】:

    问题是您的代码有一些计算试图除以零或 NaN。
    您可以通过深入单个计算并处理零和 NaN 来解决此问题,以便您的算法跳过它们,或者您可以执行以下操作:

    import numpy as np
    from scipy.stats import genextreme as gev
    with np.errstate(divide='ignore', invalid='ignore'):
        t=np.array([3.8482, 3.6435, 3.0417, 4.0329, 3.2967, 3.3535, 3.6179, 3.3042, 3.6164, 3.5855, 2.7932, 2.8833, 2.6513, 2.7794, 3.2649, 3.2613, 3.1736, 3.1131, 3.3896, 4.2891])
        a=gev.fit(t)
    

    这只是通过告诉算法忽略将除以 0 或 NaN 的值作为异常处理的一种形式来抑制警告。
    注意:divide 用于除以 0,invalid 用于在 numpy 数学运算中遇到 NaN。
    更多信息:https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.errstate.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      • 1970-01-01
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-07
      相关资源
      最近更新 更多