Thursday 19 January 2017

Autoregressive Moving Average Tutorial

Die ARIMA-Modelle sind in der Theorie die allgemeinste Klasse von Modellen für die Prognose einer Zeitreihe, die durch Differenzierung (falls nötig) vielleicht 8220 stationär gemacht werden kann8221. ARIMA (p, d, q) In Verbindung mit nichtlinearen Transformationen, wie zB Protokollierung oder Abscheidung (falls erforderlich). Eine Zufallsvariable, die eine Zeitreihe ist, ist stationär, wenn ihre statistischen Eigenschaften alle über die Zeit konstant sind. Eine stationäre Reihe hat keinen Trend, ihre Variationen um ihren Mittelwert haben eine konstante Amplitude, und sie wackelt in einer konsistenten Weise. D. h. seine kurzzeitigen Zufallszeitmuster sehen immer im statistischen Sinne gleich aus. Die letztgenannte Bedingung bedeutet, daß ihre Autokorrelationen (Korrelationen mit ihren eigenen vorherigen Abweichungen vom Mittelwert) über die Zeit konstant bleiben oder daß ihr Leistungsspektrum über die Zeit konstant bleibt. Eine zufällige Variable dieser Form kann (wie üblich) als eine Kombination von Signal und Rauschen betrachtet werden, und das Signal (wenn eines offensichtlich ist) könnte ein Muster einer schnellen oder langsamen mittleren Reversion oder einer sinusförmigen Oszillation oder eines schnellen Wechsels im Vorzeichen sein , Und es könnte auch eine saisonale Komponente. Ein ARIMA-Modell kann als ein 8220filter8221 betrachtet werden, der versucht, das Signal vom Rauschen zu trennen, und das Signal wird dann in die Zukunft extrapoliert, um Prognosen zu erhalten. Die ARIMA-Vorhersagegleichung für eine stationäre Zeitreihe ist eine lineare (d. h. Regressionstyp) Gleichung, bei der die Prädiktoren aus Verzögerungen der abhängigen Variablen und oder Verzögerungen der Prognosefehler bestehen. Das heißt: Vorhergesagter Wert von Y eine Konstante und oder eine gewichtete Summe aus einem oder mehreren neuen Werten von Y und oder einer gewichteten Summe aus einem oder mehreren neuen Werten der Fehler. Wenn die Prädiktoren nur aus verzögerten Werten von Y bestehen, handelt es sich um ein reines autoregressives Modell (8220 selbst-regressed8221), das nur ein Spezialfall eines Regressionsmodells ist und mit einer Standard-Regressions-Software ausgestattet werden kann. Beispielsweise ist ein autoregressives Modell erster Ordnung (8220AR (1) 8221) für Y ein einfaches Regressionsmodell, bei dem die unabhängige Variable nur um eine Periode (LAG (Y, 1) in Statgraphics oder YLAG1 in RegressIt) verzögert ist. Wenn einige der Prädiktoren Verzögerungen der Fehler sind, handelt es sich bei einem ARIMA-Modell nicht um ein lineares Regressionsmodell, da es keine Möglichkeit gibt, 8220last period8217s error8221 als unabhängige Variable festzulegen: Die Fehler müssen auf einer Periodenperiode berechnet werden Wenn das Modell an die Daten angepasst ist. Aus technischer Sicht ist das Problem der Verwendung von verzögerten Fehlern als Prädiktoren, dass die Vorhersagen von model8217s keine linearen Funktionen der Koeffizienten sind. Obwohl es sich um lineare Funktionen der vergangenen Daten handelt. Daher müssen Koeffizienten in ARIMA-Modellen, die verzögerte Fehler enthalten, durch nichtlineare Optimierungsmethoden (8220hill-climbing8221) abgeschätzt werden, anstatt nur ein Gleichungssystem zu lösen. Das Akronym ARIMA steht für Auto-Regressive Integrated Moving Average. Lags der stationären Reihe in der Prognose-Gleichung werden als autoregressiveQuot-Terme bezeichnet, die Verzögerungen der Prognosefehler werden als mittlere Mittelwert-Terme bezeichnet und eine Zeitreihe, die differenziert werden muß, um stationär gemacht zu werden, wird als eine integrierte quotierte Version einer stationären Reihe bezeichnet. Random-walk und random-trend Modelle, autoregressive Modelle und exponentielle Glättungsmodelle sind alle Sonderfälle von ARIMA Modellen. Ein nicht-saisonales ARIMA-Modell wird als ein quotarIMA-Modell (p, d, q) klassifiziert, wobei p die Anzahl der autoregressiven Terme ist, d die Anzahl der für die Stationarität benötigten nicht-seasonalen Differenzen ist und q die Anzahl der verzögerten Prognosefehler ist Die Vorhersagegleichung. Die Vorhersagegleichung ist wie folgt aufgebaut. Zuerst bezeichne y die d - te Differenz von Y. Das bedeutet, daß die zweite Differenz von Y (der Fall d2) nicht die Differenz von 2 Perioden ist. Es ist vielmehr die erste Differenz der ersten Differenz. Was das diskrete Analogon einer zweiten Ableitung ist, d. h. die lokale Beschleunigung der Reihe anstatt ihres lokalen Takts. In Bezug auf y. Ist die allgemeine Prognosegleichung: Hier sind die gleitenden Durchschnittsparameter (9528217s) so definiert, daß ihre Vorzeichen in der Gleichung negativ sind, und zwar nach der Konvention von Box und Jenkins. Einige Autoren und Software (einschließlich der Programmiersprache R) definieren sie so, dass sie stattdessen Pluszeichen haben. Wenn tatsächliche Zahlen in die Gleichung gesteckt werden, gibt es keine Mehrdeutigkeit, aber es ist wichtig zu wissen, welche Konvention Ihre Software verwendet, wenn Sie die Ausgabe lesen. Oft werden dort die Parameter mit AR (1), AR (2), 8230 und MA (1), MA (2), 8230 usw. bezeichnet. Um das entsprechende ARIMA-Modell für Y zu identifizieren, beginnt man die Reihenfolge der Differenzierung zu bestimmen (D) Notwendigkeit, die Serie zu stationarisieren und die Brutto-Merkmale der Saisonalität zu entfernen, möglicherweise in Verbindung mit einer variationsstabilisierenden Transformation, wie z. B. Protokollierung oder Entleerung. Wenn Sie an diesem Punkt anhalten und voraussagen, dass die differenzierten Serien konstant sind, haben Sie lediglich ein zufälliges oder zufälliges Trendmodell platziert. Die stationäre Reihe kann jedoch noch autokorrelierte Fehler aufweisen, was nahe legt, daß in der Vorhersagegleichung auch eine Anzahl von AR-Terme (p 8805 1) und / oder einige MA-MA-Terme (q 8805 1) benötigt werden. Der Prozess der Bestimmung der Werte von p, d und q, die für eine gegebene Zeitreihe am besten sind, werden in späteren Abschnitten der Notizen (deren Links oben auf dieser Seite sind), aber eine Vorschau von einigen der Typen erörtert Von nicht-saisonalen ARIMA-Modellen, die üblicherweise angetroffen werden, ist unten angegeben. ARIMA (1,0,0) Autoregressives Modell erster Ordnung: Wenn die Serie stationär und autokorreliert ist, kann sie möglicherweise als ein Vielfaches ihres eigenen vorherigen Wertes plus einer Konstante vorhergesagt werden. Die Prognose-Gleichung ist in diesem Fall 8230, die Y auf sich selbst zurückgeblieben um eine Periode zurückgeblieben ist. Dies ist ein 8220ARIMA (1,0,0) constant8221 Modell. Wenn der Mittelwert von Y Null ist, dann würde der konstante Term nicht eingeschlossen werden. Wenn der Steigungskoeffizient 981 & sub1; positiv und kleiner als 1 in der Grße ist (er muß kleiner als 1 in der Grße sein, wenn Y stationär ist), beschreibt das Modell ein Mittelrücksetzverhalten, bei dem der nächste Periodenblockwert 981 1 mal als vorhergesagt werden sollte Weit weg vom Durchschnitt, wie dieser Zeitraum8217s Wert. Wenn 981 & sub1; negativ ist, prognostiziert es ein Mittelwert-Umkehrverhalten mit einer Veränderung von Vorzeichen, d. h. es sagt auch voraus, daß Y unterhalb der mittleren nächsten Periode liegt, wenn sie über dem Mittel dieser Periode liegt. In einem autoregressiven Modell zweiter Ordnung (ARIMA (2,0,0)), würde es auch einen Yt-2-Term auf der rechten Seite geben, und so weiter. Abhängig von den Zeichen und Größen der Koeffizienten kann ein ARIMA (2,0,0) - Modell ein System beschreiben, dessen mittlere Reversion sinusförmig oszillierend erfolgt, wie die Bewegung einer Masse auf einer Feder, die zufälligen Schocks ausgesetzt ist . ARIMA (0,1,0) zufälliger Weg: Wenn die Reihe Y nicht stationär ist, ist das einfachste Modell für sie ein zufälliges Wandermodell, das als Grenzfall eines AR (1) - Modells betrachtet werden kann, in dem die autoregressive Koeffizient ist gleich 1, dh eine Reihe mit unendlich langsamer mittlerer Reversion. Die Vorhersagegleichung für dieses Modell kann folgendermaßen geschrieben werden: wobei der konstante Term die mittlere Periodenperiodenänderung (dh die Langzeitdrift) in Y ist. Dieses Modell könnte als ein No-Intercept-Regressionsmodell eingebaut werden, in dem die Die erste Differenz von Y ist die abhängige Variable. Da es nur einen nicht sonderbaren Unterschied und einen konstanten Term enthält, wird er als quotarima (0,1,0) - Modell mit constant. quot klassifiziert. Das random-walk-ohne - driftmodell wäre ein ARIMA (0,1, 0) - Modell ohne konstantes ARIMA (1,1,0) differenziertes autoregressives Modell erster Ordnung: Wenn die Fehler eines Zufallswegmodells autokorreliert werden, kann das Problem möglicherweise durch Hinzufügen einer Verzögerung der abhängigen Variablen zu der Vorhersagegleichung - - ie Durch Rückgang der ersten Differenz von Y auf sich selbst verzögert um eine Periode. Dies würde die folgende Vorhersagegleichung ergeben, die umgeordnet werden kann: Dies ist ein autoregressives Modell erster Ordnung mit einer Ordnung der Nichtsaisonaldifferenzierung und einem konstanten Term - d. e. Ein ARIMA (1,1,0) - Modell. ARIMA (0,1,1) ohne konstante einfache exponentielle Glättung: Eine weitere Strategie zur Korrektur autokorrelierter Fehler in einem Random-Walk-Modell wird durch das einfache exponentielle Glättungsmodell vorgeschlagen. Es sei daran erinnert, daß für einige nichtstationäre Zeitreihen (z. B. solche, die geräuschvolle Fluktuationen um ein sich langsam veränderndes Mittel aufweisen) das Zufallswegmodell nicht ebenso gut funktioniert wie ein gleitender Durchschnitt von vergangenen Werten. Mit anderen Worten, anstatt die letzte Beobachtung als Prognose der nächsten Beobachtung zu nehmen, ist es besser, einen Durchschnitt der letzten Beobachtungen zu verwenden, um das Rauschen herauszufiltern und das lokale Mittel genauer zu schätzen. Das einfache exponentielle Glättungsmodell verwendet einen exponentiell gewichteten gleitenden Durchschnitt vergangener Werte, um diesen Effekt zu erzielen. Die Vorhersagegleichung für das einfache exponentielle Glättungsmodell kann in einer Anzahl mathematisch äquivalenter Formen geschrieben werden. Von denen eine die sogenannte 8220-Fehlerkorrektur8221-Form ist, in der die vorhergehende Prognose in der Richtung ihres Fehlers angepasst wird: Weil e t-1 Y t-1 - 374 t-1 per Definition umgeschrieben werden kann : Es handelt sich um eine ARIMA (0,1,1) - konstante Vorhersagegleichung mit 952 1 1 - 945. Dies bedeutet, dass Sie eine einfache exponentielle Glättung durch Angabe als ARIMA (0,1,1) - Modell ohne passen Konstant und der geschätzte MA (1) - Koeffizient entspricht 1-minus-alpha in der SES-Formel. Denken Sie daran, dass im SES-Modell das durchschnittliche Alter der Daten in den 1-Periodenprognosen 1 945 beträgt, was bedeutet, dass sie tendenziell hinter Trends oder Wendepunkten um etwa 1 945 Perioden zurückbleiben werden. Daraus folgt, dass das Durchschnittsalter der Daten in den 1-Periodenprognosen eines ARIMA-Modells (0,1,1) ohne Konstante 1 (1 - 952 1) ist. Wenn beispielsweise 952 1 0,8 beträgt, ist das Durchschnittsalter 5. Da sich 952 1 1 nähert, wird das ARIMA-Modell (0,1,1) ohne Konstante zu einem sehr langfristigen gleitenden Durchschnitt und als 952 1 Ansätze 0 wird es ein random-walk-ohne-Drift-Modell. What8217s der beste Weg, um für Autokorrelation zu korrigieren: Hinzufügen von AR-Begriffe oder Hinzufügen von MA-Begriffen In den vorherigen zwei Modellen, die oben diskutiert wurden, wurde das Problem der autokorrelierten Fehler in einem zufälligen Fußmodell auf zwei verschiedene Arten behoben: durch Hinzufügen eines verzögerten Werts der differenzierten Reihe Auf die Gleichung oder das Hinzufügen eines verzögerten Wertes des Prognosefehlers. Welcher Ansatz am besten ist Eine Regel für diese Situation, die später noch ausführlicher diskutiert wird, besteht darin, dass die positive Autokorrelation normalerweise am besten durch Hinzufügen eines AR-Terms zum Modell behandelt wird und negative Autokorrelation in der Regel am besten durch Hinzufügen eines MA-Semester. In der Wirtschafts - und Wirtschaftszeitreihe entsteht häufig eine negative Autokorrelation als Artefakt der Differenzierung. (Im allgemeinen differenziert die Differenzierung die positive Autokorrelation und kann sogar einen Wechsel von positiver zu negativer Autokorrelation bewirken.) Daher wird das ARIMA (0,1,1) - Modell, in dem die Differenzierung von einem MA-Begriff begleitet wird, häufiger als eine ARIMA (1,1,0) - Modell. ARIMA (0,1,1) mit konstanter einfacher exponentieller Glättung mit Wachstum: Durch die Implementierung des SES-Modells als ARIMA-Modell gewinnen Sie tatsächlich etwas Flexibilität. Zunächst darf der geschätzte MA (1) - Koeffizient negativ sein. Dies entspricht einem Glättungsfaktor von mehr als 1 in einem SES-Modell, das nach dem SES-Modellanpassungsverfahren üblicherweise nicht zulässig ist. Zweitens haben Sie die Möglichkeit, einen konstanten Begriff in das ARIMA-Modell aufzunehmen, wenn Sie es wünschen, um einen durchschnittlichen Trend, der nicht Null ist, abzuschätzen. Das Modell ARIMA (0,1,1) mit Konstante hat die Vorhersagegleichung: Die Ein-Perioden-Prognosen aus diesem Modell sind qualitativ denjenigen des SES-Modells ähnlich, mit der Ausnahme, dass die Trajektorie der Langzeitprognosen typischerweise a ist (Deren Neigung gleich mu ist) und nicht eine horizontale Linie. ARIMA (0,2,1) oder (0,2,2) ohne konstante lineare exponentielle Glättung: Lineare exponentielle Glättungsmodelle sind ARIMA-Modelle, die zwei nicht sonderliche Differenzen in Verbindung mit MA-Begriffen verwenden. Die zweite Differenz einer Folge Y ist nicht einfach die Differenz von Y und selbst von zwei Perioden verzögert, sondern sie ist die erste Differenz der ersten Differenz - i. e. Die Änderung in der Änderung von Y in der Periode t. Somit ist die zweite Differenz von Y in der Periode t gleich (Yt - Yt - 1) - (Yt - 1 - Yt - 2) Yt - 2Yt - 1Yt - 2. Eine zweite Differenz einer diskreten Funktion ist analog zu einer zweiten Ableitung einer stetigen Funktion: sie mißt zu einem gegebenen Zeitpunkt die Quota-Beschleunigung quot oder quotvequot in der Funktion. Das ARIMA (0,2,2) - Modell ohne Konstante sagt voraus, daß die zweite Differenz der Reihe eine lineare Funktion der letzten beiden Prognosefehler ist, die umgeordnet werden können: wobei 952 1 und 952 2 die MA (1) und MA (2) Koeffizienten. Dies ist ein allgemeines lineares exponentielles Glättungsmodell. Im Wesentlichen das gleiche wie Holt8217s Modell, und Brown8217s Modell ist ein spezieller Fall. Es verwendet exponentiell gewichtete gleitende Mittelwerte, um sowohl eine lokale Ebene als auch einen lokalen Trend in der Reihe abzuschätzen. Die Langzeitprognosen von diesem Modell konvergieren zu einer Geraden, deren Steigung von dem durchschnittlichen Trend abhängt, der gegen Ende der Reihe beobachtet wird. ARIMA (1,1,2) ohne konstante gedämpfte lineare Exponentialglättung. Dieses Modell ist in den begleitenden Dias auf ARIMA-Modellen dargestellt. Es extrapoliert die lokale Tendenz am Ende der Serie, sondern flacht es auf längere Prognose Horizonte, um eine Notiz von Konservatismus, eine Praxis, die empirische Unterstützung hat einzuführen. Siehe den Artikel auf quotWarum die Damped Trend Werke von Gardner und McKenzie und die quotGolden Rulequot Artikel von Armstrong et al. für Details. Es ist grundsätzlich ratsam, bei Modellen zu bleiben, bei denen mindestens einer von p und q nicht größer als 1 ist, dh nicht versuchen, ein Modell wie ARIMA (2,1,2) anzubringen, da dies wahrscheinlich zu Überformung führt Die in den Anmerkungen zur mathematischen Struktur von ARIMA-Modellen näher erläutert werden. Spreadsheet-Implementierung: ARIMA-Modelle wie die oben beschriebenen lassen sich einfach in einer Tabellenkalkulation implementieren. Die Vorhersagegleichung ist einfach eine lineare Gleichung, die sich auf vergangene Werte von ursprünglichen Zeitreihen und vergangenen Werten der Fehler bezieht. Auf diese Weise können Sie eine ARIMA-Prognosekalkulation einrichten, indem Sie die Daten in Spalte A, die Prognoseformel in Spalte B und die Fehler (Daten minus Prognosen) in Spalte C speichern. Die Prognoseformel in einer typischen Zelle in Spalte B wäre einfach Ein linearer Ausdruck, der sich auf Werte in vorhergehenden Zeilen der Spalten A und C bezieht, multipliziert mit den entsprechenden AR - oder MA-Koeffizienten, die in Zellen an anderer Stelle auf dem Spreadsheet gespeichert sind. ARMA-Modelle für den Handel In diesem Tutorial werde ich meine R038D - Bekannt aus Statistiken Autoregressive Moving Average Model (ARMA). Es gibt viel über diese Modelle geschrieben, aber ich empfehle dringend Introductory Time Series mit R., die ich finde, ist eine perfekte Kombination zwischen Licht theoretischen Hintergrund und praktische Implementierungen in R. Eine weitere gute Lektüre ist die Online-e-Buch Vorhersage: Grundsätze und Praxis von Rob Hyndman geschrieben. Ein Experte in der statistischen Prognose und der Autor der hervorragenden Prognose R Paket. Getting Started In R, ich bin meist mit dem fArma Paket, das ist ein schöner Wrapper mit erweiterten Funktionalität um die Arima-Funktion aus dem Statistik-Paket (verwendet in der oben genannten Buch). Hier ist eine einfache Sitzung der Anpassung eines ARMA-Modells an die tägliche Rendite des S038P 500: Nähere Details entnehmen Sie bitte der Literatur und den Paketen, ich möchte nur einige Punkte hervorheben: Wir modellieren die täglichen Renditen statt der Preise . Es gibt mehrere Gründe: Auf diese Weise Finanz-Serien werden in der Regel stationär, wir brauchen einen Weg zu 8220normalize8221 eine Reihe, etc. Wir verwenden die diff und log-Funktion, um die täglichen Renditen anstelle von Prozentsätzen zu berechnen. Nicht nur dies ist eine Standard-Praxis in der Statistik, aber es bietet auch eine verdammt gute Annäherung an die diskrete Renditen. Der Ansatz, den ich hier vorstellen wird, ist eine Form von walk-forward Backtesting. Beim Gehen der Serie von Tag zu Tag, werden wir die Geschichte der bestimmten Länge verwenden, um das beste Modell zu finden. Dann werden wir dieses Modell verwenden, um die Rückkehr des nächsten Tages vorhersagen zu können. Wenn die Vorhersage negativ ist, nehmen wir die Short-Position an, sonst nehmen wir eine Long-Position an. Ein Beispiel wird die Sache klarer machen: Nach dem Ende des 11. Juni 2012 berechnen wir die letzten 500 Tagesrenditen. Mit diesen Returns durchsuchen wir den Raum der ARMA-Modelle und wählen die passendste (in Bezug auf einige metrische und einige Anforderungen) - Modell. Schließlich verwenden wir dieses Modell, um die Vorhersage für die Rückkehr von morgen zu berechnen und das Vorzeichen der Rückkehr zu verwenden, um die geeignete Position zu bestimmen. Die Wahl eines guten Modells Das erste Hindernis für diese Methode, bevor es für uns nützlich sein könnte, ist die Auswahl der Modellparameter. Im Fall von ARMA gibt es zwei Parameter. Mit anderen Worten, es gibt unendlich viele Möglichkeiten: (0,1), (1,0), (1,1), (2,1) usw. Woher wissen wir, welche Parameter zu verwenden sind? Statistiken zur Quantifizierung der Güte der Fit-Test ist die AIC (für Akaike Information Criteria) Statistik. Sobald die Anpassung erfolgt ist, ist der Wert der aic-Statistik zugänglich über: Es gibt andere Statistiken natürlich, aber in der Regel sind die Ergebnisse ziemlich ähnlich. Zusammenfassend brauchen wir nur eine Schleife, die alle Parameterkombinationen durchläuft, die wir für sinnvoll halten, z. B. von (0,0) bis (5,5) inklusive, für jedes Parameterpaar das Modell platzieren und schließlich das Modell auswählen Die niedrigste AIC oder eine andere Statistik. Man beachte, dass manchmal armaFit keine Passung findet und einen Fehler zurückgibt, wodurch die Schleife sofort beendet wird. ArmaSearch behandelt dieses Problem, indem es die tryCatch-Funktion verwendet, um irgendwelche Fehler oder Warnungen zu erfassen und einen logischen Wert (FALSE) zurückzugeben anstatt alles zu unterbrechen und mit einem Fehler zu beenden. So können wir eine fehlerhafte und normale Funktion Rückkehr nur durch die Überprüfung der Art des Ergebnisses zu unterscheiden. Ein bisschen unordentlich wahrscheinlich, aber es funktioniert. Einige R-Pakete, Prognose und rugarch zum Beispiel, bieten eine ähnliche, auto. arima-Funktion aus der Box. So kann man seine Infrastruktur aufbauen. Prognose Sobald die Parameter ausgewählt sind, ist es Zeit, die Position am Ende zu bestimmen. Ein Weg, dies zu tun, ist von einer Vorhersage von einem Tag, wenn die Vorhersage negativ ist (erinnern Sie sich an die Reihe, die wir an betreiben, ist die tägliche Rückkehr), dann ist die gewünschte Position kurz, andernfalls es8217s lang. Nun, um einen Indikator für die Back-Testing zu bauen, kann man die tägliche Rückkehr Serie zu gehen und an jedem Punkt führen die Schritte, die wir so weit. Die Hauptschleife sieht wie aus (verkürzt mit Zweck): Wo Geschichte die Rückblickperiode ist, zum an jedem Punkt zu betrachten, verwende ich normalerweise 500, die ungefähr zwei Jahre Daten ist. Mit anderen Worten, um die Position an jedem einzelnen Tag (Vortag nahe dem aktuellen Tag zu schließen bestimmt die Rückkehr) zu bestimmen, verwenden wir Geschichte von 500 Tagen, verzögert von Lags Tag. Sie werden später sehen, wie Lags in der Praxis ins Spiel kommt. Beachten Sie, dass die Vorhersage auch von einem tryCatch-Block umgeben sein muss. ArmaSearch hat auch die nette Eigenschaft, zu bestimmen, ob ein Modell eine Vorhersage hat oder nicht (Vorhersage gelingt oder nicht, dieser Test wird durch den withForecast Parameter gesteuert). Verbesserung der Leistung Die Anzahl der Berechnungen, die wir tun müssen, summiert sich schnell. Zum Beispiel müssen wir für 10 Jahre historische Daten etwa 2.520 Handelstage berechnen. Für jeden Tag werden wir mindestens 35 (3566-1, 0 bis 5 sowohl für die AR und MA Komponente, aber ohne die (0,0) Kombination) passen. Multiplikation der Anzahl der Modelle durch die Anzahl der Tage, und wir sind bereits auf der Suche mehr als 88 Tausend Modell passt 8211 that8217s viele Berechnungen. Eine Möglichkeit, die Leistung dieser notwendigen Berechnungen zu verbessern, kann durch die Nutzung von Multi-Core-CPUs erreicht werden. Mein Ansatz ist es, die Modellauswahl, die armaSearch-Funktion im obigen Code zu parallelisieren. Obwohl dies nicht der effizienteste Ansatz sein kann, ist es sicherlich praktischer, da es auch die Leistung von armaSearch steigern wird, wenn es unabhängig verwendet wird. I won8217t Post die endgültige Version des Codes hier wegen it8217s Länge. Ich gebe Ihnen die GIST-Link statt Modellierung Volatilität mit GARCH Financial Zeitreihen sind zufällig im Allgemeinen. Eine der wenigen Eigenschaften, die sie ausstellen, ist Volatility Clustering. Dies wird typischerweise durch die Erweiterung der ARMA-Prognose mit einem GARCH-Modell erreicht. Klingt komplex, und die theoretischen Details sind zwar kompliziert, aber es erweist sich als ziemlich einfach in R: Natürlich müssen wir auch alle relevanten Funktionen wie armaSearch ändern. Auch Aufrufe von garchFit und Prognosen müssen über tryCatch abgewickelt werden. Beachten Sie auch, dass predict eine Matrix für GARCH-Modelle zurückgibt. Wenn Sie sich für den vollständigen Quellcode interessieren, können Sie mit uns Kontakt aufnehmen. S038P 500 Leistung Let8217s beginnen mit der Eigenkapitalkurve der Anwendung der ARMAGARCH-Strategie über die vollen 60 Jahre (seit 1950) der S038P 500 historischen Daten. ARMA vs Buy-and-Hold Es sieht fantastisch In der Tat, es beeindruckt mich so sehr, dass ich für Bugs im Code für eine ganze Zeit gesucht. Auch auf einem logarithmischen Chart ist die Leistung dieser Methode atemberaubend 8211 CAGR von 18,87, und die ARMAGARCH-Strategie erreicht diese Leistung mit einem vergleichbaren maximalen Drawdown von 56. Um das Wachstum der ARMA-Strategie zu berechnen, benötigen wir zunächst die Tagesanzeige (dieser Indikator dauert etwa Zwei Tage zu berechnen mit allen Optimierungen, die ich durchgemacht habe). Die erste Spalte ist das Datum, die zweite die Position für diesen Tag: 1 für lang, -1 für kurz, 0 für keine. Beachten Sie, dass die Position bereits auf den Tag der Rückkehr ausgerichtet ist (sie wird am Ende des Vortags berechnet), mit anderen Worten, die Anzeige ordnungsgemäß ausgerichtet ist mit den Renditen 8211 keine Notwendigkeit, nach rechts zu verschieben. Das Kennzeichen, die erste Spalte, muss mit den täglichen Renditen des S038P 500 multipliziert werden. Der Rest der Säulen ist irrelevant und hoffentlich selbsterklärend. Let8217s wrap up der Post mit dem Code, der die Anzeige lädt und zeigt die Grafik: Verpassen Sie nie ein Update Abonnieren Sie R-Blogger, um E-Mails mit den neuesten R Beiträge erhalten. (Diese Meldung wird nicht mehr angezeigt.)


No comments:

Post a Comment