Ich habe gerade angefangen, an der Zeitreihenanalyse mit Hilfe von Statistikmodellen zu arbeiten. Ich habe einen Datensatz mit Daten und Werten (für ca. 3 Monate). Ich stehe vor einigen Problemen mit der richtigen Ordnung für das ARIMA-Modell. Ich versuche, mich auf Trends und Saisonalität einzustellen und dann Ausreißer zu berechnen.
Meine 'Werte' sind nicht stationär und statsmodel sagt, dass ich entweder Stationarität induzieren muss oder eine Differenzierung bereitstellen muss, damit es funktioniert. Ich habe mit verschiedenen Ordnungen herumgespielt (ohne tief über die Konsequenzen der Veränderung von p, q und d zu verstehen).
Wenn ich 1 für die Differenzierung einführe, erhalte ich diesen Fehler:
%Vor%Wenn ich die Differenzierung entferne, indem ich meine Bestellung als (sagen wir) Ordnung = (2,0,1) habe, Ich bekomme diesen Fehler:
%Vor%Jede Hilfe zur Förderung der Stationarität (oder ein Link zu einem netten Tutorial) wäre hilfreich. Und auch Tests der Stationarität (wie Ссылка ) wären nützlich .
Update: Ich lese durch den ADF-Test:
%Vor%Danke! PD.
Um Stationarität zu induzieren:
Es gibt mehrere Möglichkeiten, die Stationarität einer Zeitreihe zu erreichen - Box-Cox-Familie von Transformationen, Differenzieren usw., Die Wahl der Methode hängt von den Daten ab. Unten sind die allgemein verwendeten Tests für Stationarität.
Tests auf Stationarität: 1. Erweiterter Dickey-Fuller-Test 2. KPSS-Test KPSS-Python-Code
Sie können R-Skript anstelle von Statmodellen verwenden. R ist für die statistische Schätzung leistungsfähiger.
Wenn Sie Python verwenden möchten, können Sie R-Skript von einem Python über die os-Schnittstelle ausführen:
zB R-Skript für Arima-Schätzung "arimaestimation.r":
%Vor%Und rufen Sie ihn mit Python über JSON-Schnittstelle:
%Vor%und Sie erhalten die Antwort:
%Vor%Tags und Links python time-series statsmodels