函数来估计值范围的偏差分布?

时间:2017-08-14 17:08:46

标签: c# python statistics distribution

我需要编写一个返回IEnumerable>的函数。其中每个元组代表生成范围的每个成员,以及与倾斜分布的概率近似的相应概率。

我设想了一个函数签名:

IEnumerable<Tuple<double, double>> SkewedRange(double min, double max, double mean, double step = 1.0)

例如,1.0到10.0之间的范围,平均值为2.3,默认步骤为1.0,我想要一个像这样的值列表:

Item1  Item2  Histogram (for demo only)
1.0    p1     *****
2.0    p2     *********
3.0    p3     *******
4.0    p3     *****
5.0    p3     ***
6.0    p3     **
7.0    p3     **
8.0    p3     *
9.0    p3     *
10.0   p10    *

这些值的结果图将类似于偏差分布,其峰值在2-3之间。

问题:

  1. 这是可行的吗?如果是这样,那么在1到5的范围内实施起来有多难。
  2. 是否有任何可以使用或已经实现此类功能的开源库。
  3. 任何人都知道帮助像我这样的人理解这个问题域的任何资源。我已经对此进行了大量的研究,但统计理论中的一切都很重要,使用符号的方程对于非统计学家而言很难消耗更少的编码。
  4. 我还在考虑其他任何事情吗?

1 个答案:

答案 0 :(得分:0)

您要求的是从分布中采样,该分布被截断到给定范围并且在该范围内具有其模式(最大密度)。

我认为它与分发的确切含义并不重要。所以我假设截断的正态分布是可以的。

让a和b成为一些数字。这些描述了凹凸。设c和d为其他数字。这些指定了范围。

设x是来自正态分布的随机样本,均值为0,方差为1.在C#中可能存在这样的函数,但我不知道它的名称。然后a + b x也是正常的,其中均值a和方差b ^ 2。

如果a + b x介于c和d之间,则将其输出为一个样本。否则再试一次,直到你得到一个介于c和d之间的数字。

您可以改变a,b,c和d,看看你得到了什么。希望这会有所帮助。