真值为零时如何计算相对误差?


32

当真实值为零时,如何计算相对误差?

假设我有和。如果我将相对误差定义为:xtrue=0xtest

relative error=xtruextestxtrue

那么相对误差总是不确定的。如果相反,我使用定义:

relative error=xtruextestxtest

那么相对误差总是100%。两种方法似乎都没有用。还有其他选择吗?


使用您的第一个定义,我对蒙特卡洛模拟中的参数偏差有完全相同的问题。我的参数值之一是0,所以我没有为此特定参数计算参数偏差...
Patrick Coulombe 2014年

2
解决方案是在这种情况下不要使用相对误差。
马克·克莱森

2
一种选择,如果不是您所问的问题,它会回答您的意图,那就是使用一种稍微不同的度量,当相对误差较小时,该度量与相对误差非常一致,例如2(xtruextest)/(|xtrue|+|xtest|)。(使用0xtrue=xtest=0)。此特定的解决方案是,它是在不变的度量单位的变化下(因为它不涉及任意常数)通用。
whuber

@whuber我认为您应该考虑发布该评论作为答案,因为它似乎优于现有评论。
银鱼

@Silver您是对的-很抱歉张贴答案作为评论。因此,我已将该评论略微扩展为一个答案。
ub

Answers:


39

根据目的,有很多选择。


常见的一种是实验室质量控制程序中使用的“相对百分比差异”或RPD。尽管您可以找到许多看似不同的公式,但是它们全都归结为将两个值的差与它们的平均幅度进行比较:

d1(x,y)=xy(|x|+|y|)/2=2xy|x|+|y|.

这是一个带符号的表达式,当超过y时为正,而当y超过x时为负。它的值始终在22之间。通过在分母中使用绝对值,它可以合理地处理负数。我可以找到的大多数参考,例如新泽西州DEP站点修复计划数据质量评估和数据可用性评估技术指南,都使用d 1的绝对值。xyyx22d1因为它们仅对相对误差的大小感兴趣。


一个维基百科的文章相对变化与差异指出,

d(x,y)=|xy|max(|x|,|y|)

通常在浮点数值算法中用作相对公差测试。同一篇文章还指出,像公式d d1d可以推广到

df(x,y)=xyf(x,y)

函数直接取决于和的大小(通常假设xy为正)。例如,它提供了它们的最大值,最小值和算术平均值(带和不带x和a 的绝对值)。fÿxyxyx),但是可以考虑其他种类的平均值,例如几何平均值y,谐波均值2/1/|x|+1/|y|Lp均值|x|p+|y|p/21 / p。(d1对应于p=1|xy|2/(1/|x|+1/|y|)Lp((|x|p+|y|p)/2)1/pd1个p=1个对应于限制为 p d。)可能会根据 x y的预期统计行为来选择 f。例如,对于 f而言,几何平均值的近似对数正态分布将是一个有吸引力的选择,因为在这种情况下,它是有意义的平均值。pfxyf


当分母等于零时,这些公式中的大多数都会陷入困境。在许多应用中,当时,将差值设置为零是不可能的,或者是无害的。x=y=0

请注意,所有这些定义都具有基本不变性:无论相对差函数是多少,当将参数统一按比例缩放时,它都不会改变。dλ>0

d(x,y)=d(λx,λy).

正是这个属性使我们可以考虑 是一个相对的差异。因此,尤其是像d

d(x,y)=? |xy|1+|y|

根本没有资格。无论它具有什么优点,它都没有表现出相对的差异。


故事还没有结束。 我们甚至可能发现将不变性的含义推得更远是有益的。

该组的所有有序对实数的,其中X ÿ 被认为是相同的λ X λ ÿ 实射影线- [R P 1。在这两种拓扑感和代数意义上,- [R P 1是一个圆。任何X Ý 0 0 (x,y)(0,0)(x,y)(λx,λy) RP1RP1(x,y)(0,0)确定通过原点的独特线。当x 0时,其斜率为y / x;否则,我们可能会认为其斜率是“无限大的”(并且为负或正)。该垂直线的邻域由具有极大的正斜率或极大的负斜率的线组成。我们可能参数的所有这些线在它们的角而言θ = 反正切Ý / X ,用- π / 2 < θ π / 2(0,0)X0ÿ/Xθ=Arctanÿ/X-π/2<θπ/2。与每个这样的是圆上的一个点,θ

ξη=cos2θ2θ=X2-ÿ2X2+ÿ22XÿX2+ÿ2

因此,在圆上定义的任何距离都可以用来定义相对差。

作为可能导致这种情况的示例,请考虑圆上通常的(欧几里得距离),其中两点之间的距离就是两点之间的角度大小。的相对差异是至少当,对应于2 θ = π / 2(或2 θ = - 3 π / 2Xÿ具有相反的符号)。从这个角度来看,正数xy的自然相对差X=ÿ2θ=π/22θ=-3π/2XÿXÿ就是到该角度的距离:

d小号Xÿ=|2ArctanÿX-π/2|

首先,这是相对距离-但即使y = 0也可以使用。此外,它不炸毁,而是(作为有符号的距离)之间的限制- π / 2π / 2,因为这曲线表示:|xy|/|y|y=0π/2π/2

数字

这暗示了在选择一种测量相对差异的方法时,选择的灵活性。


感谢您提供全面的答案,您认为这条线的最佳参考:“在浮点数值算法中经常用作相对公差测试。同一篇文章还指出,像d1d1和d∞d∞这样的公式可能是笼统地
归结

1
顺便说一句,没关系,我为此找到了学术参考:) tandfonline.com/doi/abs/10.1080/00031305.1985.10479385
Hammad Haleem

4
为什么未选择此答案?(很抱歉,如果这不是适当的评论,但是到目前为止,这是更好的答案)
Brash Equilibrium

2
@Brash我很感激大家。接受是原始提议者的唯一省份:没有人可以覆盖它(删除已接受的帖子除外)。在某些情况下,当我感觉与您一样时,我会发表评论,明确指出我认为某些答案比其他答案更好或更值得注意的方式和原因。即使这不能改变任何内容,此类评论也可能使该材料对将来的读者更有用或更易理解:最终,这是我们在此站点上工作的重点。
ub

1
@KutalmisB感谢您注意:“ min”根本不属于此。看来这可能是一个更复杂的公式的痕迹,该公式处理了y的所有可能符号,后来我对其进行了简化。我已将其删除。xy
ub

11

首先,请注意,在计算相对误差时,通常会取绝对值。

解决该问题的常见方法是计算

relative error=|xtruextest|1+|xtrue|.

3
这是有问题的,因为它根据为值选择的度量单位而变化。
ub

1
没错 这不是解决问题的完美解决方案,但是它是一种常见的方法,当缩放比例合适时,它会很好地起作用。x
Brian Borchers 2014年

您能否详细解释“规模合理”的含义?例如,假定数据来自为0.000001摩尔/升之间的浓度设计的水性化学测量系统的校准,该精度可以达到三个有效数字。因此,除明显错误的测量值外,您的“相对误差”将始终为零。有鉴于此,您将如何精确缩放这些数据?00.000001
ub

1
您的示例就是变量未按比例缩放的示例。“按比例缩放”是指对该变量进行缩放,以使其在较小的范围内(例如几个数量级)接近1。还有更严重的扩展问题,这种简单的方法还不够用。
Brian Borchers 2014年

2
任何参考这种方法?这个方法的名字?谢谢。
CroCo

0

我有一段时间对此感到困惑。最后,这是因为,如果您试图测量相对于零的相对误差,那么您将试图强制某些根本不存在的东西。

如果您考虑一下,则在将相对误差与从零开始的误差进行比较时,就是在将苹果与橙子进行比较,因为从零开始的误差等于测量值(这就是为什么除以测试编号)。

例如,考虑表压(来自大气的相对压力)与绝对压力的测量误差。假设您使用仪器在理想的大气条件下测量表压,并且设备在现场测量了大气压,因此它应记录0%的误差。使用您提供的公式,首先假设我们使用测得的表压来计算相对误差:

relative error=Pgauge,truePgauge,testPgauge,true
然后Pgauge,true=0Pgauge,test=0,你没有得到0%的误差,而是未定义。这是因为实际百分比误差应使用如下绝对压力值:
relative error=Pabsolute,truePabsolute,testPabsolute,true
现在Pabsolute,true=1atmPabsolute,test=1atm您会得到0%的错误。这是相对误差的正确应用。使用表压的原始应用程序更像是“相对值的相对误差”,与“相对误差”不同。在测量相对误差之前,需要将表压转换为绝对压力。

您的问题的解决方案是确保在测量相对误差时您正在处理绝对值,因此不可能为零。然后,您实际上得到了相对误差,并且可以将其用作不确定性或实际误差百分比。如果必须坚持相对值,则应该使用绝对误差,因为相对(百分比)误差将根据参考点而变化。

很难在0上定义具体的定义...“零是表示为0的整数,当用作计数数字时,意味着不存在任何对象。” -Wolfram MathWorld http://mathworld.wolfram.com/Zero.html

随意选择,但零本质上什么都没有,它不存在。这就是为什么在计算相对误差时使用表压没有意义的原因。表压尽管有用,但假设在大气压下没有任何压力。我们知道并非如此,因为它的绝对压力为1 atm。因此,相对于无的相对误差,只是不存在,它是不确定的。

简而言之,请随意提出反对:任何快速解决方案(例如,将最低值增加一个)都是有缺陷且不准确的。如果您只是想尽量减少错误,它们仍然会很有用。如果您要准确地测量不确定性,则不要太多...


0

MAPE公式

寻找MAPE,

这是一个值得商bat的话题,许多开源贡献者都在上述话题上进行了讨论。迄今为止,最有效的方法是开发人员遵循。请参考此PR了解更多信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.