Use Cases

NARX-Modell implementieren: Aufbau, Architektur und Ergebnisse

NARX-Netz mit Lag-Fenster, exogenen Eingaben und Feedforward-Schichten

Implementierungsleitfaden

Ein NARX-Modell prognostiziert einen zukünftigen Ausgang aus einem festen Fenster vergangener Ausgänge und bekannter äußerer Einflüsse. Diese äußeren Einflüsse heißen exogene Eingaben. Für Mehrschrittprognosen werden die eigenen Ergebnisse wieder in das Eingabefenster übernommen; deshalb sind die Wahl des Rückblickfensters (Lag) und die Prüfung der Fehlerakkumulation kritisch.
Finales Lag-Fenster · Schritte
RRE · 1.024 Schritte

Definition

Was ist ein NARX-Modell?

NARX steht für Nonlinear AutoRegressive model with eXogenous inputs. Das Modell verbindet frühere Werte der Zielgröße mit aktuellen oder früheren externen Einflussgrößen und lernt daraus eine nichtlineare Abbildung auf den nächsten Ausgang.

Als Textformel: y(t) = f(y(t−1), …, y(t−ny), u(t−1), …, u(t−nu)). Dabei bezeichnet y den Systemausgang, u die exogene Eingabe und ny beziehungsweise nu die Länge der jeweiligen Historie. Die nichtlineare Funktion f kann ein Feedforward-Netz beziehungsweise Multi-Layer Perceptron annähern.

Begriffe

Die NARX-Logik in sieben Definitionen

BegriffBedeutung
Autoregressiver EingangFrühere Werte jener Zielgröße, die das Modell vorhersagen soll.
Exogener EingangEine bekannte externe Einflussgröße, die nicht vom vorhergesagten Ausgang erzeugt wird.
LagAnzahl vergangener Zeitschritte, die als Eingang genutzt werden.
Open LoopTraining oder Vorhersage mit realen früheren Zielwerten.
Closed LoopRekursive Vorhersage, bei der frühere Modellprognosen wieder als Eingang dienen.
RolloutAbfolge mehrerer Prognoseschritte über einen längeren Horizont.
RRERelative Range Error: Prognosefehler im Verhältnis zur Spannweite des tatsächlichen Signals; niedrigere Werte sind besser.

Architektur

Wie funktioniert die NARX-Architektur?

1

Vergangene Ausgänge beschreiben den jüngsten Zustand

Die letzten nᵧ Zielwerte werden als explizites Fenster an das Modell übergeben. Was vor dem Fensterrand liegt, ist für das Netz nicht mehr sichtbar.
2

Exogene Eingaben bilden äußere Einflüsse ab

Die letzten nᵤ Werte bekannter Einflussgrößen ergänzen den Systemzustand. Bei einer Gebäudetemperatur könnten das beispielsweise Außentemperatur und Heizleistung sein.
3

Ein Feedforward-Netz lernt die nichtlineare Abbildung

Alle verzögerten Werte werden zu einem Vektor verbunden und von einer oder mehreren vollständig verbundenen Schichten verarbeitet.
4

Feedback erzeugt die Mehrschrittprognose

Nach jedem Schritt fällt der älteste Zielwert aus dem Fenster; die neue Prognose wird am anderen Ende angehängt.

NARX-Netzwerk

Abbildung: Schematischer Aufbau des in der Bachelorarbeit beschriebenen NARX-Netzes: Historische Merkmale und bekannte Anregungen werden durch ein Feedforward-Netz auf die Ausgangskanäle projiziert.
Abbildung Schematischer Aufbau des in der Bachelorarbeit beschriebenen NARX-Netzes: Historische Merkmale und bekannte Anregungen werden durch ein Feedforward-Netz auf die Ausgangskanäle projiziert.
NARX-Netzwerk mit verzögerten Eingangsmerkmalen und exogenen Anregungen, vollständig verbundenen Hidden-Schichten und den vorhergesagten Ausgangskanälen
100%

Betriebsarten

Vorhersage mit echten oder eigenen vergangenen Werten

BetriebsartEingang für den nächsten SchrittAussage
Open Loop (offene Schleife)Reale historische ZielwerteZeigt, wie gut das Modell unter sauberen Eingabebedingungen einen nächsten Schritt vorhersagt.
Closed Loop (geschlossene Schleife)Zunehmend eigene ModellprognosenZeigt, ob kleine Abweichungen über den praktischen Vorhersagehorizont stabil bleiben oder anwachsen.

Ein gutes Einzelschrittergebnis beweist bei NARX noch keinen stabilen rekursiven Rollout. Schon eine kleine Abweichung verändert das nächste Eingabefenster und damit alle folgenden Schritte.

Datengrundlage

Welche Daten braucht ein NARX-Modell?

Mindestens erforderlich sind eine zeitlich geordnete Zielreihe y, eine oder mehrere synchrone exogene Reihen u und genügend zusammenhängende Sequenzen für getrennte Trainings-, Validierungs- und Rollout-Tests. Für Mehrschrittprognosen müssen die zukünftigen exogenen Eingaben bekannt, geplant oder separat geschätzt sein.

In der Bachelorarbeit waren Streckenunregelmäßigkeiten die exogene Anregung. Prognostiziert wurden unter anderem Beschleunigungen, Geschwindigkeiten, Positionen und Kräfte eines Schienenfahrzeugs.

Datenfenster

Abbildung: Die farbigen Bereiche trennen das historische Lag-Fenster von der Prognose: Die zukünftige Streckenanregung ist bekannt, die zukünftigen Fahrzeugreaktionen werden vom Modell erzeugt.
Abbildung Die farbigen Bereiche trennen das historische Lag-Fenster von der Prognose: Die zukünftige Streckenanregung ist bekannt, die zukünftigen Fahrzeugreaktionen werden vom Modell erzeugt.
NARX-Datenfenster mit historischen Zielwerten und Streckenanregungen links sowie bekannten zukünftigen exogenen Eingaben und vorhergesagten Fahrzeugreaktionen rechts
100%

Informationsleck (Data Leakage)

Zeitreihen vor dem Fensterbau chronologisch trennen

  1. Zeitreihen zuerst chronologisch in Training, Validierung und Test teilen.
  2. Mittelwert und Standardabweichung ausschließlich auf dem Trainingssplit bestimmen.
  3. Dieselben Skalierungsparameter auf Validierung, Test und spätere Inferenz anwenden.
  4. Erst danach Lag-Fenster innerhalb jedes Splits bilden.
  5. Prüfen, dass kein Fenster über eine Split-Grenze reicht.

Zufälliges Mischen einzelner Zeitschritte verteilt nahezu identische Nachbarfenster auf Training und Test. Das erzeugt optimistische Metriken, aber keinen belastbaren Nachweis für Generalisierung.

Implementierung

Das NARX-Kernprinzip in Python und PyTorch umsetzen

In Python braucht NARX keine spezielle rekurrente Schicht. Das Modell kann ein gewöhnliches MLP sein; die NARX-Logik entsteht durch die Datenaufbereitung und das Verschieben des Fensters.

  1. Zielkanäle und exogene Kanäle definieren.
  2. Zeitreihen ohne zufälliges Vermischen teilen.
  3. Skalierungsparameter nur aus dem Trainingssplit berechnen.
  4. Für jeden Zeitpunkt die letzten Ziel- und exogenen Werte konkatenieren.
  5. Ein flaches nichtlineares Regressionsnetz trainieren.
  6. Lag, Breite und Trainingshorizont auf Validierungsdaten abstimmen.
  7. Das Modell im Closed Loop deutlich länger als den Trainingshorizont testen.

PyTorch-Modell

Das MLP verarbeitet beide Lag-Fenster gemeinsam

import torch
from torch import nn

class NarxMLP(nn.Module):
    def __init__(self, target_dim, exog_dim, lag, hidden_dim):
        super().__init__()
        input_dim = lag * (target_dim + exog_dim)
        self.net = nn.Sequential(
            nn.Linear(input_dim, hidden_dim),
            nn.ReLU(),
            nn.Linear(hidden_dim, target_dim),
        )

    def forward(self, y_lag, u_lag):
        # Form: [batch, lag, features]
        x = torch.cat([y_lag, u_lag], dim=-1)
        return self.net(x.flatten(start_dim=1))

Mehrschrittprognose

Wie wird der Closed-Loop-Rollout erzeugt?

Nach jedem Modellaufruf wird das Zielwertfenster um einen Schritt verschoben und um die neue Prognose ergänzt. Das exogene Fenster erhält den nächsten bekannten externen Wert. So entsteht Schritt für Schritt die NARX-Mehrschrittprognose.

Rollout-Code

Prognose und exogene Eingabe rekursiv nachführen

predictions = []

for u_next in future_exog:
    y_next = model(y_lag, u_lag)
    predictions.append(y_next)

    y_lag = torch.cat(
        [y_lag[:, 1:], y_next[:, None, :]], dim=1
    )
    u_lag = torch.cat(
        [u_lag[:, 1:], u_next[:, None, :]], dim=1
    )

Produktionsreife

Was über das Code-Skelett hinaus nötig ist

Das Beispiel zeigt bewusst nur die Architekturmechanik. Für einen produktiven Einsatz fehlen noch Maskierung unvollständiger Sequenzen, reproduzierbare Splits, Checkpoints, frühes Stoppen, Gradient Clipping, Metriken je Zielkanal und ein sauberer Inferenzvertrag für zukünftige exogene Eingaben.

Hyperparameter

Welche Hyperparameter entscheiden über die Qualität?

1

Lag und reale Zeitspanne

Ein zu kurzes Fenster lässt relevante Dynamik weg, ein zu langes fügt Rauschen und Gewichte hinzu. In der Bachelorarbeit brachte ein Kontext von mehr als ungefähr 15 bis 20 Schritten bei 1.000 Hz keinen zusätzlichen Nutzen. Das ist kein universeller Optimalwert.
2

Breite und Tiefe

Der erste Layer wächst mit Lag und Kanalzahl. Im untersuchten Datensatz war eine einzelne breite Hidden-Schicht stabiler und recheneffizienter als tiefere Varianten. Die finale Konfiguration nutzte 10.000 Einheiten und Lag 15; diese Größe ist kein empfohlener Startwert für andere Projekte.
3

Trainingssequenzlänge

Sehr kurze Horizonte von ein bis acht Schritten überfitten in der Untersuchung. Bei NARX traten für sehr kurze und sehr lange Trainingshorizonte explodierende Gradienten auf.
4

Frühes Stoppen und mehrere Seeds

Die finale Studie erhöhte die Early-Stopping-Patience von 50 auf 200 und trainierte sieben Seeds. Mehrere Initialisierungen zeigen, ob ein Resultat reproduzierbar oder zufällig günstig ist.

Validierung

Lag-Auswahl und Rollout-Stabilität gemeinsam optimieren

Das passende Lag-Fenster wird auf chronologisch getrennten Validierungsdaten gewählt. Entscheidend ist nicht nur die Anzahl Samples, sondern die damit abgedeckte reale Zeit. Ein längeres Fenster ist nur dann sinnvoll, wenn die zusätzliche Historie messbar relevante Information liefert.

Für die Optimierung zählen deshalb mindestens Einzelschrittfehler, Closed-Loop-Fehler über den Zielhorizont, Streuung über Zielkanäle und Seeds sowie Rechenaufwand. Gradient Clipping und konservative Lernraten adressieren die beobachtete Instabilität, ersetzen aber keinen langen Rollout-Test.

Gültigkeitsbereich

Die folgenden Werte sind kein allgemeiner NARX-Benchmark

Die Ergebnisse gelten für ein nicht parametrisiertes Schienenfahrzeug mit vertikaler Dynamik auf gerader Strecke bei konstanten Geschwindigkeiten und standardisiert aufbereiteten Simulationsdaten. Andere Zeitreihen, Abtastraten, Systeme und Hardwarekonfigurationen benötigen eine eigene Validierung.

Messergebnisse

Ergebnisse des finalen NARX-Modells

Dokumentierter MVP der Bachelorarbeit; niedrigere RRE-Werte sind besser.
KennzahlFinales NARX-Ergebnis
RRE über 1.024 Schritte, alle Geschwindigkeiten2,33 %
RRE über 1.024 Schritte, unbekannte Geschwindigkeiten2,67 %
RRE über 10.000 Schritte2,96 %
Mittlere Trainingszeit im dokumentierten Setup2 Stunden
Inferenzgeschwindigkeit184.601 Schritte/s

Mit 2,33 % RRE erfüllte NARX im abgegrenzten MVP die Anforderung von weniger als 2,5 % über 1.024 Schritte. Absolute Laufzeiten und Durchsätze hängen von der verwendeten Hard- und Software ab.

Einordnung

Begrenzte Drift bedeutet nicht automatisch höchste Genauigkeit

Im 10.000-Schritte-Test blieb der NARX-Fehler im Verlauf relativ begrenzt, lag mit 2,96 % im Mittel aber über den Ergebnissen von LSTM und Transformer. Zugleich zeigte NARX in der Arbeit die größte Streuung zwischen Beschleunigungen, Positionen, Geschwindigkeiten und Kräften.

Die Messwerte beantworten daher eine abgegrenzte Frage: Das finale Modell war schnell und erreichte das MVP-Ziel über 1.024 Schritte, war innerhalb des Architekturvergleichs jedoch am ungenauesten.

Abwägung

Stärken und Schwächen von NARX

StärkenSchwächen
Leicht verständliche ArchitekturErinnerung endet am festen Lag-Fenster
Exogene Einflüsse sind explizit modelliertEingangsdimension wächst linear mit Lag und Kanalzahl
Schnelle Inferenz mit einem Feedforward-NetzEigene Fehler können sich im rekursiven Rollout akkumulieren
Bereitgestellte Historie ist direkt nachvollziehbarZukünftige exogene Eingaben müssen bekannt oder prognostiziert sein
Transparente Baseline für dynamische SystemeEmpfindlich gegenüber Breite, Tiefe und Trainingshorizont

Modellwahl

Wann ist NARX die richtige Wahl?

1

Die relevante Dynamik passt in ein begrenztes Fenster

NARX ist besonders nachvollziehbar, wenn die benötigte Erinnerung fachlich eingrenzbar und durch chronologische Validierung überprüfbar ist.
2

Zukünftige externe Eingaben sind verfügbar

Fahrprofile, Stellgrößen oder geplante Lastkurven können den Prognosehorizont vorab beschreiben.
3

Einfache und schnelle Inferenz ist wichtig

Ein Feedforward-Netz ist eine transparente Baseline, bevor ein komplexeres Sequenzmodell eingeführt wird.
4

Lange Closed-Loop-Tests sind möglich

Nur der rekursive Rollout zeigt, ob der praktische Einsatzhorizont trotz zurückgeführter Prognosefehler stabil bleibt.

Grenzen

Wann ein anderes Sequenzmodell näherliegt

NARX ist weniger geeignet, wenn die relevante Erinnerung lang oder stark variabel ist, die Zahl der Kanäle sehr groß wird oder der Einsatzhorizont weit über dem überwachten Trainingsbereich liegt. Dann lohnt ein Blick auf eine LSTM für Zeitreihen oder einen Encoder-Decoder-Transformer.

Technische Anwendung

Vom NARX-Modell zum schnellen Simulationssurrogat

In der Bachelorarbeit diente NARX nicht als isolierte Prognose-Demo, sondern als Surrogatmodell für rechenintensive Simulationen. Das Netz lernte die dynamische Reaktion aus vergangenen Systemzuständen und bekannten Streckenanregungen. Nach dem Training konnte es neue Verläufe wesentlich schneller annähern als der ursprüngliche Solver.

Der übergeordnete Use Case zeigt, wie ein genauer Simulationsprozess Referenzdaten erzeugt, ein Modell die schnelle Vorbewertung übernimmt und ausgewählte Fälle weiterhin physikalisch validiert werden.

FAQ

Häufige Fragen zur NARX-Implementierung

1

Ist NARX nur in MATLAB verfügbar?

Nein. MATLAB bietet spezialisierte NARX-Werkzeuge, das Prinzip lässt sich aber auch in Python umsetzen: Verzögerte Ziel- und Eingabewerte werden erzeugt und an ein nichtlineares Regressionsmodell wie ein PyTorch-MLP übergeben.
2

Braucht NARX zukünftige exogene Eingaben?

Für eine Prognose über mehrere zukünftige Schritte müssen die exogenen Werte dieses Horizonts bekannt oder anderweitig prognostiziert werden. Ohne diese Information kann ein klassisches NARX-Modell den externen Einfluss nicht korrekt berücksichtigen.
3

Warum kann ein größeres Lag-Fenster schaden?

Ein größeres Fenster erhöht die Eingangsdimension, den Rechenaufwand und potenziell den Rauschanteil. Wenn die zusätzliche Historie keine relevante Information enthält, verschlechtert sie Generalisierung und Trainingsstabilität.
4

Wie verhindert man zu optimistische Testergebnisse?

Zeitreihen müssen chronologisch getrennt werden. Zusätzlich sollte das Modell nicht nur mit realen historischen Zielwerten, sondern im rekursiven Closed Loop getestet werden, weil dort eigene Prognosefehler in spätere Eingaben einfließen.
5

Wann sollte ich statt NARX eine LSTM oder einen Transformer verwenden?

Wenn relevante Abhängigkeiten über ein schwer bestimmbares oder langes Zeitfenster reichen, sind LSTM oder Transformer oft geeigneter. NARX bleibt attraktiv, wenn ein begrenztes Lag-Fenster ausreicht und einfache, schnelle Inferenz wichtig ist.

Quelle

Datengrundlage und weiterführende Dokumentation

Bachelorarbeit: Surrogate Modeling of Rail Vehicle Dynamics using Neural Networks, Oscar Johann Schumacher, insbesondere Kapitel 4.3, 6.2–6.7, 7.1 und Anhang A. Alle Messwerte beziehen sich auf den dort dokumentierten MVP.

Technische Dokumentation: MathWorks: NARX Network for Time Series Forecasting und SysIdentPy: Create a Neural NARX Network.

Modellvergleich

Wie schneidet NARX gegen LSTM und Transformer ab?

Vergleichen Sie dieses Modell mit den Alternativen – bei Genauigkeit über 1.024 Schritte, Stabilität über 10.000 Schritte, Generalisierung und Rechenaufwand.