计算线性百分比差异

时间:2020-03-24 00:36:24

标签: python numpy statistics

我有两个相关的数据集,其中一个可以略低于0。

我正在尝试计算两者之间的“线性”百分比差异。

我写了一些示例代码: perc [1]是正确的百分比方法,但是在最后两个示例情况下,双方的百分比差异都不是“线性的”(即-87与700相比)-我需要它们相等或线性相关计算,而我猜后三种方法是线性的。我喜欢perc [3],因为它只是绝对的差异并且被放大,但是有点无单元。以这两个用例的均值为分母,也许[4]或[5]是最准确的?

(gdb) help skip
Ignore a function while stepping.

Usage: skip [FUNCTION-NAME]
       skip [FILE-SPEC] [FUNCTION-SPEC]
If no arguments are given, ignore the current function.

FILE-SPEC is one of:
       -fi|-file FILE-NAME
       -gfi|-gfile GLOB-FILE-PATTERN
FUNCTION-SPEC is one of:
       -fu|-function FUNCTION-NAME
       -rfu|-rfunction FUNCTION-NAME-REGULAR-EXPRESSION
...

统计不是我的强项。任何人都可以提供合理的理由说明为什么我应该使用[4]或[5]。我知道0、1、2和3可能不是这里的正确选择

1, 8: [12.5, -87.5, 700.0, -700, -155.55555555555557, 155.55555555555557]
8, 1: [800.0, 700.0, -87.5, 700, 155.55555555555557, -155.55555555555557]

1 个答案:

答案 0 :(得分:1)

参照此Wikipedia article相对百分比通常采用以下形式

| x-y | / | f(x,y)|

| x-y |中的绝对值如果您有参考点,可以将其删除,以得到负百分比。如果这对您没有意义,则应保留。

函数| f(x,y)|是通常所说的缩放因子。您可以在这里选择多个选项,具体取决于应用程序。

您可以像在(1)中一样仅取f(x,y)= y。通常,这是在比较实验值和理论值时完成的,例如在某些实验中进行测量后;或衡量过去状态的变化时。但是请注意,它需要一个参考点(理论值或更改完成前的值),并且由于您的缩放比例会发生变化,因此它不具有您要查找的“线性”属性交换x和y时(如果使用1和2,则为1/2 vs 1)。这是因为,对于值为2的值,突然更改为10意味着增加400%,但是将10变为2则意味着减少80%。

因此,您需要一些函数f在交换参数时不会改变。在数学上,这称为 symmetric function the article referenced before中显示了许多示例。我建议(| x | + | y |)/ 2,但尝试其他方法以了解更合理的方法。

    perc6 = abs(x-y) / ((abs(x)+abs(y)) / 2) * 100

要通过绘图进行测试,请尝试固定y的值(例如10),并进行x与perc_calc(x, 10)[6]的散点图。