【发布时间】: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