使用百分点定义分布

时间:2016-03-04 13:40:08

标签: matlab statistics wolfram-mathematica probability

在@Risk和Crystal Ball中,我们可以使用百分位数据定义概率分布。例如,我们可以通过输入3个数据点来定义对数正态分布,例如, P10,P50和P90估计。然后该软件将提供分发的PDF。这实际上是怎么做到的? Matlab,Excel或Mathematica中的示例都没问题。

在文档中,没有明确说明软件是如何进行的。

1 个答案:

答案 0 :(得分:2)

从正态分布得出的对数正态分布开始,均值= 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}}]]

enter image description here

现在仅根据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[μ, σ]] /. sol
  

3.08022

Variance[LogNormalDistribution[μ, σ]] /. sol
  

2.69476

检查符号评估和定义以理解计算。

enter image description here