在@Risk和水晶球中,我们可以使用百分位数数据定义概率分布。例如,我们只需输入3个数据点,例如P10、P50和P90估计,就可以定义日志正态分布。然后,该软件将推出PDF的分布。这到底是怎么做到的?例如,在Matlab中,Excel或Mathematica就可以了。
在文档中,没有明确说明软件是如何做到的。
发布于 2016-03-05 11:34:40
从对数正态分布开始,由平均值=1和标准差= 0.5的正态分布导出,计算第10、50和90百分位数。
μ = 1;
σ = 0.5;
p[n_] := Quantile[LogNormalDistribution[μ, σ], n]
p10 = p[0.1]1.43222
p50 = p[0.5]2.71828
p90 = p[0.9]5.15917
Show[
Plot[PDF[LogNormalDistribution[μ, σ], x], {x, 0, 12}],
Plot[PDF[LogNormalDistribution[μ, σ], x], {x, 0, #},
PlotStyle -> None, Filling -> Axis] & /@ {p10, p50, p90},
Epilog -> MapThread[Inset[#1, {#2, 0.025}] &,
{{"p10", "p50", "p90"}, {p10, p50, p90}}]]

现在,根据OP的问题,只从百分位数反算μ和σ。
Clear[μ, σ]
sol = Quiet@First@Solve[{
Quantile[LogNormalDistribution[μ, σ], 0.1] == p10,
Quantile[LogNormalDistribution[μ, σ], 0.5] == p50,
Quantile[LogNormalDistribution[μ, σ], 0.9] == p90}, {μ, σ}]{ -> 1.,σ-> 0.5}
对数-正常均值和方差:
Mean[LogNormalDistribution[μ, σ]] /. sol3.08022
Variance[LogNormalDistribution[μ, σ]] /. sol2.69476
检查符号的评估和定义,以了解计算。

https://stackoverflow.com/questions/35797549
复制相似问题