0

我正在尝试使用 scipy.stats.expect 获取对数正态随机变量的 E(x)。

使用 fit() 模块,shape、loc 和 scale 参数为

shape = 0.9577226550971423, loc=-1.1217451814333423, scale=0.744230342110942

期望值输出为

from scipy.stats import lognorm
scipy.stats.lognorm.expect(lambda x:1, args=(0.9577226550971423,), loc=-1.1217451814333423, scale=0.744230342110942, lb=0.1, ub=1.5)

输出:0.20809733881415318

但是,当使用 pdf 图表手动计算时,该值更接近 0.5。以下图表:

在此处输入图像描述

你能解释一下我在哪里错了吗?

4

1 回答 1

0

您是否尝试过添加conditional=True到函数的 kwargs 中expect()
这不会产生巨大的差异,因为您的上限和下限相对接近对数正态分布的支持,但仍然会增加精度(请参阅使用 scipy.stats 计算条件期望)。

此外,问题可能来自于一开始就不好的拟合(参见Scipy: lognormalfitting

于 2021-08-19T11:17:41.453 回答