Wie kann man eine Zeitreihe von einer anderen Zeitreihe vorhersagen, wenn sie miteinander verwandt sind?

14

Ich habe über ein Jahr lang ohne große Fortschritte versucht, dieses Problem zu lösen. Es ist Teil eines Forschungsprojekts, das ich mache, aber ich werde es anhand eines von mir erfundenen Beispiels veranschaulichen, da der eigentliche Bereich des Problems etwas verwirrend ist (Eye-Tracking).

Sie sind ein Flugzeug, das ein feindliches Schiff verfolgt, das sich über den Ozean bewegt. Sie haben also eine Reihe von (x, y, Zeit-) Koordinaten des Schiffes gesammelt. Sie wissen, dass ein verstecktes U-Boot mit dem Schiff fährt, um es zu schützen, aber während es eine Wechselbeziehung zwischen deren Positionen gibt, wandert das U-Boot häufig vom Schiff weg Welt gelegentlich. Sie wollen den Weg des U-Bootes vorhersagen, aber leider ist er Ihnen verborgen.

Aber einen Monat im April merkt man, dass das U-Boot vergisst, sich zu verstecken, so dass Sie während 1.000 Fahrten eine Reihe von Koordinaten für das U-Boot und das Schiff haben. Anhand dieser Daten möchten Sie ein Modell erstellen, um den Pfad des verborgenen U-Bootes unter Berücksichtigung der Schiffsbewegungen vorherzusagen. Die naive Grundlinie würde lauten: "U-Boot-Position erraten =" Schiffs-aktuelle Position ". Aus den April-Daten, in denen das U-Boot sichtbar war, geht jedoch hervor, dass das U-Boot tendenziell etwas vor dem Schiff ist, also" U-Boot-Position " rate = Schiffsposition in 1 Minute "ist eine noch bessere Schätzung. Darüber hinaus zeigen die April-Daten, dass das U-Boot, wenn es längere Zeit im Wasser bleibt, wahrscheinlich weit entfernt ist, um die Küstengewässer zu patrouillieren. Es gibt andere Muster natürlich.

Wie würden Sie dieses Modell angesichts der Aprildaten als Trainingsdaten erstellen, um den Pfad des U-Boots vorherzusagen? Meine derzeitige Lösung ist eine lineare Ad-hoc-Regression, bei der die Faktoren "Fahrzeit", "Schiffskoordinate x", "1 Tag im Leerlauf" usw. sind und dann R die Gewichte ermitteln und eine Kreuzvalidierung durchführen . Aber ich würde es wirklich lieben, diese Faktoren automatisch aus den April-Daten zu generieren. Auch ein Modell, das Sequenz oder Zeit verwendet, wäre schön, da die lineare Regression dies nicht tut und ich denke, dass es relevant ist.

Vielen Dank für das Lesen und ich würde gerne etwas klarstellen.

Frachtschiff und U-Boot
quelle
5
Eine Möglichkeit, das Erstellen Ihres Modells zu vereinfachen, besteht darin, Polarkoordinaten anstelle von kartesischen Koordinaten zu verwenden. Wenn Sie der Ursprung gleich den Feind Schiff gesetzt und hat das Schiff nach Norden immer, dann könnte man so etwas wie Position des Unter zum Zeitpunkt sagt ist ( r ( t j ) , θ ( t j ) ) mit r Wesen Distanz und θ Sein Winkel. Jetzt erwarten wir | θ | klein sein, weil sich das U-Boot normalerweise vor dem Schiff befindet und r klein sein sollte, aber nicht nahe bei Null (sonst stürzt das U-Boot gegen das Schiff). Sie haben auchtj(r(tj),θ(tj))rθ|θ|r immer groß für Schiffedie Pause. r
Wahrscheinlichkeitslogik
2
Ich wollte etwas Ähnliches wie Wahrscheinlichkeitslogik vorschlagen - Sie benötigen eine Variable, die die Entfernung zwischen dem Schiff und dem U-Boot ist. Das Schöne an Polarkoordinaten ist, dass diese Informationen ebenso wie die Richtwirkung enthalten sind. Sie können dann eine lineare Regression für diese neue Variable versuchen.
Anfänger
Danke für die Vorschläge. Eine Sache, für die ich mit Polarkoordinaten kämpfe, ist, dass wenn ich versuche, die Winkelvariable vorherzusagen, sie sich "herumschleift", also 0 == 360, was aus Sicht der Vorhersage keinen Sinn ergibt. Irgendwelche Vorschläge, wie man damit umgeht?
Frachtschiff und U-Boot
@probabilityislogic Wenn Sie sich dies etwas genauer überlegt haben, ist es dann sinnvoll, Polarkoordinaten zu verwenden, aber statt Theta die Sin (Theta) als vorherzusagende Variable zu verwenden? Obwohl es sich dann eher wie ein Delta_y verhält.
Frachtschiff und U-Boot
In Bezug auf die Verwendung von Polarkoordinaten möchten Sie vielleicht etwas über Richtungsstatistik lesen .
Steadyfish

Antworten:

3

Hier ist ein Ansatz, der keine "kontextuellen" Informationen verwendet, dh die Tatsache, dass "ein U-Boot einem Schiff folgt", wird nicht berücksichtigt. Auf der anderen Seite ist es leicht zu beginnen mit:

Bezeichnen mit

xsub(t),ysub(t)

xship(t),yship(t)

die Koordinaten des U-Bootes und des Schiffes zum Zeitpunkt und definieren die "Entfernungsreihe" durcht

xdist(t)=xship(t)xsub(t)

ydist(t)=yship(t)ysub(t)

Mein Vorschlag ist, dass Sie jedes einzeln vorhersagen (Sie können sie später zusammenbinden).

Nehmen wir uns einen Moment Zeit, um zu sehen, wie diese aussehen. Konzentrieren wir uns auf die Koordinate und nehmen wir an, dass sich das Schiff nach rechts bewegt und das U-Boot dahinter folgt. Angenommen, das U-Boot befindet sich etwa 100 Meter hinter dem Schiff, mit einer Abweichung von beispielsweise 10 Metern.x

Dann

xdist(t)=100±10wiggle(t)

wiggle

xywiggleμσxdist

xdist(t)=μ+σWx(t)

Wx(t)xdist

Eine andere Strategie, die die Leute anwenden (von der ich denke, dass sie für Sie arbeiten werden), ist, dass sie ihre Serien aufteilen

Polynomial base + Cyclic pattern + Bounded randomness

Bei einem U-Boot und einem Schiff wäre der Polynomteil wahrscheinlich konstant und der zyklische Teil eine Summe aus Sinus und Cosinus (von den Wellen des Ozeans ...). Dies ist bei der Blickverfolgung möglicherweise nicht der Fall.

Es gibt Tools, die dies für Sie herausfinden können. Hier sind zwei, die ich kenne:

  1. DTREG (30 Tage Testlizenz )
  2. Microsoft Time Series-Algorithmus, der Teil des SQL Server-Produkts ist. Ich verwende derzeit die 180-Tage-Testversion. Sie ist einfach zu verwenden.

Hier ist ein Screenshot des SQL Server-Tools (der gepunktete Teil ist die Vorhersage):

enter image description here

Ein von ihnen verwendeter Algorithmus heißt ARIMA. Um zu erfahren, wie es funktioniert, habe ich ein bisschen gegoogelt und dieses Buch gefunden: Erster Kurs über Zeitreihen (und keine Sorge, Sie müssen kein SAS haben, um mitzumachen. Ich nicht.). Es ist sehr gut lesbar.

Sie müssen nicht wissen, wie ARIMA funktioniert, um diese Tools zu verwenden, aber ich denke, es ist immer einfacher, wenn Sie über einen Kontext verfügen, da "Modellparameter" festgelegt werden müssen usw.

Rohit Chatterjee
quelle