Ich muss ein Programm schreiben, um den durchschnittlichen GPS-Punkt aus einer Population von Punkten zu ermitteln.
In der Praxis passiert Folgendes:
- Jeden Monat zeichnet eine Person einen GPS-Punkt desselben statischen Assets auf.
- Aufgrund der Art des GPS unterscheiden sich diese Punkte jeden Monat geringfügig.
- Manchmal macht die Person einen Fehler und zeichnet den falschen Test an einem völlig anderen Ort auf.
- Jeder GPS-Punkt hat ein Sicherheitsgewicht ( HDOP ), das angibt, wie genau die aktuellen GPS-Daten sind. GPS-Punkte mit besseren HDOP-Werten werden niedrigeren vorgezogen.
Wie bestimme ich Folgendes:
- Behandeln Sie Daten mit 2 Werten gegenüber einem einzelnen Wert wie dem Alter. (Finden Sie das Durchschnittsalter in einer Bevölkerung von Menschen)
- Bestimmen Sie die Ausreißer. Im folgenden Beispiel wären dies [-28,252, 25,018] und [-28,632, 25,219].
- Nachdem Sie die Ausreißer ausgeschlossen haben, ermitteln Sie den durchschnittlichen GPS-Punkt darin [-28,389, 25,245].
- Es wäre ein Bonus, wenn das vom HDOP-Wert für jeden Punkt bereitgestellte "Gewicht" berechnet werden könnte.
Antworten:
Eines der Probleme mit multivariaten Daten besteht darin, eine geeignete Metrik für die Berechnung von Entfernungen festzulegen und diese dann zu interpretieren. Dies sind clevere, aber etwas schwer zu erklärende Konzepte wie die Mahalanobis-Entfernung. Aber in diesem Fall liegt die Wahl sicherlich auf der Hand - die euklidische Distanz . Ich würde einen einfachen heuristischen Algorithmus vorschlagen, wie zum Beispiel:
Versuch und Irrtum- 100 m, 1 km, 10 km ??).Es gibt eindeutig mehrere Möglichkeiten, dies zu verfeinern, z. B. Auswärtsgewichtung von Ausreißern oder Verwendung von M-Schätzern, anstatt sie einfach auszuschließen, aber ich bin mir nicht sicher, ob eine solche Raffinesse hier wirklich notwendig ist.
quelle
Rob Hyndman hat kürzlich eine Frage zum Erkennen von Ausreißern in multivariaten Daten gestellt . Die Antworten bieten möglicherweise einige mögliche Ansätze (und andernfalls möchten Sie die Frage nach der Suche nach 2D-Ausreißern möglicherweise in einer separaten Frage zusammenfassen).
Und Sie können Ihre verbleibenden GPS-Daten Komponente für Komponente mitteln - addieren Sie alle ersten Komponenten und dividieren Sie sie durch die Anzahl der Punkte, um die erste Komponente des Durchschnitts zu erhalten. Gleiches gilt für die zweiten Komponenten.
Diese Mittelung kann mit HDOP gewichtet werden. Summieren Sie die Produkte der ersten Komponente, multipliziert mit der entsprechenden HDOP-Bewertung, und dividieren Sie die Summe durch die Summe der HDOP-Bewertungen. Gleiches gilt für die zweiten Komponenten.
Ich werde mir erlauben, das "Normalverteilungs" -Tag zu entfernen ...
quelle
Nennen Sie das HDOP die unabhängige Variable. Verwenden Sie dies später zur Gewichtung. Sie haben also Koordinatensätze - nennen Sie dies (x1, y1); (x2, y2) usw. Ignorieren Sie zuerst Ausreißer. Berechnen Sie die gewichteten Mittelwerte der x-Koordinaten als [(x1 * h1) + (x2 * h2) + .... + (xn * hn)] / [Summe (h1, h2, ..., hn)] Dabei ist h1, h2, ... der HDOP-Wert. Machen Sie dasselbe für die y-Koordinaten. Dies ergibt einen ziemlich genauen Durchschnittswert für jede Koordinate.
Der Umgang mit Ausreißern kann etwas schwierig sein. Woher wissen Sie, ob es sich um Ausreißer handelt oder nicht? Streng genommen müssen Sie eine statistische Anpassung an die Beobachtungen ermitteln und innerhalb eines Konfidenzintervalls feststellen, ob sie echt sind oder nicht. Bei der Betrachtung der Frage fällt mir die Giftverteilung ein. Aber das ist wahrscheinlich eine Menge Arbeit und ich bin sicher, dass Sie nicht darauf eingehen wollen. Vielleicht eine Annäherung verwenden? Angenommen, Sie gehen davon aus, dass der durchschnittliche Koordinatenwert ein gutes Mittel zur Verwendung ist. Bestimmen Sie dann einen Wert für die Standardabweichung. Ich denke, der Standardentwickler oder die Giftverteilung ist 1 / (Mittelwert). Dann approximieren Sie mit der Normalverteilung und einem 95% -Konfidenzintervall. Sagen wir, wenn eine Beobachtung außerhalb des Intervalls liegt (Mittelwert * 1,645 * Standardabweichung; Mittelwert + 1,645 * Standardabweichung), dann ist sie ein Ausreißer? Probieren Sie es aus.
quelle