Algorithm 确定可接受方差的算法

Algorithm 确定可接受方差的算法,algorithm,function,math,Algorithm,Function,Math,我有一个应用程序,它比较两个不同报告中的数字。当两个数字之间的差异超过某个阈值时,它将提醒用户。我本来打算使用10%的阈值,但我意识到当计数a为ex.10000时,10%的方差太高(这意味着如果有999,这将是多余的),但当计数a仅为10时,10%的方差太低(这意味着2-3/10将是可接受的方差) 只是不知道怎么做,除了编码 IF CountA <= 10 THEN AcceptableRate = 20% If CountA > 10 THEN AcceptableRate = 1

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

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

IF CountA <= 10 THEN AcceptableRate = 20%
If CountA > 10 THEN AcceptableRate = 15%
如果计数为10,则可接受率=15%
有人知道如何从数学上解释我在这里要做的事情,以及如何实现它吗?
我相信,对于数学比我好的人来说,这可能是一个简单的问题。

如果我理解正确,你试图比较两组应该相似的不同数据,你想定义两组数据之间的差异程度,这是某种可接受的程度

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

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

另一种可能性是使用a来获得一个样本来自另一个样本的概率


这些都是我的建议,然而,决定这种事情的临界值总是主观的。我在研究中使用的一个标准是,这可能对您也有帮助。

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

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

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

另一种可能性是使用a来获得一个样本来自另一个样本的概率


这些都是我的建议,然而,决定这种事情的临界值总是主观的。我在研究中使用的一个标准是,这可能对你也有帮助。

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

AcceptableN = 10 * log10(N) + 2
其中,
AcceptableN
是可接受的异常值数量,N是总数据集大小,然后
AcceptableRate=100*AcceptableN/N


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

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

AcceptableN = 10 * log10(N) + 2
其中,
AcceptableN
是可接受的异常值数量,N是总数据集大小,然后
AcceptableRate=100*AcceptableN/N


虽然没有明确的直接数学公式给你你想要的,但是在你更清楚地知道你认为标准对于不同的N.</P>

除了前面回答中提到的公式外,还考虑使用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

除了前面回答中提到的公式外,还考虑使用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

我发现标准差比方差更直观,因为它是用与你所处理的潜在不确定量相同的单位来衡量的。也许标准偏差的某个百分比是一个合适的衡量标准,因为如果你选择了正确的百分比,它将把你的两个例子推向正确的方向。

我发现标准偏差比方差更直观,因为它是用与你所处理的潜在不确定量相同的单位来度量的。也许标准偏差的某个百分比是一个合适的衡量标准,因为如果你选择了正确的百分比,它将把你的两个例子推向正确的方向。

我认为这些信息将有助于我努力实现的目标。谢谢我认为这些信息将有助于我努力实现的目标。谢谢