You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Monte Carlo Simulation中Lognormal distribution参数配置相关问题

对数正态分布参数设置及统计量计算指南

1 核心前提说明

对数正态分布与正态分布的参数定义完全不同:如果随机变量$X$服从对数正态分布,那么它的自然对数$\ln(X)$服从正态分布$N(\mu, \sigma^2)$。对数正态分布的均值、标准差计算逻辑和正态分布完全不一致。

2 MC模拟中的参数设置方法

根据你已知的条件可以分为两种设置场景:

2.1 已知对数域的正态分布参数

如果你已经确定了$\ln(X)$对应的正态分布均值$\mu$(对数均值)和标准差$\sigma$(对数标准差),直接按照以下逻辑生成样本即可:

  1. 先生成服从标准正态分布$N(0,1)$的随机数$Z$
  2. 按照公式X = exp(μ + σ * Z)转换得到符合要求的对数正态分布样本

2.2 已知真实参数$X$的期望均值和标准差

如果你明确的是待调整参数$X$本身需要满足的均值$\mu_X$、标准差$\sigma_X$,需要先反推对应的对数域参数,再生成样本:

  • 首先计算对数域方差:$\sigma^2 = \ln(1 + \frac{\sigma_X2}{\mu_X2})$
  • 再计算对数域均值:$\mu = \ln(\mu_X) - \frac{\sigma^2}{2}$
  • 最终对数域标准差为$\sigma = \sqrt{\sigma^2}$,代入2.1的生成逻辑即可

3 对数正态分布的均值与标准差计算方式

和正态分布参数直接对应本身均值、标准差的逻辑不同,对数正态分布的统计量需要从对数域参数转换得到:

  • 分布均值:$\mu_X = \exp(\mu + \frac{\sigma^2}{2})$
  • 分布方差:$\sigma_X^2 = \exp(2\mu + \sigma^2) * (\exp(\sigma^2) - 1)$
  • 分布标准差为上述方差的算术平方根

4 快速实现示例(Python)

import numpy as np

# 设定待生成参数的目标均值、标准差
target_mean = 10
target_std = 2

# 反推对数域参数
log_var = np.log(1 + (target_std ** 2) / (target_mean ** 2))
log_mean = np.log(target_mean) - log_var / 2
log_std = np.sqrt(log_var)

# 生成10000个MC模拟样本
mc_samples = np.random.lognormal(mean=log_mean, sigma=log_std, size=10000)

# 验证生成结果
print("样本实际均值:", np.mean(mc_samples))
print("样本实际标准差:", np.std(mc_samples))

注意:对数正态分布所有取值均为正数,非常适合用于物理意义上不能为负的参数模拟,避免MC过程中出现无意义的负参数值。

内容的提问来源于stack exchange,提问作者Assia Chadly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:36:00