我想使用 python scipy.stats.lognormal.fit
使对数正态分布适合我的数据。根据 手册, fit
返回 形状、位置、比例 参数。但是,对数正态分布通常只需要 两个参数:均值和标准差。
如何解释 scipy fit
函数的结果?如何获得均值和标准差?
原文由 Jakub M. 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想使用 python scipy.stats.lognormal.fit
使对数正态分布适合我的数据。根据 手册, fit
返回 形状、位置、比例 参数。但是,对数正态分布通常只需要 两个参数:均值和标准差。
如何解释 scipy fit
函数的结果?如何获得均值和标准差?
原文由 Jakub M. 发布,翻译遵循 CC BY-SA 4.0 许可协议
我只是花了一些时间解决这个问题并想在这里记录它:如果你想从 --- 的三个返回值中获得概率密度(在点 x
lognorm.fit
(让我们打电话他们 (shape, loc, scale)
),你需要使用这个公式:
x = 1 / (shape*((x-loc)/scale)*sqrt(2*pi)) * exp(-1/2*(log((x-loc)/scale)/shape)**2) / scale
So as an equation that is ( loc
is µ
, shape
is σ
and scale
is α
):
原文由 Chronial 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答884 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
scipy 中的分布以通用方式编码,有两个参数位置和比例,因此位置是参数(
loc
),它将分布向左或向右移动,而scale
是压缩或拉伸分布的参数。对于二参数对数正态分布,“mean”和“std dev”对应于log(
scale
)和shape
(你可以让loc=0
).下面说明了如何拟合对数正态分布以找到两个感兴趣的参数: