【发布时间】:2016-12-16 17:34:33
【问题描述】:
我正在尝试拟合多个分布并获得每个分布的标准差。然而,对于标准偏差,大量分布会返回 inf 或 Nan。获取我正在做的拟合分布方差的方法是否正确?有没有更好的办法?为什么是南人?这就是我所做的:
param = distribution.fit(data)
arg = param[:-2]
loc = param[-2]
scale = param[-1]
if len(arg)>0:
std = np.sqrt(distribution.stats(arg, loc, scale, moments='v')[0]))
else:
std = np.sqrt(distribution.stats(loc, scale, moments='v')[0]))
我还跳过了在拟合数据时会产生警告的分布。
更新 1:
比如distribution = scipy.stats.beta,我得到[ nan nan],参数如下:
arg: (32.198726690922953, 15883184.284202889)
loc: -33527.5754686
scale: 35484135514.4
【问题讨论】:
-
请提供更多细节。提供
data,并显示哪个分布给出inf或nan。 -
感谢@WarrenWeckesser 的提醒,我会将分布添加到问题中,但我的代码是否正确?或者有更好的方法来获取我的数据的标准差。
标签: python scipy statistics data-fitting