【问题标题】:How to distribute a cost in a normal distribution如何在正态分布中分配成本
【发布时间】:2015-07-18 00:35:05
【问题描述】:

我找到了有关以编程方式获取生成正常随机数的指南;但是,我需要分散一个数字,以便它反映正态分布(在尽可能少的计算时间内)。

例如,我有一件在 2050 年价值 500,000 美元的商品,我想以 20 年的标准差将其摊开。这将导致第一个标准差(2030 年至 2070 年)下的区域具有 (68% * $500,000) 的成本。

我可以在我的代码中使用一个公式来实现这一点吗?我现在能想到的唯一方法是使用 Box Muller 随机生成器并循环遍历每一美元来生成分布,这绝对不是有效的。

【问题讨论】:

标签: c# algorithm statistics normal-distribution


【解决方案1】:

注意,正态分布下的总值为1。因此,您只需找出曲线在某个时间范围内累积的百分比,然后乘以总成本即可。

您需要正态 CDF(累积密度函数)(here it is in C#),而不是正态分布。

因此,总结一下:要找到给定年份范围内的成本,您可以找到这些年份的标准化值,将它们代入 CDF 函数,然后乘以总成本:

start = (start_year-0.5-median)/stddev;
end = (end_year+0.5-median)/stddev;
cost = total_cost*(Phi(end)-Phi(start));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 2018-05-15
    • 1970-01-01
    • 2016-09-13
    • 2022-11-19
    • 1970-01-01
    相关资源
    最近更新 更多