【发布时间】:2021-03-25 21:05:01
【问题描述】:
我正在尝试使用 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。下图:
你能解释一下我在哪里错了吗?
【问题讨论】:
-
或许您也可以共享数据?对数正态分布的期望值对上下限非常敏感。也许,您应该只强制执行
lb=0并让上限变为无穷大。这样,它可以更好地对您的数据进行建模,并给出更接近 0.5(您期望的值)的期望值。你怎么看?
标签: scipy scipy.stats