Sind in Ihrem Echtzeitsystem die Beobachtungszeiten inhomogen und die Daten instationär? Wenn Sie etwas Einfaches und Schnelles wollen, empfehle ich die Verwendung der inhomogenen EMA-Operatoren:
Operatoren für inhomogene Zeitreihen
Sie aktualisieren die EMA ( ) bei jeder neuen Beobachtung gemäß:Wert
Wert+ = α( newData - Wert ) ,α = 1 - exp( - Δ tτ)
mit einen Glättungs- / Abstimmungsparameter. Es ist eine einfache Möglichkeit, eine Erwartung abzuschätzen.τ
Über das Update kann auch eine einfache Online-Medianschätzung erstellt werden
sgmed += s gn ( newData - med )= ϵ( sg - med )
In der Praxis möchten Sie klein (oder mit mehr Beobachtungen verfallen). Im Idealfall sollte abhängen, wie schief die Aktualisierungen werden. dh wenn tatsächlich dem Median entspricht, sollte auf einheitlich sein . Sie können dies dann auf eine Tiefe ausbalancierte binäre Baumstruktur erweitern, um Quantile mit gleichmäßigem Abstand zu erhalten.ϵϵmedsg{ - 1 , 1 }d2d+ 1- 1
Die Kombination der oben genannten Möglichkeiten sollte Ihnen eine anständige Online-Verteilung Ihrer Daten ermöglichen. Der Baum ist schwierig zu finden, ich habe Implementierungen von beiden in C ++, wenn Sie interessiert sind. Ich verwende beide in der Praxis häufig (finanzielle Echtzeit-Tick-Daten) und sie haben gut funktioniert.