Пошук середньої точки GPS


11

Мені потрібно написати програму, щоб знайти середню точку GPS від кількості точок.

На практиці відбувається таке:

  • Щомісяця людина записує GPS-точку того самого статичного активу.
  • Через природу GPS ці пункти щомісяця різняться.
  • Іноді людина робить помилку, записуючи неправильну думку в зовсім іншому місці.
  • Кожна точка GPS має вагу визначеності ( HDOP ), яка вказує, наскільки точними є поточні дані GPS. GPS крапки з кращими значеннями HDOP віддають перевагу над нижчими ..

Як визначити таке:

  • Робота з даними з 2 значеннями порівняно з одним значенням, наприклад віком. (Знайдіть середній вік у сукупності людей)
  • Визначте вихідців. У наведеному нижче прикладі це будуть [-28.252, 25.018] та [-28.632, 25.219]
  • Виключивши інші люди, знайдіть середню точку GPS у цьому, можливо, це буде [-28.389, 25.245].
  • Це було б бонусом, якщо можна працювати «вагою», передбаченою значенням HDOP для кожної точки.

alt текст


1
Ця відповідь досить схожа, щоб допомогти вам усереднювати бали, stats.stackexchange.com/questions/2493/… , легко включити ваги в цю рамку. Думаю, ви зможете використовувати просту евристику для виявлення людей, що переживають люди, але це не заважає вам скористатися більш емпіричним підходом, як запропонував Стефан.
Andy W

Відповіді:


8

Однією з проблем багатовимірних даних є вирішення, а потім інтерпретація, підходящої метрики для обчислення відстаней, отже, розумних, але дещо важких для пояснення таких понять, як махаланобіська відстань. Але в цьому випадку напевно вибір очевидний - евклідова відстань . Я б запропонував простий евристичний алгоритм на кшталт:

  1. Обчисліть (не зважений) центроїд точок даних, тобто (не зважене) за допомогою двох координат
  2. Обчисліть евклідову відстань усіх показань від центроїда
  3. Виключіть будь-які показання, що знаходяться далі, ніж на певній відстані (визначається виходячи з вашого досвіду та знань про технологію, або якщо цього не вдалося зробити трохи перехресної перевірки проб і помилок - 100 м, 1 км, 10 км ??)
  4. Обчисліть середньозважене значення обох координат решти точок, зважуючи зворотний бал HDOP (або якусь монотонну функцію від нього) - я швидко переглянув сторінку вікіпедії, пов’язану з питанням, і подумайте, може, вам такого не потрібно функцію, але мені потрібно буде вивчити її далі, щоб бути впевненим)

Очевидно є кілька способів зробити це більш складним, наприклад, зменшення ваги або використання М-оцінок, а не просто їх виключення, але я не впевнений, чи справді така складність справді необхідна.


3

Роб Хайндман нещодавно поставив питання про виявлення людей, що переживають люди в багатовимірних даних . Відповіді можуть містити декілька можливих підходів (інакше, можливо, ви хочете поставити питання про пошук 2-денних випускників окремим питанням).

І ви можете провести середнє значення вашого компонента даних 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 координат. Це дасть досить точне середнє значення для кожної координати.

Справа з непрацездатними людьми може бути дещо хитрою. Звідки ви знаєте, чи є вони пережили чи ні? Суворо потрібно визначити статистичну відповідність спостереженням і в довірчому інтервалі визначити, чи справжні вони чи ні. Дивлячись на питання про поширення отрут, це дійсно приходить до тями. Але це, мабуть, багато роботи, і я впевнений, що ви не хочете займатися цим. Може, використовувати наближення? Скажімо, ви припускаєте, що середнє значення координат є хорошим засобом використання. Потім визначте значення для стандартного відхилення. Я думаю, що стандартний розробник або розподіл отрут - 1 / (середній). Потім орієнтовна, використовуючи нормальний розподіл і 95% довірчий інтервал. Скажіть, якщо спостереження знаходиться за межами інтервалу (середнє значення - 1.645 * std dev; середнє + 1.645 * std dev), то це більше? Дайте це піти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.