【问题标题】:robust online algorithm for semi-variance半方差的鲁棒在线算法
【发布时间】:2012-01-20 00:06:23
【问题描述】:

我正在寻找与welford's algorithm 等效的在线计算半方差(下行部分方差)。有没有人知道一个好的参考?这样的算法还存在吗?

编辑:半方差相对于固定目标的情况是微不足道的。问题是计算与均值相关的半方差

【问题讨论】:

  • 为什么welford的算法对你来说不够好?它具有在线性质。
  • @amiri:它处理方差而不是半方差

标签: algorithm math statistics numerical


【解决方案1】:

我相信答案是不存在的,我将尝试概述为什么会这样。

考虑由两个标准定义的“有用”在线算法:

  1. 在处理过程中必须有固定的内存需求。
  2. 每次更新都需要固定的时间。

这比顺序/增量/在线算法的字面定义更严格,它实际上只要求一次可以一次传递数据。但是,请考虑如果 1) 或 2) 不正确,那么在处理足够多的元素之后,运行算法所需的内存或时间最终将变得不可行。通常,使用在线算法的原因之一是它们可以连续使用,而不必担心性能会慢慢变差。另外,请注意,有在线算法可以计算满足 1 和 2 的均值和方差,我认为这就是我们的目标。

现在到提出的问题。在处理过程中,平均值会随着每一位新数据的变化而变化。这反过来意味着低于平均值的一组观测值将会改变。发生这种情况时,我们需要根据集合“delta”调整我们的运行半方差,该集合定义为不在旧均值以下的元素集和新均值以下的元素集之间的并集的元素。在存在新数据的情况下,我们必须在将旧半方差调整为新半方差的过程中计算这个增量。

现在让我们考虑计算这个集合增量的复杂性。我们将需要找到介于旧均值和新均值之间的所有元素。我们将始终跟踪旧均值,而新均值可以在固定时间内增量计算,因此不会造成任何问题。然而,要计算增量本身,除了要求我们跟踪集合中所有先前的元素之外,没有其他办法。这立即打破了在线算法的内存条件。其次,即使我们对集合中的先前元素进行排序,找到旧均值和新均值之间的元素的最佳速度也是 O(log(number of elements)),这比固定的要差。所以最终,有了足够的元素,在线算法不仅需要比我们更多的内存,而且还需要更多的时间。

【讨论】:

    【解决方案2】:

    http://www3.sympatico.ca/jean-v.cote/computation_of_semi-variance.pdf P.S.:这不是增量计算。我有另一个想法。我会及时通知你的。

    【讨论】:

    • 我不确定双关语是否有意,但由于这是一种“两遍算法”,它绝对不是在线(增量)算法
    • 抱歉,其他算法很难适应半方差的计算,如果不是不可能的话。
    【解决方案3】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 2020-05-06
    • 1970-01-01
    • 2014-11-16
    • 2020-08-20
    • 2021-09-17
    相关资源
    最近更新 更多