【发布时间】:2021-07-17 17:23:40
【问题描述】:
我刚刚尝试将对数正态分布的 scipy 输出与wikipedia 上的公式相匹配。
而且我被困在具有下限的部分期望上。
如果我使用这个简单的对数正态分布:
k = .25
sigma = .5
mu = .1 # from the logged variable
lnorm = scist.lognorm(s=sigma, scale=np.exp(mu))
其中 k 是下限,
据我了解,部分期望由以下公式给出:
很好。所以我们只是在讨论对数正态分布的平均值和具有 z 分数的 CDF。 scipy 提供了部分
lnorm.expect(lambda x:x, lb=k)
>>> 1.25199...
确实,我们可以通过根据条件期望检查它来确认这是部分。直接计算或使用上面的部分产生相同的结果:
lnorm.expect(lambda x:x, lb=k) / (1 - lnorm.cdf(k))
>>> 1.25385...
lnorm.expect(lambda x:x, lb=k, conditional=True)
>>> 1.25385...
但是,scipy 的 cdf 函数采用 x 变量,而不是 z 分数,我不确定如何转换它:
转换为x 值。我尝试了很多不同的口味。
我本来以为:
可以解决当 scipy 的 cdf(大概)在内部计算 z 分数时必须减去 mu 的问题。
我使用的任何公式都以非常小的值或 0 结束。
任何帮助将不胜感激。
【问题讨论】:
-
对不起,我不清楚你的问题到底是什么。您想使用公式计算带有
def的部分期望吗?
标签: python python-3.x scipy scipy.stats