测量离散值的均匀分布

时间:2014-09-18 07:00:48

标签: algorithm math

我有一个n个整数值x []的数组,范围从低到高。因此m:=高 - 低+ 1个可能的值。 我现在正在搜索一种算法,该算法计算输入值在inteval [low,high]上的分布均匀程度。 它应该输出,例如如果值尽可能均匀,则为1;如果所有x [i]相同,则为0。

现在的问题是算法必须使用比m更低且远远高于m的算法。

谢谢

2 个答案:

答案 0 :(得分:1)

您可以计算Kolmogorov-Smirnov statistic,这是经验累积质量函数与测试cmf的最大绝对偏差,在这种情况下是一条直线(因为测试pmf是均匀分布)。

或者您可以计算数据的discrepancy

答案 1 :(得分:0)

我找到了适合我案例的解决方案:

首先,我计算值的累积直方图 (将[min,max]的每个可能值v映射到| {x [i],x [i]< = v} |)的离散函数

然后我以平方的方式计算通过直方图(从0,0到m,n)到对角线的距离:将直方图中每个点的平方距离与该线相加。

此算法不提供标准化规范,但适用于非常少且非常多的样本。我只需要算法通过它们的均匀性来比较两组或更多组的值,这个算法就是为我做的。