Logistische Regression für Zeitreihen

21

Ich möchte ein binäres logistisches Regressionsmodell im Kontext von Streaming-Daten (mehrdimensionale Zeitreihen) verwenden, um den Wert der abhängigen Variablen der Daten (dh der Zeile), die gerade angekommen sind, unter Berücksichtigung der bisherigen Beobachtungen vorherzusagen. Soweit mir bekannt ist, wird die logistische Regression traditionell für die postmortale Analyse verwendet, bei der jede abhängige Variable bereits festgelegt wurde (entweder durch Inspektion oder durch die Art der Studie).

Was passiert jedoch bei Zeitreihen, bei denen wir (on the fly) Vorhersagen über die abhängige Variable in Bezug auf historische Daten (z. B. in einem Zeitfenster der letzten Sekunden) und natürlich die vorherige treffen möchten? Schätzungen der abhängigen Variablen?t

Und wenn Sie das obige System im Laufe der Zeit sehen, wie sollte es aufgebaut sein, damit die Regression funktioniert? Müssen wir es zuerst trainieren, indem wir zum Beispiel die ersten 50 Zeilen unserer Daten beschriften (dh die abhängige Variable auf 0 oder 1 setzen) und dann die aktuelle Schätzung des Vektors , um die neue Wahrscheinlichkeit von zu schätzen abhängige Variable 0 oder 1 für die Daten, die gerade angekommen sind (dh die neue Zeile, die gerade zum System hinzugefügt wurde)?β

Um mein Problem klarer zu machen, versuche ich, ein System aufzubauen, das einen Datensatz zeilenweise analysiert und eine Vorhersage eines binären Ergebnisses (abhängige Variable) unter Berücksichtigung des Wissens (Beobachtung oder Schätzung) aller vorherigen abhängigen oder erklärenden Faktoren vornimmt Variablen, die in einem festen Zeitfenster angekommen sind. Mein System ist in Rerl und verwendet R für die Folgerung.

Regressor
quelle
5
Können Sie eine Korrelationsstruktur für Ihre Daten annehmen? Ihr Fall ist ein Sonderfall von GLMM mit logit link, aber die Korrelationsstruktur in den Zeitreihendaten muss korrekt modelliert werden, um eine angemessene Antwort zu erhalten.
Suncoolsu
1
Wenn Sie Zeitreihen sagen, würde eine Beziehung zu . Oder kann man davon ausgehen, dass es unabhängig ist? y t - 1ytyt1
Suncoolsu
2
Können Sie mir bitte eine kurze Beschreibung Ihrer Daten geben, um eine konkrete Lösung zu finden? Ihr Problem kann so etwas gelöst werden stat.ethz.ch/pipermail/r-sig-mixed-models/2010q4/004530.html
suncoolsu
2
Ich habe eine Netzwerkverkehrszeitreihe der folgenden Form: Protokoll, SrcIP SrcPort, DestIP, DestPort, TimeSec, Timeusec, PackLength TCP, 200.80.199.105,3523,207.216.233.144,9658,11223344,941818,62 UDP, 142.144.155.120 , 1751,244.72.151.2,1935, 11223344,941843,60 Ich möchte abschätzen, ob ein Paket (oder eine Gruppe von Paketen) böswillig ist, indem ich Kenntnisse aus beschrifteten Datensätzen verwende, um ein selbst trainiertes Modell zu erstellen. Die Mittelwertbildung, von der ich gesprochen habe, wird auf die oben genannten Metriken angewendet, um eine Aggregationsebene zu erhalten und das System für hochvolumigen Verkehr praktischer zu machen.
Regressor
2
Das klingt wirklich nach einem Job für eine Support-Vektor-Maschine. Vermisse ich etwas? Wenn Sie sich wirklich Gedanken über die Autokorrelation oder die Zeitreihenstruktur Ihrer Daten machen, können Sie ARIMA und / oder ein mehrstufiges Längsschnittmodell ausprobieren. Für longitudinale Modelle empfehle ich die Applied Longitudinal Data Analysis von Willet und Singer , für die die UCLA ATS-Site R-Codebeispiele enthält.
Ashaw

Antworten:

6

Es gibt zwei zu berücksichtigende Methoden:

  1. Verwenden Sie nur die letzten N Eingangssamples. Angenommen, Ihr Eingangssignal hat die Dimension D, dann haben Sie N * D Abtastwerte pro Grundwahrheitsbezeichnung. Auf diese Weise können Sie mit einem beliebigen Klassifikator trainieren, einschließlich der logistischen Regression. Auf diese Weise wird jeder Ausgang als unabhängig von allen anderen Ausgängen betrachtet.

  2. Verwenden Sie die letzten N Input Samples und die letzten N Outputs, die Sie generiert haben. Das Problem ist dann ähnlich wie bei der Viterbi-Dekodierung . Sie können einen nicht-binären Score basierend auf den Eingabesamples generieren und den Score mehrerer Samples mit einem Viterbi-Decoder kombinieren. Dies ist besser als Methode 1. Wenn Sie jetzt etwas über die zeitliche Beziehung zwischen den Ausgaben wissen.

Herr weiß
quelle