Skip to main content

Autoregressiv Gleitend Durchschnittlich Python


Modelle der Volatilität Clustering: EWMA und GARCH (1,1) Volatilität Clustering ist eines der wichtigsten Merkmale der Finanzdaten, und die Einbindung in unsere Modelle kann eine realistischere Schätzung des Risikos zu produzieren. Volatilität Clustering ist aus der Tatsache, dass die heutige Volatilität ist positiv korreliert mit gestern Volatilität. Also, wenn gestern beobachtet hohe Volatilität, heute auch wir sind wahrscheinlich, hohe Volatilität zu beobachten. Dies bedeutet, dass die Volatilität von der verbleibenden Volatilität abhängig ist (bedingte Volatilität). Es gibt zwei Methoden, um dies zu berechnen: Exponential Weighted Moving Average (EWMA) EWMA ist eine häufig verwendete Methode zur Schätzung der Volatilität bei den finanziellen Erträgen. Diese Methode zur Berechnung der bedingten Varianz (Volatilität) gibt den aktuellen Beobachtungen mehr Gewicht als die bisherigen Beobachtungen. Der EWMA-Schätzer hat die folgende Form: r stellt die Renditen dar. Ist der Zerfallsfaktor, auch bekannt als Glättungskonstante. Dieser Faktor bestimmt das exponentiell abnehmende Gewichtungsschema der Beobachtungen. Auf diese Weise berücksichtigt EWMA die zeitabhängigen Abweichungen. Sorgt dafür, dass die heutige Varianz positiv mit der veränderten Volatilität korreliert ist. Ein hohes Lambda zeigt einen langsamen Abfall in der Reihe an, das heißt, eine hohe Varianz neigt dazu, für eine längere Zeit zu bestehen. RiskMetrics verwendet ein Lambda von 0,94, das für die Analyse von Tagesdaten geeignet ist. EWMA ist eigentlich eine Teilmenge von GARCH (1,1). Erfahren Sie mehr über EWMA Generalized Autoregressive Conditional Heteroscedasticity (GARCH (1,1)) GARCH ist ein weiteres Modell für die Schätzung der Volatilität, die sich um das Problem der Volatilität kümmert. GARCH wird von ARCH abgeleitet, d. h. autoregressive bedingte Heterosedastizität. AR bedeutet, dass die Modelle autoregressive Modelle in quadratischen Renditen sind, d. h. es gibt eine positive Korrelation zwischen dem Risiko gestern und dem Risiko heute. Bedingung bedeutet, dass die nächste Jahre Volatilität von den in diesem Zeitraum verfügbaren Informationen bedingt ist. Heterosedastizität bedeutet nicht konstante Volatilität. Es bedeutet, dass die Zeitreihe einer Zufallsvariablen eine zeitvariable Varianz aufweist. G steht für Generalized, was bedeutet, dass es sich um eine verallgemeinerte Version handelt, die unterschiedliche Faktoren in verschiedenen Märkten berücksichtigen kann. Die häufigste Form des GARCH-Modells ist GARCH (1,1). Dieses Modell wird dargestellt als: Das Schlüsselkonzept hier ist, dass die Volatilität eine Funktion von quadratischen verzögerten Renditen und verzögerten Abweichungen ist. Der Begriff (1,1) gibt diese 1 Verzögerung für jede quadrierte Rückkehr und quadrierte Varianz des Vortages an. Wo: ist das Gewicht für verzögerte quadratische Rückkehr ist das Gewicht für verzögerte Abweichungen ist eine Konstante gleich x VL, wobei VL die Langzeit-Varianz ist und ist seine GewichtTime-Serie Analyse: Eine Primer Zeitreihenanalyse ist ein komplexes Thema, aber kurz gesagt , Wenn wir unsere üblichen Querschnittstechniken wie Regression auf Zeitreihendaten verwenden, können Variablen bedeutender erscheinen, als sie wirklich sind und wir nutzen nicht die Informationen, die die serielle Korrelation in den Daten liefert. Was ist eine Zeitreihe Viele Datensätze sind im Querschnitt und stellen eine einzige Zeitscheibe dar. Allerdings haben wir auch Daten über viele Zeiträume gesammelt - wöchentliche Verkaufsdaten zum Beispiel. Dies ist ein Beispiel für Zeitreihendaten. Zeitreihenanalyse ist ein spezialisierter Zweig der Statistik, der ausgiebig in Bereichen wie Ökonometrie und Operations Research eingesetzt wird. Leider haben die meisten Marketingforscher und Datenwissenschaftler noch wenig ausgesetzt. Wie gut zu sehen, hat es viele sehr wichtige Anwendungen für Vermarkter. Nur um unsere Begriffe gerade zu bekommen, unten ist eine einfache Illustration, wie eine Zeitreihe-Datendatei aussieht. Die Spalte DATE ist die Datumsvariable und entspricht einer Befragten-ID in Umfrageforschungsdaten. WOCHE, die Sequenznummer jeder Woche, ist enthalten, weil die Verwendung dieser Spalte anstatt der tatsächlichen Daten können Grafiken weniger überladen machen. Die Sequenznummer kann auch als Trendvariable in bestimmten Arten von Zeitreihenmodellen dienen. VERKAUF ist die Anzahl der Packs, die in jeder Woche verkauft werden. Ich sollte beachten, dass die Einheit der Analyse nicht müssen Marken und können einzelne Verbraucher oder Gruppen von Verbrauchern, deren Verhalten im Laufe der Zeit verfolgt werden. Aber zuerst, warum müssen wir zwischen Querschnitts - und Zeitreihenanalyse unterscheiden. Aus mehreren Gründen ist es so, dass unsere Forschungsziele in der Regel unterschiedlich sind. Ein anderes ist, dass die meisten statistischen Methoden, die wir in der Schule lernen und in der Marketingforschung Gebrauch machen, für Querschnittsdaten gedacht sind, und wenn wir sie auf Zeitreihendaten anwenden, können die Ergebnisse, die wir erhalten, irreführend sein. Zeit ist eine Dimension in den Daten, die wir berücksichtigen müssen. Zeitreihenanalyse ist ein komplexes Thema, aber kurz, wenn wir unsere üblichen Querschnittstechniken wie Regression auf Zeitreihendaten verwenden: Standardfehler können weit weg sein. Mehr als oft nicht, p-Werte werden zu klein und Variablen können bedeutender erscheinen, als sie wirklich sind In einigen Fällen können Regressionskoeffizienten ernsthaft voreingenommen sein und wir nutzen nicht die Informationen, die die serielle Korrelation in den Daten liefert. Um zu unseren Beispieldaten zurückzukehren, könnte ein Ziel sein, den Verkauf für unsere Marke zu prognostizieren. Es gibt viele Möglichkeiten, dies zu tun und die einfachste ist eine univariate Analyse, in der wir im Wesentlichen künftige Daten aus vergangenen Daten extrapolieren. Zwei populäre univariate Zeitreihenmethoden sind Exponentialglättung (z. B. Holt-Winters) und ARIMA (Autoregressive Integrated Moving Average). In dem in Abbildung 1 dargestellten Beispiel wurde ein Jahr (52 Wochen) der historischen Verkaufsdaten verwendet, um den Umsatz ein Viertel (12 Wochen) mit einem ARIMA-Modell vorauszusagen. Offensichtlich gibt es Risiken in der Annahme, dass die Zukunft wie die Vergangenheit sein wird, aber zum Glück können wir auch kausale (Prädiktor-) Variablen dazu beitragen, diese Risiken zu lindern. Aber neben der Verbesserung der Genauigkeit unserer Prognosen, kann ein weiteres Ziel zu verstehen, welche Marketing-Aktivitäten am meisten beeinflussen Umsatz. Causal Variablen werden in der Regel Daten wie GRPs und Preis und können auch Daten aus Verbraucher-Umfragen oder exogenen Variablen wie BIP. Diese Arten von Analysen heißen Market Response oder Marketing Mix Modellierung und sind ein zentraler Bestandteil der ROMI (Return on Marketing Investment) Analyse. Sie können als Key-Treiber-Analyse für Zeitreihen-Daten gedacht werden. Die Ergebnisse werden oft in Simulationen verwendet, um den optimalen Marketing-Mix zu finden. Übertragen von Funktionsmodellen. ARMAX und Dynamic Regression sind Begriffe, die sich auf spezialisierte Regressionsverfahren beziehen, die für Zeitreihendaten entwickelt wurden. Es gibt noch mehr anspruchsvolle Methoden, und Ill berühren ein paar in nur ein bisschen. Mehrere Zeitreihen Vielleicht müssen Sie mehrere Zeitreihen gleichzeitig analysieren, z. B. Verkauf Ihrer Marken und Key-Konkurrenten. Abbildung 2 unten ist ein Beispiel und zeigt wöchentliche Verkaufsdaten für drei Marken über einen Zeitraum von einem Jahr. Da die Verkaufsbewegungen von Marken, die miteinander konkurrieren, typischerweise im Laufe der Zeit korreliert werden, wird es oft sinnvoll sein und statistisch strenger sein, um Daten für alle Schlüsselmarken in einem Modell einzuschließen, anstatt einzelne Modelle für jede Marke zu führen. Vector Autoregression (VAR), das Vector Error Correction Model (VECM) und das allgemeinere State Space Framework sind drei häufig verwendete Ansätze für mehrere Zeitreihenanalysen. Causal-Daten können aufgenommen werden und Market ResponseMarketing Mix-Modellierung durchgeführt. Es gibt mehrere zusätzliche Methoden, die für die Marketingforschung und die Datenwissenschaft relevant sind. Ill jetzt kurz beschreiben. Panel-Modelle enthalten Querschnitte in einer Zeitreihenanalyse. Vertriebs - und Marketingdaten für mehrere Marken können beispielsweise übereinander gestapelt und gleichzeitig analysiert werden. Panel-Modellierung erlaubt die Analyse der Kategorie-Ebene und ist auch praktisch, wenn Daten selten sind (z. B. monatlich oder vierteljährlich). Die Longitudinalanalyse ist ein generischer und manchmal verwirrend verwendeter Begriff, der sich auf Panelmodellierung mit einer kleinen Anzahl von Perioden (Short Panels) sowie auf Repeated Measures, Growth Curve Analysis oder Multilevel Analysis beziehen kann. Im wörtlichen Sinne nimmt er Zeitreihenanalyse auf, aber viele Behörden behalten diesen Begriff für die Analyse von Daten mit vielen Zeitperioden (z. B. gt 25) vor. Strukturelle Gleichungsmodellierung (SEM) ist eine Methode, die in der Growth Curve Modellierung und anderen Längsschnittanalysen weit verbreitet ist. Überlebensanalyse ist ein Zweig der Statistik für die Analyse der erwarteten Zeitdauer, bis ein oder mehrere Ereignisse passieren, wie der Tod in biologischen Organismen und das Versagen in mechanischen Systemen. Es heißt auch Daueranalyse in Wirtschaftswissenschaften und Ereignisgeschichte Analyse in Soziologie. Es wird oft in der Kunden-Churn-Analyse verwendet. In einigen Fällen wird ein Modell nicht passen eine ganze Serie gut, weil der strukturellen Veränderungen innerhalb der Serie, und Modell-Parameter variieren über die Zeit. Es gibt zahlreiche Breakpoint-Tests und Modelle (z. B. State Space. Switching Regression) für diese Umstände zur Verfügung. Sie können auch feststellen, dass Verkäufe, Call-Center-Aktivität oder andere Datenreihen, die Sie verfolgen, Ausstellungscluster von Volatilität. Das heißt, es kann Zeiten geben, in denen sich die Figuren in viel extremerer Weise auf und ab bewegen als andere Perioden. Abbildung 3 zeigt eine Art von Muster. In diesen Fällen sollten Sie eine Klasse von Modellen mit dem verbotenen Namen von GARCH (generalisierte autoregressive bedingte Heteroskedastizität) betrachten. ARCH - und GARCH-Modelle wurden ursprünglich für Finanzmärkte entwickelt, können aber für andere Arten von Zeitreihendaten verwendet werden, wenn die Volatilität von Interesse ist. Volatilität kann in viele Muster fallen und dementsprechend gibt es viele Aromen von GARCH-Modellen. Kausalvariablen können aufgenommen werden. Es gibt auch multivariate Erweiterungen (MGARCH), wenn du zwei oder mehr Serien hast, die du gemeinsam analysieren möchtest. Nicht-parametrische Ökonometrie ist ein ganz anderer Ansatz für das Studium von Zeitreihen und Längsschnittdaten, die jetzt viel Aufmerksamkeit erlangen, weil große Daten und die größere Rechenleistung, die wir jetzt genießen. Diese Methoden sind zunehmend machbar und nützlich als Alternativen zu den vertrauteren Methoden wie den in diesem Artikel beschriebenen. Maschinelles Lernen (z. B. künstliche Neuronale Netze) ist auch unter Umständen nützlich, aber die Ergebnisse können schwer zu interpretieren sein - sie prognostizieren gut, können aber nicht helfen, den Mechanismus zu verstehen, der auf Daten (das Warum) erzeugt wurde. In gewissem Maße gilt dieser Nachteil auch für nichtparametrische Techniken. Die meisten Methoden, die erwähnt werden, sind Time Domain Techniken. Eine andere Gruppe von Methoden, die als Frequency Domain bekannt sind. Spielt eine engere Rolle in der Marketingforschung. Ive kaum kratzte die Oberfläche eines reichen und vielfältigen Satz von Techniken, die neu für die meisten Marketing-Forscher und Data Scientists sind, aber immer wichtiger für unsere Arbeit. Für Leser, die mehr über diese Methoden erfahren möchten, gibt es jetzt Online-Kurse und viele hervorragende Einführungslehrbücher, sowie solche, die spezifische Themen in der Tiefe abdecken. Bio: Kevin Grey ist Präsident von Cannon Grey. Eine Marketingwissenschaft und Analytikberatung. Original. Reposted with permission. How zum Erstellen eines ARIMA-Modells für die Zeitreihe Vorhersage mit Python Eine beliebte und weit verbreitete statistische Methode für die Zeitreihenvorhersage ist das ARIMA-Modell. ARIMA ist ein Akronym, das für AutoRegressive Integrated Moving Average steht. Es ist eine Klasse von Modell, das eine Reihe von verschiedenen Standard-temporalen Strukturen in Zeitreihen-Daten erfasst. In diesem Tutorial werden Sie entdecken, wie man ein ARIMA-Modell für Zeitreihendaten mit Python entwickelt. Nach Abschluss dieses Tutorials werden Sie wissen: Über das ARIMA-Modell werden die verwendeten Parameter und Annahmen des Modells verwendet. Wie man ein ARIMA-Modell auf Daten passt und es verwendet, um Prognosen zu machen. So konfiguriere ich das ARIMA-Modell auf deinem Zeitreihenproblem. Let8217s begonnen Autoregressives integriertes Moving Average Modell Ein ARIMA Modell ist eine Klasse statistischer Modelle zur Analyse und Prognose von Zeitreihendaten. Es bietet explizit eine Reihe von Standardstrukturen in Zeitreihendaten und bietet so eine einfache, aber leistungsstarke Methode, um geschickte Zeitreihenprognosen zu erstellen. ARIMA ist ein Akronym, das für AutoRegressive Integrated Moving Average steht. Es ist eine Verallgemeinerung des einfacheren AutoRegressive Moving Average und fügt den Begriff der Integration hinzu. Dieses Akronym ist beschreibend und erfasst die Schlüsselaspekte des Modells selbst. Kurz gesagt, sie sind: AR. Autoregression Ein Modell, das die abhängige Beziehung zwischen einer Beobachtung und einer Anzahl von verzögerten Beobachtungen verwendet. ICH . Integriert Die Verwendung der Differenzierung von Rohbeobachtungen (z. B. Subtrahieren einer Beobachtung von einer Beobachtung zum vorherigen Zeitschritt), um die Zeitreihe stationär zu machen. MA Gleitender Durchschnitt . Ein Modell, das die Abhängigkeit zwischen einer Beobachtung und einem Restfehler aus einem gleitenden Durchschnittsmodell verwendet, das auf verzögerte Beobachtungen angewendet wird. Jede dieser Komponenten wird explizit im Modell als Parameter angegeben. Eine Standardnotation wird von ARIMA (p, d, q) verwendet, wobei die Parameter mit ganzzahligen Werten ersetzt werden, um schnell das spezifische ARIMA-Modell anzuzeigen. Die Parameter des ARIMA-Modells sind wie folgt definiert: p. Die Anzahl der Lag-Beobachtungen, die im Modell enthalten sind, wird auch als Lag-Order bezeichnet. D. Die Anzahl der Zeiten, in denen die Rohbeobachtungen unterschieden werden, wird auch der Grad der Differenzierung genannt. Q Die Größe des gleitenden durchschnittlichen Fensters, auch die Reihenfolge der gleitenden Durchschnitt genannt. Ein lineares Regressionsmodell wird aufgebaut, einschließlich der spezifizierten Anzahl und Art der Ausdrücke, und die Daten werden durch einen Grad der Differenzierung vorbereitet, um sie stationär zu machen, d. h. um Trend - und Saisonstrukturen zu entfernen, die das Regressionsmodell negativ beeinflussen. Für einen Parameter kann ein Wert von 0 verwendet werden, der anzeigt, dass er dieses Element des Modells nicht verwendet. Auf diese Weise kann das ARIMA-Modell so konfiguriert werden, dass es die Funktion eines ARMA-Modells und sogar eines einfachen AR-, I - oder MA-Modells ausführt. Die Annahme eines ARIMA-Modells für eine Zeitreihe geht davon aus, dass der zugrundeliegende Prozess, der die Beobachtungen erzeugt hat, ein ARIMA-Prozess ist. Dies mag offensichtlich erscheinen, aber hilft, die Notwendigkeit zu motivieren, die Annahmen des Modells in den rohen Beobachtungen und in den Restfehlern der Prognosen aus dem Modell zu bestätigen. Als nächstes sehen let8217s einen Blick darauf, wie wir das ARIMA-Modell in Python verwenden können. Wir beginnen mit dem Laden einer einfachen, univariaten Zeitreihe. Hör auf zu lernen Zeitreihe Vorhersage der langsamen Weg Anmeldung und bekomme eine kostenlose 7-Tage-Zeitreihe Vorhersage Mini-Kurs Sie erhalten:. Eine Lektion jeden Tag an Ihren Posteingang geliefert. Exklusives PDF ebook mit allen Lektionen. Vertrauen und Fähigkeiten, um durch eigene Projekte zu arbeiten Shampoo Sales Dataset Dieser Datensatz beschreibt die monatliche Anzahl der Verkäufe von Shampoo über einen Zeitraum von 3 Jahren. Die Einheiten sind ein Verkaufszähler und es gibt 36 Beobachtungen. Der ursprüngliche Datensatz wird Makridakis, Wheelwright und Hyndman (1998) gutgeschrieben. Laden Sie den Datensatz herunter und platzieren Sie ihn in Ihrem aktuellen Arbeitsverzeichnis mit dem Dateinamen 8220 shampoo-sales. csv 8220. Im Folgenden finden Sie ein Beispiel für das Laden des Shampoo-Verkaufsdatensatzes mit Pandas mit einer benutzerdefinierten Funktion, um das Datumszeitfeld zu analysieren. Der Datensatz wird in einem beliebigen Jahr, in diesem Fall 1900, basteliert. Zuerst erhalten wir ein Zeilenplot der Restfehler, was darauf hindeutet, dass es noch einige Trendinformationen gibt, die nicht vom Modell erfasst werden. ARMA Fit Residual Error Line Plot Als nächstes erhalten wir ein Dichte-Diagramm der Restfehlerwerte, was darauf hindeutet, dass die Fehler Gaussian sind, aber nicht auf Null zentriert sein können. ARMA Fit Residual Error Density Plot Die Verteilung der Restfehler wird angezeigt. Die Ergebnisse zeigen, dass es tatsächlich eine Vorspannung in der Vorhersage gibt (ein Nicht-Null-Mittelwert in den Residuen). Beachten Sie, dass, obwohl oben wir den gesamten Datensatz für die Zeitreihenanalyse verwendet haben, idealerweise würden wir diese Analyse nur auf dem Trainingsdatensatz bei der Entwicklung eines prädiktiven Modells durchführen. Als nächstes sehen let8217s, wie wir das ARIMA-Modell verwenden können, um Prognosen zu machen. Rolling Forecast ARIMA Modell Das ARIMA Modell kann verwendet werden, um zukünftige Zeitschritte vorherzusagen. Wir können die Vorhersage () - Funktion auf dem ARIMAResults-Objekt verwenden, um Vorhersagen zu machen. Es akzeptiert den Index der Zeitschritte, um Vorhersagen als Argumente zu machen. Diese Indizes beziehen sich auf den Beginn des Trainings-Datensatzes, der verwendet wird, um Vorhersagen zu machen. Wenn wir 100 Beobachtungen im Trainingsdatensatz verwendet haben, um das Modell anzupassen, dann würde der Index des nächsten Zeitschritts zur Vorhersage der Vorhersagefunktion als start101, end101 angegeben. Dies würde ein Array mit einem Element zurückgeben, das die Vorhersage enthält. Wir würden auch lieber die prognostizierten Werte in der ursprünglichen Skala sein, falls wir irgendwelche differencing (dgt0 bei der Konfiguration des Modells) durchgeführt haben. Dies kann durch Setzen des Typ-Arguments auf den Wert 8216levels8217 angegeben werden. Typ8217levels8217 Alternativ können wir alle diese Spezifikationen vermeiden, indem wir die Prognose () - Funktion verwenden, die eine einstufige Prognose mit dem Modell ausführt. Wir können den Trainingsdatensatz in Zug - und Test-Sets aufteilen, den Zug an das Modell anpassen und eine Vorhersage für jedes Element auf dem Test-Set generieren. Eine rollende Prognose ist erforderlich, da die Abhängigkeit von Beobachtungen in früheren Zeitschritten zur Differenzierung und dem AR-Modell gegeben ist. Ein grober Weg, um diese rollende Prognose durchzuführen, besteht darin, das ARIMA-Modell nach jeder neuen Beobachtung neu zu erstellen. Wir verfolgen alle Beobachtungen manuell in einer Liste, die als Historie bezeichnet wird, die mit den Trainingsdaten ausgesät wird und an welche neue Beobachtungen jede Iteration angehängt wird. Setzen wir das alles zusammen, unten ist ein Beispiel für eine rollende Prognose mit dem ARIMA-Modell in Python. Es wird ein Zeilenplot erstellt, das die erwarteten Werte (blau) im Vergleich zu den Rollvorhersagevorhersagen (rot) zeigt. Wir können sehen, die Werte zeigen einen Trend und sind in der richtigen Skala. ARIMA Rolling Forecast Line Plot Das Modell könnte eine weitere Abstimmung der p, d und vielleicht sogar der q Parameter verwenden. Konfigurieren eines ARIMA-Modells Der klassische Ansatz zur Anpassung eines ARIMA-Modells folgt der Box-Jenkins-Methodik. Dies ist ein Prozess, der Zeitreihenanalyse und Diagnose verwendet, um gute Parameter für das ARIMA-Modell zu entdecken. Zusammenfassend sind die Schritte dieses Prozesses wie folgt: Modellidentifikation. Verwenden Sie Plots und Zusammenfassungsstatistiken, um Trends, Saisonalität und Autoregressionselemente zu identifizieren, um eine Vorstellung von der Menge der Differenzierung und der Größe der Verzögerung zu erhalten, die erforderlich ist. Parameterschätzung. Verwenden Sie ein passendes Verfahren, um die Koeffizienten des Regressionsmodells zu finden. Modellprüfung. Verwenden Sie Plots und statistische Tests der Restfehler, um die Menge und Art der zeitlichen Struktur zu bestimmen, die nicht vom Modell erfasst wird. Der Prozeß wird wiederholt, bis entweder ein wünschenswerter Grad an Anpassung an den in-Probe - oder Out-of-Probe-Beobachtungen (z. B. Trainings - oder Test-Datasets) erreicht wird. Der Prozess wurde im klassischen 1970 Lehrbuch zum Thema Zeitreihenanalyse: Vorhersage und Kontrolle von George Box und Gwilym Jenkins beschrieben. Eine aktualisierte 5. Auflage ist jetzt verfügbar, wenn Sie daran interessiert sind, tiefer in diese Art von Modell und Methodik zu gehen. Angesichts der Tatsache, dass das Modell effizient auf zeitlich begrenzte Zeitreihen-Datensätze angepasst werden kann, können die Raster-Suchparameter des Modells ein wertvoller Ansatz sein. In diesem Tutorial haben Sie entdeckt, wie man ein ARIMA-Modell für die Zeitreihen-Prognose in Python entwickelt. Im Einzelnen haben Sie gelernt: Über das ARIMA-Modell, wie es konfiguriert werden kann, und Annahmen des Modells. So führen Sie eine schnelle Zeitreihenanalyse mit dem ARIMA-Modell durch. Wie man ein ARIMA-Modell verwendet, um aus Prognosen zu probieren. Hast du irgendwelche Fragen über ARIMA oder über dieses Tutorial Fragen Sie Ihre Fragen in den Kommentaren unten und ich werde mein Bestes tun, um zu antworten. Willst du Zeitreihe entwickeln Prognosen mit Python Entwickeln Sie Ihre eigenen Prognosen in Minuten mit nur ein paar Zeilen von Python-Code Es umfasst Selbststudium Tutorials und End-to-End-Projekte zu Themen wie: Laden von Daten. Visualisierung Modellierung Algorithmus-Abstimmung. und vieles mehr. Schließlich Bring Time Series Prognose zu eigenen Projekten Skip the Academics. Nur Ergebnisse. Kevin 17. Januar 2017 um 12:58 Uhr Gibt mir viele Fehler: Traceback (letzter Anruf zuletzt): Datei 8220Userskevinoostanacondalibpython3.5site-packagespandasioparsers. py8221, Zeile 2276, im Konverter dateparser (datecols), errors8217ignore8217) Datei 8220UserskevinoostPycharmProjectsARIMAmain. py8221, Zeile 6, in Parser return datetime. strptime (82161908217x, 8216Y-m8217) TypeError: strptime () Argument 1 muss str sein, nicht numpy. ndarray Während der Behandlung der obigen Ausnahme trat eine weitere Ausnahme auf: Traceback (letzter Anruf zuletzt): Datei 8220Userskevinoostanacondalibpython3.5site-packagespandasioparsers. py8221, Zeile 2285, im Konverter dayfirstdayfirst), Datei 8220pandassrcinference. pyx8221, Zeile 841, in pandas. lib. tryparsedates (pandaslib. c: 57884) Datei 8220pandassrcinference. pyx8221, Zeile 838, in pandas. lib. Tryparsedate (pandaslib. c: 57802) Datei 8220UserskevinoostPycharmProjectsARIMAmain. py8221, Zeile 6, in Parser return datetime. strptime (82161908217x, 8216Y-m8217) Datei 8220Userskevinoostanacondalibpython3.5strptime. py8221, Zeile 510, in strptimedatetime tt, Fraktion strptime (datastring, format ) Datei 8220Userskevinoostanacondalibpython3.5strptime. py8221, Zeile 343, in strptime (datastring, format)) ValueError: Zeitdaten 8216190Versand von Shampoo über einen Zeitraum von drei Jahren8217 stimmt nicht mit dem Format überein 8216Y-m8217 Während der Behandlung der obigen Ausnahme trat eine weitere Ausnahme auf: Traceback (Letzter Anruf zuletzt): Datei 8220UserskevinoostPycharmProjectsARIMAmain. py8221, Zeile 8, in Serie readcsv (8216shampoo-sales. csv8217, header0, parsedates0, indexcol0, squeezeTrue, dateparserparser) Datei 8220Userskevinoostanacondalibpython3.5site-packagespandasioparsers. py8221, Zeile 562, in parserf return Lesen (filepathorbuffer, kwds) Datei 8220Userskevinoostanacondalibpython3.5site-packagespandasioparsers. py8221, Zeile 325, in read return parser. read () Datei 8220Userskevinoostanacondalibpython3.5site-packagespandasioparsers. py8221, Zeile 815, in read ret self. engine. read (nrows) Datei 8220Userskevinoostanacondalibpython3.5site-packagespandasioparsers. py8221, Zeile 1387, im Leseindex, Namen self. makeindex (Daten, alldata, Namen) Datei 8220Userskevinoostanacondalibpython3.5site-packagespandasioparsers. py8221, Zeile 1030, in makeindex index self. aggindex (index) Datei 8220Userskevinoostanacondalibpython3. 5site-packagespandasioparsers. py8221, Zeile 1111, in aggindex arr self. dateconv (arr) Datei 8220Userskevinoostanacondalibpython3.5site-packagespandasioparsers. py8221, Zeile 2288, im Konverter zurück genericparser (dateparser, datecols) Datei 8220Userskevinoostanacondalibpython3.5site-packagespandasiodateconverters. py8221, Zeile 38 , In genericparser resultsi parsefunc (args) Datei 8220UserskevinoostPycharmProjectsARIMAmain. py8221, Zeile 6, in Parser return datetime. strptime (82161908217x, 8216Y-m8217) Datei 8220Userskevinoostanacondalibpython3.5strptime. py8221, Zeile 510, in strptimedatetime tt, Fraktion strptime (datastring, format) Datei 8220Userskevinoostanacondalibpython3.5strptime. py8221, Zeile 343, in strptime (datastring, format)) ValueError: Zeitdaten 8216190Versand von Shampoo über einen Zeitraum von drei Jahren8217 stimmt nicht mit dem Format überein 8216Y-m8217 Prozess beendet mit Exit-Code 1 Hilfe wäre sehr geschätzt. Es sieht so aus, als könnte es ein Problem mit Ihrer Datendatei geben. Öffnen Sie die csv in einem Texteditor und bestätigen Sie, dass die Kopfzeile sinnvoll ist. Außerdem bestätigen Sie, dass Sie am Ende der Datei keine zusätzlichen Daten haben. Manchmal können die Datamarket-Dateien mit Footer-Daten herunterladen, die Sie löschen müssen. NGUYEN Quang Anh 19. Januar 2017 um 18.28 Uhr Lassen Sie sagen, ich habe eine Zeitreihe Daten mit vielen Attribut. Zum Beispiel hat eine Reihe (Geschwindigkeit, Treibstoff, Reifendruck), wie konnten wir ein Modell aus diesem heraus machen. Der Wert jeder Spalte kann sich gegenseitig beeinflussen, also können wir keine Prognose auf nur 1 Spalte machen. Ich google viel, aber all das Beispiel I8217ve gefunden bisher nur Arbeit auf Zeitreihe von 1 Attribut. Dies wird als multivariate Zeitreihenvorhersage bezeichnet. Lineare Modelle wie ARIMA waren nicht für diese Art von Problem konzipiert. Im Allgemeinen können Sie die verzögerungsbasierte Darstellung jedes Merkmals verwenden und dann einen Standard-Lernalgorithmus anwenden. Ich hoffe, bald etwas Tutorials zu haben. Muyi Ibidun 7. Februar 2017 um 9:36 Uhr Ihr Problem passt zu den VAR (Vector Autoregression) Modellen. Weitere Informationen finden Sie in den folgenden Links. Ich hoffe das hilft Ihrer Arbeit. Kelvid Januar 20, 2017 um 11:55 Uhr Hallo, hättest du ein Beispiel für die saisonale ARIMA Post Ich habe das letzte statsmodels Modul installiert, aber es gibt einen Fehler beim Import der SARIMAX. Hilf dir, wenn du es geschafft hast, es herauszufinden. Vielen Dank. Sebastian 31. Januar 2017 um 3:33 Uhr Großer Beitrag Jason Ich habe ein paar Fragen: 8211 Nur um sicher zu sein. Modelfit. forecast () ist Einzelschritt voraus Prognosen und modelfit. predict () ist für mehrere Schritt voraus Prognosen 8211 Ich arbeite mit einer Serie, die scheint zumindest ganz ähnlich wie die Shampoo-Serie (durch Inspektion). Wenn ich die Vorhersage über die Trainingsdaten verwende, bekomme ich auch dieses Zick-Zack-Muster in der Vorhersage. Aber für die Testdaten ist die Vorhersage viel glatter und scheint auf einer gewissen Ebene zu sättigen. Würden Sie das erwarten Wenn nicht, was könnte falsch sein Ja, Prognose () ist für einen Schritt Prognosen. Sie können einen Schritt Vorhersagen mit Vorhersage () auch, aber es ist mehr Arbeit. Ich würde nicht erwarten, Vorhersage über ein paar Zeit Schritte, um sehr genau zu sein, wenn das ist Ihre Frage Sebastian 3. Februar 2017 um 9:25 Uhr Danke für die Antwort In Bezug auf die zweite Frage. Ja, Sie haben Recht, die Vorhersage ist nicht sehr genau. Darüber hinaus hat die vorhergesagte Zeitreihe einen völlig anderen Frequenzinhalt. Wie gesagt, es ist glatt und nicht zickzackig wie die Originaldaten. Ist das normal oder mache ich etwas falsch Ich habe auch versucht, die mehrstufige Vorhersage (modelfit. predict ()) auf die Trainingsdaten und dann die Prognose scheinen mehr oder weniger die gleiche Frequenz Inhalt (mehr zickzackig) als die Daten, die ich versuche zu prognostizieren. Hallo Sebastian, ich sehe. Im Falle der Vorhersage des Trainings-Datensatzes hat das Modell Zugriff auf reale Beobachtungen. Zum Beispiel, wenn Sie die nächsten 5 obs irgendwo in der Trainings-Dataset vorhersagen, wird es obs (t4) verwenden, um t5 eher als Vorhersage (t4) vorherzusagen. Im Falle der Vorhersage über das Ende der Modell-Daten, es hat keine obs Vorhersagen (es sei denn, Sie bieten ihnen), hat es nur Zugriff auf die Vorhersagen, die es für vorherige Zeit Schritte gemacht. Das Ergebnis sind die Fehler zusammen und die Dinge gehen von den Schienen schnell (flache Prognose). Macht das Sinn für James Zhang 10. Februar 2017 um 19.22 Uhr Vielen Dank für die Post, sehr gut geschrieben Ich habe eine Frage: Also habe ich deinen Ansatz benutzt, um das Modell zu bauen, aber wenn ich versuche, die Daten zu prognostizieren Sind aus der Probe, ich kommentiert die obs testt und ändern history. append (obs) zu history. append (yhat), und ich bekam eine flache Vorhersage8230 so was könnte der Grund und wie machen Sie tatsächlich die out-of - Beispielvorhersagen basierend auf dem Modell, das auf dem Zug-Dataset basiert ist Vielen Dank Jede Schleife in der rollenden Prognose zeigt Ihnen, wie Sie eine einstufige Probeprognose machen können. Trainiere deine ARIMA auf alle verfügbaren Daten und rufe Prognose () an. Wenn Sie eine mehrstufige Prognose durchführen möchten, müssen Sie vorher vorhergehende Prognosen als 8220observations8221 behandeln und sie für nachfolgende Prognosen verwenden. Sie können dies automatisch mit der Vorhersage () - Funktion ausführen. Je nach Problem ist dieser Ansatz oft nicht geschickt (z. B. eine flache Prognose). James 16. Februar 2017 um 02:03 Uhr

Comments