Ich schreibe ein Programm, das das Gewicht des Benutzers über verschiedene Tage mittelt. Ich plane, einen gleitenden 5-Punkte-Durchschnitt zu verwenden (aktueller Tag, zwei vor und zwei nach). Manchmal fehlt ein Datenpunkt für 1-2 Tage. Wie werden diese Fälle normalerweise behandelt?
(Wenn es einen besseren Tiefpassfilter gibt, den ich verwenden könnte, würde ich gerne Vorschläge machen)
Antworten:
Im Allgemeinen funktioniert die Regression besser, wenn die fehlenden Punkte automatisch angepasst werden, als ein von Ihnen gewählter Filter für den gleitenden Durchschnitt.
Wenn Sie einen AR- (Auto-Regressive-Filter) oder ARMA-Filter verwenden, können Sie einen vorhergesagten Wert einer Beispielausgabe basierend auf früheren Eingaben haben.
Es gibt verschiedene andere Alternativen - Sie können behalten
Im Wesentlichen handelt es sich um ein Spiel zur Vorhersage dieses Werts und zur weiteren Verwendung als Signal. Natürlich ist die Vorhersage nicht mit einer Originalstichprobe identisch, aber das ist nicht der Preis, den Sie zahlen, wenn Sie keine Daten haben.
quelle
Eine einfache und allgemeine Methode zum Ausfüllen fehlender Daten, wenn Sie vollständige Datenmengen haben, ist die Verwendung der
linearen Regression . Angenommen, Sie haben 1000 5er-Läufe hintereinander, von denen keiner fehlt.
Richten Sie den 1000 x 1-Vektor y und die 1000 x 4-Matrix X ein:
Regression gibt Ihnen 4 Zahlen abcd, die eine beste Übereinstimmung ergeben
für Ihre 1000 Datenzeilen - verschiedene Daten, verschiedene abc d.
Dann verwenden Sie diese abcd, um das fehlende Gewicht [0] zu schätzen (vorherzusagen, zu interpolieren).
(Für menschliche Gewichte würde ich erwarten, dass abcd ungefähr 1/4 beträgt.)
In Python finden Sie unter numpy.linalg.lstsq .
(Es gibt zig Bücher und Artikel über Regression auf allen Ebenen. Für den Zusammenhang mit Interpolation kenne ich jedoch keine gute Einführung; jemand?)
quelle
quelle
Ich denke, der einfachste Weg wäre, das Datum für das "Ganze" in der Zeitreihe anhand der vorhergehenden Daten "vorherzusagen". Dann können Sie diese Zeitreihen für die Parameterschätzung verwenden. (Sie können dann fortfahren und die fehlenden Werte anhand Ihrer geschätzten Parameter aus der gesamten (abgeschlossenen) Zeitreihe erneut vorhersagen und dies wiederholen, bis sie konvergieren.) Sie sollten die Vertrauensgrenzen jedoch aus der Anzahl der realen Datenpunkte ableiten, die Sie haben, und nicht aus der Länge der abgeschlossenen Daten.
quelle