Znajdowanie średniego punktu GPS

11

Muszę napisać program, aby znaleźć średni punkt GPS z populacji punktów.

W praktyce dzieje się tak:

  • Każdego miesiąca osoba rejestruje punkt GPS tego samego zasobu statycznego.
  • Ze względu na charakter GPS punkty te różnią się nieznacznie każdego miesiąca.
  • Czasami osoba popełnia błąd i zapisuje niewłaściwy assest w zupełnie innym miejscu.
  • Każdy punkt GPS ma wagę pewności ( HDOP ), która wskazuje, jak dokładne są aktualne dane GPS. Punkty GPS z lepszymi wartościami HDOP są preferowane niż niższe.

Jak ustalić następujące elementy:

  • Postępuj z danymi z 2 wartościami i pojedynczymi wartościami, takimi jak wiek. (Znajdź średni wiek w populacji osób)
  • Określ wartości odstające. W poniższym przykładzie byłyby to [-28,252, 25,018] i [-28,322, 25,219]
  • Po wykluczeniu wartości odstających, znajdź w tym punkcie średni punkt GPS [-28.389, 25.245].
  • Byłby to bonus, gdyby mógł pracować z „wagą” zapewnianą przez wartość HDOP dla każdego punktu.

alternatywny tekst

Philip Fourie
źródło
1
Ta odpowiedź jest na tyle podobna, aby pomóc ci w uśrednianiu punktów, stats.stackexchange.com/questions/2493/… , łatwo jest włączyć wagi do tego frameworka. Sądzę, że byłbyś w stanie użyć prostych heurystyk do zidentyfikowania wartości odstających, ale nie wyklucza to przyjęcia bardziej empirycznego podejścia, jak sugerował Stephan.
Andy W

Odpowiedzi:

8

Jednym z problemów z danymi wielowymiarowymi jest decyzja, a następnie interpretacja, odpowiedniej metryki do obliczania odległości, stąd sprytne, ale nieco trudne do wyjaśnienia pojęcia, takie jak odległość Mahalanobisa. Ale w tym przypadku z pewnością wybór jest oczywisty - odległość euklidesowa . Sugerowałbym prosty algorytm heurystyczny, taki jak:

  1. Oblicz (nieważony) środek ciężkości punktów danych, tj. (Nieważony) środek z 2 współrzędnych
  2. Oblicz odległość euklidesową wszystkich odczytów od środka ciężkości
  3. Wyklucz wszelkie odczyty, które są dalej niż pewna odległość (do ustalenia na podstawie twojego doświadczenia i znajomości technologii, lub w przypadku braku weryfikacji krzyżowej prób i błędów - 100m, 1km, 10km ??)
  4. Oblicz średnią ważoną obu współrzędnych pozostałych punktów, ważąc przez odwrotność wyniku HDOP (lub jakąś jego funkcję monotoniczną - rzuciłem okiem na stronę wikipedii połączoną z pytaniem i myślę, że może nie potrzebujesz takiej funkcja, ale musiałbym ją przestudiować, aby się upewnić)

Istnieje wiele sposobów na uczynienie tego bardziej wyrafinowanym, na przykład zmniejszanie wartości odstających lub stosowanie estymatorów M zamiast zwykłego ich wykluczania, ale nie jestem pewien, czy takie wyrafinowanie jest naprawdę konieczne.

jeden przystanek
źródło
3

Rob Hyndman zadał niedawno pytanie dotyczące wykrywania wartości odstających w danych wielowymiarowych . Odpowiedzi mogą zawierać kilka możliwych podejść (w przeciwnym razie możesz znaleźć pytanie o znalezienie wartości odstających 2-osobnych w osobnym pytaniu).

I możesz uśrednić swój pozostały składnik danych GPS według składnika - dodaj wszystkie pierwsze składniki i podziel przez liczbę punktów, co da ci pierwszy składnik średniej. To samo z drugimi komponentami.

To uśrednianie może być ważone przez HDOP. Zsumuj iloczyn pierwszego składnika pomnożony przez odpowiedni wynik HDOP i podziel sumę przez sumę wyników HDOP. To samo z drugimi komponentami.

Pozwolę sobie usunąć tag „normal-Distribution” ...

Stephan Kolassa
źródło
Dzięki @Stephan Kolassa, to już pomoże znaleźć rozwiązanie.
Philip Fourie,
2

Nazwij HDOP zmienną niezależną. Użyj tego do ważenia później. Masz więc zestawy współrzędnych - nazwij to (x1, y1); (x2, y2) itp. Najpierw zignoruj ​​wartości odstające. Oblicz średnie ważone współrzędnych x jako [(x1 * h1) + (x2 * h2) + .... + (xn * hn)] / [suma (h1, h2, ..., hn)] gdzie h1, h2, ... to wartość HDOP. Zrób to samo dla współrzędnych y. To da dość dokładną średnią wartość dla każdej współrzędnej.

Radzenie sobie z wartościami odstającymi może być nieco trudne. Skąd wiesz, czy są odstające, czy nie? Ściśle musisz określić dopasowanie statystyczne do obserwacji i w przedziale ufności ustalić, czy są one prawdziwe, czy nie. Patrząc na pytanie, jakie przychodzi na myśl Dystrybucja Trucizn. Ale to chyba dużo pracy i jestem pewien, że nie chcesz się w to angażować. Może użyć przybliżenia? Załóżmy, że średnia wartość współrzędnych jest dobrym sposobem na użycie. Następnie określ wartość odchylenia standardowego. Myślę, że standardowy dev lub rozkład trucizny wynosi 1 / (średnia). Następnie przybliżenie przy użyciu rozkładu normalnego i przedziału ufności 95%. Powiedz, że jeśli obserwacja jest poza przedziałem (średnia - * 1,645 * standardowe odchylenie; średnia + 1,645 * standardowe odchylenie), to czy jest to wartość odstająca? Spróbuj tego.


źródło