如何标准化趋势数据?

时间:2018-07-17 14:34:17

标签: algorithm math statistics normalization trending

假设我要计算两个数据点(A和A')的速度,每个数据点都有一个分数,并发布一个时间(A'是A的未来版本,并且得分更高)。这将是

[A'(score) - A(score)] / [A'(time published) - A (time published)]

我要捕捉的是高速趋势。这意味着我希望分数从20上升到200,而权重比8500上升到9000。因此,我想通过将分数除以基线来对数据进行归一化。

例如如果A(分数)为2,而A'(分数)为3,则基线为2,因此在上式中,

A'(score) - A(score) would be (3/2 - 2/2)

但是,这意味着当数字这么低时,速度会非常高(另一方面

9000/8500 - 8500/8500 
假定时间差仅在此示例中为常数,但是

产生的速度非常低,但是通常时间差是可变的。

是否有任何方法可以降低低起点得分的影响,同时又允许从20到200的跳跃是有意义的?谢谢。

1 个答案:

答案 0 :(得分:2)

有两种查看方法。谁都可以给你想要的东西。

  • 我的第一个想法是,您的问题非常接近于提供您的答案。通过将您的第一个计算称为速度-分数随时间的变化率,您给了自己一个重要的提示。然后,您可以查看其加速度-速度随时间的变化率。那是:

    (A''(score) - A'(score)) - (A'(score) - A(score))

    请注意,我不是按时间划分的,因为您说每次测量的时差是恒定的。然后,您将每个值除以一个常数,这样效率低下,并且可能无法进一步澄清。

  • 不过,您似乎更可能希望从一个分数到另一个分数的变化有多重要。我怀疑您想要的是:

    (A'(score) - A(score)) / A(score)

    这是(a-b)/ b,减小到(a / b)-1。如果您不关心-1,则可以看到最简单的分数变化方法是:

    A'(score)/A(score)

这显示了分数从一个步骤到下一个步骤的增长率。


在澄清后进行修改

给出您的评论,可变的时间速率会使逻辑更加复杂,但仍然可行。

在这种情况下,您确实希望像以前那样计算速度:

V = A'(score) - A(score) / A'(time) - A(time)

但是您想根据先前的速度对其进行归一化:

result = V'/V

然后,它变得类似于“加速”示例-它需要3个样本才能很好地了解变化率。如果一路拼写清楚,您会得到类似的东西:

result = (A''(score) - A'(score))/(A''(time) - A'(time)) / (A'(score) - A(score))/(A'(time) - A(time))

您可以做一些数学运算来推算这些数字,但实际上没有比这更漂亮的结果了。