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

标签 python statistics distribution normal-distribution

平均值为 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呢? (改变迭代次数和标准偏差会改变输出,但它总是大于一)。感谢您的帮助!

最佳答案

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

关于e^(正态分布变量)的 Python 乘积不等于 1.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14637383/

相关文章:

javascript - 如何使用 django 表单和模板更新图像输入

python - Tkinter 图像不显示

python - 最常用的视频处理 Python 模块?

python - 为什么我的 Sympy 中的 Rician 与 Scipy 中的 Rician 不匹配?

iphone - 使用 App store 对可执行文件进行了无效授权签名

python - 针对使用 Pyspark mllib ALS/MatrixFactorizationModel 的用户子集的建议

python - 不区分大小写的 pandas dataframe.merge

r - 在R中绘制正态,左右偏斜分布

statistics - Julia |如何对 TimeArray 数据集执行线性回归

python - 使用带有 seaborn 的 For 循环创建许多分布图