e^(正态分布变量)的 Python 乘积不等于 1.0



均值为 0 的正态分布变量之和的平均值为零。这行得通。e 与均值为 0 的正态分布变量的幂的乘积应为 1。但是当我在 Python 中执行此操作时,我得到的产品高于 1。对此有什么解释吗?

sumProduct = 0.0
iterations = 100000
for j in range(iterations):
    product = 1.0
    for i in range(10):
        normalVar = numpy.random.normal(0.0, 0.1)
        product *= math.exp(normalVar)
    sumProduct += product
print sumProduct/iterations # Outputs 1.05

它不应该输出 1.0 吗?乘积变量的期望值应为 1.0,所有乘积变量的平均值应为 1.0。那么为什么它会输出 1.05?(更改迭代次数和标准差会更改输出,但输出始终大于 1)。感谢您的帮助!

对数正态变量的平均值为 exp(mu + 1/2 sigma^2),其中 mu 和 sigma 是相关正态分布的参数。在这种情况下,相关的正态分布是变量"乘积"的对数分布,其 mu = 10 乘以 0.0,sigma^2 = 10 乘以 0.1^2 = 0.1。因此,对数正态变量的平均值为 exp(0.0 + 1/2 乘以 0.1) = exp(0.05),约为 1.05。

最新更新