1

我有一个应用程序正在比较来自两个不同报告的数字。当两个数字之间的差异超过某个阈值时,它将提醒用户。我原本打算使用 10% 的阈值,但我意识到当 Count A 是 ex 时。10,000 10% 的方差太高(意味着如果有 999 会过高),但是当计数 A 只有 10 时,10% 的方差太低(意味着 2-3 / 10 将是可接受的方差) .

只是不知道怎么做,除了编码

IF CountA <= 10 THEN AcceptableRate = 20%
If CountA > 10 THEN AcceptableRate = 15%

有人知道如何用数学方法解释我在这里尝试做什么,以及如何实现吗?我敢肯定,对于比我更擅长数学的人来说,这可能是一个简单的问题。

4

4 回答 4

4

如果我理解正确,您正在尝试比较两组应该相似的不同数据,并且您想定义两个数据集之间的差异水平,这是某种可接受的水平。

我想我会采取的方法取决于几个因素,首先,你知道这两个数据集的基本分布吗?例如,如果数据是正态分布的,是否不可能找到每个数据存在于另一个集合中的概率?

另一方面,可以使用卡方检验来检查两个数据集之间的差异。

另一种可能性是使用Kolmogorov-Smirnov 检验来获得一个样本来自另一个样本的概率。

这些将是我的建议,但是决定此类事物的截止值始终是主观的。我在学习期间使用的一个标准是Chauvenet 的标准,这可能对你也有帮助。

于 2013-05-14T17:38:08.390 回答
0

基本上,您需要一个标准,它是数据集大小的更复杂的函数,而不仅仅是比例。从您提供的示例中,我猜想包括一个基于数据集大小日志的术语可能是您想要的。玩弄像这样的表达

AcceptableN = 10 * log10(N) + 2

其中AcceptableN是可接受的异常值数量,N 是总数据集大小,然后AcceptableRate = 100*AcceptableN / N.

但是,在更清楚地了解您认为不同 N 的标准应该是什么之前,没有明确的直接数学公式可以给您想要的东西。

于 2013-05-14T18:15:50.727 回答
0

除了先前答案中提到的公式之外,还可以考虑使用 n 的某个幂(其中 n 是来自一份报告或另一份报告的参考号)作为容差。这是一些 python 代码及其结果,说明了 n 的几种不同幂:

j=10   
for i in range(6):
    print '{:8} {:8.1f} {:8.1f} {:8.1f} {:8.1f}'.format(j, j**0.33, j**.35, j**.37, j**.39)
    j *= 10

      10      2.1      2.2      2.3      2.5
     100      4.6      5.0      5.5      6.0
    1000      9.8     11.2     12.9     14.8
   10000     20.9     25.1     30.2     36.3
  100000     44.7     56.2     70.8     89.1
 1000000     95.5    125.9    166.0    218.8
于 2013-05-14T18:27:56.867 回答
0

我发现标准偏差比方差更直观,因为它与您正在处理的潜在不确定量的单位相同。也许标准偏差的某个百分比是合适的度量,因为如果您选择正确的百分比,它将推动您的两个示例朝着正确的方向发展。

于 2013-05-14T18:56:53.403 回答