Ich versuche, eine Zeitreihe im ARIMA-Paket python statsmodels mit dem Einschluss einer exogenen Variablen vorherzusagen, kann aber nicht den richtigen Weg finden, die exogene Variable in den Vorhersageschritt einzufügen. Siehe hier für die Dokumentation.
%Vor%fügt jetzt eine exogene Trendvariable hinzu
%Vor%Beachten Sie, dass dies eine Trendlinie ist, die mit jeder Erhöhung der Zeit um 0,013132 steigt (natürlich sind das zufällige Daten, wenn Sie sie also ausführen, sind die Werte unterschiedlich, aber die positive oder negative Trendstory wird dasselbe sein). Also sollte der nächste Wert (für Zeit = 14) 0,555226 + 0,013132 * 14 = 0,739074 sein.
%Vor%Also, 2014-03-31 sagt (die letzte Probe) richtig voraus, aber 2014-06-30 beginnt wieder am Anfang (t = 1), aber notiere 2015-03-31 (eigentlich immer die letzte Beobachtung von die Prognose, unabhängig vom Horizont, nimmt t = 16 auf (das heißt, (Wert - Abschnitt) / Beta = (0,765338 - 0,555226) / 0,013132).
Um das deutlicher zu machen, beachte, was passiert, wenn ich die Werte von x mat
aufblase %Vor%Sehen Sie, dass 2015-03-31 explodierte, aber keiner der anderen xmat-Werte berücksichtigt wurde? Was mache ich hier falsch ???
Ich habe versucht, mit jeder Art und Weise zu experimentieren, die ich kenne, um die Exog-Variable zu übergeben (Dimension ändern, den Exog zu einer Matrix machen, den Exog so lang machen wie Input plus den Horizont, etc, etc, usw.). Irgendwelche Vorschläge würden wirklich geschätzt.
Ich benutze 2,7 von Anaconda2.1 numpy 1.8.1 scipy 0.14.0 Pandas 0.14.0 Statistikmodelle 0.5.0
und haben das Problem auf Windows 7 64 Bit und Centos 64 Bit verifiziert.
Auch ein paar Dinge. Ich benutze ARIMA für die ARIMA-Funktionalität und das obige dient nur zur Veranschaulichung (das heißt, ich kann nicht "nur OLS verwenden ...", wie ich mir vorstellen werde vorgeschlagen). Ich kann auch nicht "nur R verwenden" aufgrund der Einschränkungen des Projekts (und allgemeiner, die fehlende Unterstützung von R in der Basis Spark).
Hier sind die interessanten Teile des Codes alle zusammen, falls Sie es selbst ausprobieren möchten
%Vor%Dies wird wahrscheinlich besser auf dem github issue tracker gepostet. Ich habe jedoch ein Ticket eingereicht.
Es ist am besten, dort ein Ticket zu hinterlegen, falls ich es nicht vergessen sollte. In diesen Tagen ziemlich beschäftigt.
Es gab einen Fehler in der Logik für den Spezialfall von k_ar == 0. Sollte behoben sein. Lass mich wissen, ob du dem Patch einen Dreh geben kannst / darfst. Wenn nicht, kann ich einige strengere Tests durchführen und es zusammenführen.
Statsmodels über Funken? Ich bin fasziniert.
Während Sie fit2 fiften, haben Sie bereits Exog-Variablen erwähnt, also brauchen Sie sie nicht zu wiederholen:
%Vor%Ich hoffe, dass es helfen wird! Dies ist ein toller Beitrag. Ich habe noch nie exogene Variablen auf ARIMA probiert, aber die Zeitungen sagen, dass es nicht wirklich relevant ist, egal in welchem Bereich Sie es verwenden (wird nach den Papieren suchen, wenn Sie es brauchen oder googeln).
Geschichte ist ein Trainings-Array
exog ist das externe variable Array
Y_exog_test liegt außerhalb der entsprechenden externen Variablen. Ändern Sie es in ARIMAX und es sollte funktionieren
%Vor%Tags und Links python numpy statsmodels predict