【发布时间】:2017-09-09 09:09:05
【问题描述】:
我正在寻找一种算法(最好使用 c++ 中的库)或一些想法来告诉我某些数字在统计上是否以均匀的方式分布在一个区间中。想象一下我有两个字符串:第一个没有错误,第二个在某些时候有一些错误。我想检查字符串中错误的位置是否具有统计意义。
考虑以下示例。在第一种情况下,错误是均匀分布的,而在第二种情况下,它们都在字符串的末尾,我的算法应该对此发出一些警告。
error-free string: 0110110101010110101 (3 errors occur at pos:5,12,15 )
erroneous string : 0110010101000100101
第二个例子:
error-free string: 0110110101010110101 (3 errors occur at pos:17,18,19 )
erroneous string : 0110110101010110010
我可以说第一个数据的错误是正常的,但第二个不是。
到目前为止,我最终得出了这个想法:我想将字符串拆分为相等的 bin,假设字符串长度为 100。我选择有 10 个 bin,大小为 10。然后我查看字符串中的错误总数我们可以假设为 10。我希望在每个 bin 中看到 1 个错误。现在我计算从统计上我的观察与我的预期相差多远。有人知道这种方法是否正确吗?如果可行,每个垃圾箱应该有多大。它也应该取决于错误的数量吗?
【问题讨论】:
-
查找卡方检验。请记住,就其性质而言,统计测试可能会出现误报和误报。
-
直方图+该直方图上常数的最小二乘拟合怎么样?卡方会告诉您分布有多好,因为它模拟了一个常数。
标签: c++ algorithm statistics distribution