在Google Sheets中基于均值和第25百分位数参数化对数正态分布
在Google Sheets中基于均值和25百分位数参数化对数正态分布并实现蒙特卡洛模拟
核心原理
对数正态分布的参数化依赖其与正态分布的转换关系:若随机变量(X)服从对数正态分布(LogNormal(\mu, \sigma^2)),则(\ln(X))服从均值为(\mu)、标准差为(\sigma)的正态分布。我们需要通过已知的原始分布均值(10)和25百分位数(8),反推(\mu)和(\sigma)两个参数。
步骤1:推导参数计算公式
基于两个关键条件联立方程:
- 原始分布均值:(\exp(\mu + \sigma^2/2) = 10) → (\mu + \sigma^2/2 = \ln(10))
- 25百分位数:(\ln(8) = \mu + z_{0.25}\sigma),其中(z_{0.25})是标准正态分布的25分位数(对应公式
NORM.S.INV(0.25),约为-0.6745)
通过代数运算得到参数的精确求解公式:
- 计算(\sigma)(取正根):
σ = (-z_{0.25} + sqrt(z_{0.25}^2 + 2*(\ln(10)-\ln(8)))) - 计算(\mu):
μ = ln(8) - z_{0.25}*σ
步骤2:在Google Sheets中计算参数
在空白单元格(例如B1)输入公式计算(\sigma):
=(-NORM.S.INV(0.25) + SQRT(NORM.S.INV(0.25)^2 + 2*(LN(10)-LN(8))))
在相邻单元格(例如B2)输入公式计算(\mu):
=LN(8) - NORM.S.INV(0.25)*B1
步骤3:生成1000个对数正态样本
在F2单元格输入抽样公式,下拉至F1001即可生成1000个符合要求的样本:
=EXP(NORM.INV(RAND(), $B$2, $B$1))
验证结果
可通过以下公式验证样本统计量是否符合预期:
- 样本均值:
=AVERAGE(F2:F1001),结果应接近10 - 25百分位数:
=PERCENTILE.EXC(F2:F1001, 0.25),结果应接近8
内容的提问来源于stack exchange,提问作者Adotdems
相关产品推荐
相关产品推荐

