【问题标题】:Finding offset between two datasets containing outliers查找包含异常值的两个数据集之间的偏移量
【发布时间】:2020-04-27 13:37:02
【问题描述】:

假设我有以下点列表,按时间戳排序:

A = [10, 10, 10, 20, 15, 15, 5, 25]
B = [5, 5, 15, 10, 10, 0, 0, 20]

我正在尝试匹配两个数组之间的元素,假设存在一些未知的偏移量以及一些不匹配项。如果我只是简单地取这些数组的差异,我会得到:

C = A - B = [5, 5, -5, 10, 5, 15, 5, 5]

这并没有显示出太多的模式。但是,如果我意识到省略 A[2]B[6],我会:

A = [10, 10, 20, 15, 15, 5, 25]
B = [5, 5, 15, 10, 10, 0, 20]
C = [5, 5, 5, 5, 5, 5, 5]

关于如何找到这个偏移量的任何想法(在本例中为 5)?它不一定是中位数,我不希望它只是模式,因为解决方案应该扩展到偏移量在小范围内(例如,在 4.5 和 5.5 之间)的情况。我在想 RANSAC(系数 a = 1)可能会有所帮助,但不太确定。谢谢

【问题讨论】:

    标签: timestamp regression offset matching ransac


    【解决方案1】:

    我尝试使用“稳健”回归,在该回归中,我使用误差绝对值的最低总和而不是标准误差平方和的拟合目标拟合数据。使用您的 A 和 B 值以及直线方程“B = a + (b * A)”,这会产生 a 和 b 的拟合值:

    a = -4.9999999999999991E+00
    b =  1.0000000000000000E+00
    

    实际上是“B = A - 5”

    【讨论】:

    • 如果数据是 A = [100, 10, 50, 170, 400, 3000], B = [5, 45, 165, 395, 2995, 0] 会怎样。在这种情况下,我正在寻找的偏移量仍然是 5,但是您没有任何“好的”数据点可以适应,因为 A 中的第一个元素是不匹配的,它将所有内容都转移(另一个非B) 中的匹配为 0。最初,偏移量数组为 C = [95, -35, -115, -15, -2595, 3000](无模式),但在去除异常值 A[0] 和 B[5] 后,偏移量为C = [5, 5, 5, 5, 5]。
    • 我同意你的观点,对数据的更改与第一种情况不同。
    猜你喜欢
    • 2019-10-22
    • 1970-01-01
    • 2019-01-20
    • 2019-11-13
    • 2016-03-21
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    • 2018-09-07
    相关资源
    最近更新 更多