寻找平均GPS点


11

我需要编写一个程序以从大量点中找到平均GPS点。

实际上,发生以下情况:

  • 每个月,一个人记录一个相同静态资产的GPS点。
  • 由于GPS的性质,这些点每个月都会略有不同。
  • 有时,一个人犯了一个错误,并在完全不同的位置记录了错误的资产。
  • 每个GPS点都有确定性权重(HDOP),该权重表示当前GPS数据的准确性。HDOP值较高的GPS点优先于HDOP较低的GPS点。

我如何确定以下内容:

  • 处理具有2个值与单个值(如age)的数据。(找到人口的平均年龄)
  • 确定离群值。在下面的示例中,这些值为[-28.252,25.018]和[-28.632,25.219]
  • 排除异常值后,在其中找到平均GPS点可能是[-28.389,25.245]。
  • 如果可以使用HDOP值为每个点提供的“权重”,那将是一个额外的奖励。

替代文字


1
这个答案足够类似,可以帮助您平均分stats.stackexchange.com/questions/2493/…,将权重合并到该框架中很简单。我认为您将能够使用一些简单的启发式方法来识别离群值,但这并不妨碍您采用像Stephan建议的那样的经验性方法。
安迪W

Answers:


8

多元数据的问题之一是确定然后解释一个合适的度量标准来计算距离,因此提出了巧妙但有些难以解释的概念,例如马氏距离。但是在这种情况下,当然选择是显而易见的- 欧氏距离。我建议一个简单的启发式算法,例如:

  1. 计算数据点的(未加权)质心,即两个坐标的(未加权)平均值
  2. 计算质心的所有读数的欧几里得距离
  3. 排除任何超出一定距离的读数(要根据您的经验和对技术的了解来确定,或者不能通过反复试验验证交叉误差 -100m,1km,10km ??)。
  4. 计算剩余点的两个坐标的加权平均值,然后按HDOP分数的倒数(或它的某些单调函数)加权-我快速查看了问题中链接的Wikipedia页面,并认为您可能不需要这样一个功能,但我需要进一步研究以确保)

显然,有几种方法可以使这种复杂化,例如降低异常值的权重或使用M估计量,而不是简单地排除它们,但是我不确定在这里是否真的需要这种复杂性。


3

Rob Hyndman最近提出了一个有关在多元数据中检测异常值问题。答案可能提供了两种可能的方法(否则,您可能需要将查找二维离群值的问题放在一个单独的问题中)。

然后,您可以按分量平均剩余的GPS数据分量-将所有第一个分量相加并除以点数,得出平均值的第一个分量。与第二个组件相同。

可以通过HDOP加权该平均值。对第一部分的乘积求和,然后乘以相应的HDOP得分,然后将总和除以HDOP得分的总和。与第二个组件相同。

我将自由删除“正态分布”标签...


感谢@Stephan Kolassa,这将有助于寻找解决方案。
菲利普·富里

2

将HDOP称为自变量。以后用它来加权。因此,您有一组坐标-称为(x1,y1); (x2,y2)等...首先忽略异常值。将x坐标的加权平均值计算为[(x1 * h1)+(x2 * h2)+ .... +(xn * hn)] / [sum(h1,h2,...,hn)]其中h1,h2,...是HDOP值。对y坐标执行相同的操作。这将为每个坐标给出一个相当准确的平均值。

处理异常值可能会有些棘手。您怎么知道它们是否是异常值?严格来说,您需要确定与观测值的统计拟合,并在置信区间内确定观测值是否真实。看着这个问题确实浮现在脑海。但这可能是很多工作,而且我敢肯定您不想参与其中。也许使用一个近似值?假设您假设平均坐标值是一个很好的平均值。然后确定标准偏差的值。我认为标准dev或中毒分配是1 /(平均值)。然后使用正态分布和95%的置信区间进行近似。假设观察值超出间隔(平均值-* 1.645 * std dev;平均值+ 1.645 * std dev),那么它是一个离群值吗?快去

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.