 Herzlich Willkommen zum Python Coding Video für den dritten Teil der Vorlesung stochastische Prozesse. Hier im ersten von zwei Coding Videos, die ich Ihnen präsentieren möchte. Wir beginnen hier zunächst einmal mit dem AR-Modell. Das ist das erste, was wir im dritten Teil kennengelernt haben. Das autoregressive Modell als Hauptrepräsentant der autoregressiven stochastischen Prozesse. Und wir beginnen hier wie immer mit unseren neuen Lieblingspaketen. Pandas, Yahoo Financials, Smartplotlib, NumPy und Statsmodels. Die kennen wir bereits aus den anderen Videos. Und was machen wir? Wir binden wieder unsere Lieblingsfunktion zum Datensammeln ein. Machen ein Pandas DataFrame mit unseren Lieblingsdaten, die Sie hier anhand des Yahoo-Tikers eintragen können. Wir berechnen die Lock-Returns. Wir berechnen einen Mittelwert der Preise. Und wir berechnen einen Mittelwert der Return-Serie. Wir berechnen hier die jeweiligen Preis- und Return-Volatilitäten. Und gehen erneut her und zeigen uns hier die Autokorrelationsfunktionen an. Das habe ich hier nochmal eingefügt, damit wir wieder in das Thema Zeitreinanalyse hineinfinden. Und damit wir auch sehen können, was denn die Autokorrelationslage der Daten ist. Hier setzen wir uns einfach nur mal ein Integer. Und fangen hier an einfach mal die Nannenwerte der Return-Serie zu entfernen. Tun Sie das nicht, bekommen Sie hier programmatische Probleme. Das haben wir ja auch in der Korrektur der Zeitreinvorlesung gesehen. Was machen wir hier? Wir splitten hier unseren Datensatz in zwei Teile, deswegen auch hier oben der Integer. Wir haben hier einmal ein Trainingsdatenset und einmal ein Testdatenset. Und was machen wir? Wir modellieren ein AR-Modell auf Basis der Trainingsdaten und fitten das Ganze. Lassen uns hier die Parameter ausgeben. Und hier entsprechend Forecasts auf Basis unseres Datensatzes berechnen. Wir haben hier erstmal keine Dynamik unterstellt und wir lassen uns hier die Ergebnisse ausdrucken. Und was machen wir am Ende? Wir lassen uns die Predictionen, die vorhersagen unseres AR-Modells gegen den Datensatz spiegeln. Das ist das, was wir hier zunächst einmal vornehmen werden. Ich wiederhole hier noch einmal kurz das Vorgehen. Wir binden die relevanten Pakete ein, damit wir das Rad nicht neuer finden müssen. Wir lesen unsere Funktion ein, die uns Daten sammelt. Wir sammeln Daten. Wir erzeugen uns die Returnen rein und Mittelwerte. Wir erzeugen uns die Volatilitätsreihen. Wir plotten uns die Autokorrelationsfunktion, schauen uns die an. Spezifizieren ein Trainingset und ein Testdatenset, auf dem wir dann dieses AR-Modell erst einmal trainieren. Und dann machen wir Predictionen daraus und schauen uns das Ganze an. Ich hätte gesagt, wir führen diesen Code einfach mal aus und gucken, was passiert. Wir kriegen erstmal wieder ganz viele, ich gucke mal, ob ich die schön übereinander angeordnet bekomme. Ich denke, das kriegen wir hier in dem Fall sogar richtig schön hin. Die Returns hier nochmal nach unten und die Preise hier hoch. Sehr schön. Jetzt können wir uns das Ganze nämlich mal und das haben wir in der Vorlesung zur Zeitreihenanalyse auch noch nicht gemacht. Mal nebeneinander anschauen. Wir haben oben die Preise und die Preispolatilität. Und wir haben unten die Lockrenditen und die Lockrenditen-Volatilität. Und jetzt sehen wir das Ganze mal wirklich schön auf einmal. Wir stellen fest, Preise sind hochgradig autokorrolliert, genauso wie die Preis-Volatilitätsserie. Wir stellen fest, dass wenn wir die Returns berechnen, wir hier in diesem Fall für den Dow Jones Industrial Index, die Autokorrollation immer noch nicht ganz losbekommen, aber deutlich reduzieren können. Und wir stellen auch fest, dass die Return-Volatilitäten eine ganz andere Autokorrollationsstruktur aufweisen wie unsere Returns. Und hier langsam aber sicher harmonisch abnimmt. Und ich schließe das Ganze jetzt hier mal wieder. Und wir schauen uns doch mal an, was unser AR-Modell denn an Predictionen rechnet. Und Sie sehen, das geht relativ zügig. Wir scrollen hier mal nach oben. Hier bekommen Sie meistens einen Teaser der Pakete selber. Und wir sehen hier erstmal ein Lack-Value von 26 und die ganzen Koeffizienten, die hier berechnet werden. Hier sehen wir unser Testdatenset und wir sehen hier auch die Predictionen, die gemacht wurden. Und wenn wir uns das Ganze jetzt im Bild anschauen, ich mache das mal in groß, dann sehen wir für den AR-12-Prozess, die vorher sagen über unser Test- und Trainingsdatenset. Und wir stellen fest, dass das mehr oder minder nicht so wirklich hinhaut. Das heißt, zum Vorkasten haben wir entweder zu wenig Autokorrelation vorliegen oder wir haben den falschen Lack-Operator genutzt. Das sind die Dinge, die wir hier feststellen können. Was wir auch feststellen können, ist, dass das hier relativ einfach geht. Das ist genauso wie bei unseren multifraktalen Brownschmolekular-Bewegungen, dass uns diese vorgefertigten Pakete schon mal sehr viel Arbeit abnehmen. Tun Sie mir den Gefallen und spielen Sie hier mal ein bisschen rum. Experimentieren Sie hier mit dem Code, verwenden Sie andere Zeit rein. Sie können natürlich auch diese Funktion hier komplett streichen und ein Excel-File einlesen oder sich generische Reihen erzeugen und diese mit einem AR-Modell testen. Das obliegt natürlich ganz Ihnen. Wir fahren jetzt hier fort mit unserem Moving-Average-Modell und hier verwenden wir auch aus Dats-Model das AMA und das ARIMA-Paket und der Rest vom Code ist eigentlich relativ selbsterklärend. Wir haben hier wieder unsere Lieblingsfunktion, die es uns erlaubt, Daten aus Yahoo zu extrahieren. Wir extrahieren die Daten aus Yahoo. Wir erzeugen uns die logaritmierten Renditen, berechnen das erste Moment derselben, bestimmen die Volatilitäten. Das ist genau dasselbe, was wir gerade eben schon gesehen haben. Wir nutzen hier unseren DataFrame und machen uns mal ein Datenextrakt und wir füttern diesen Datenextrakt in dem Fall hier unsere Adjusted-Closing-Preise mal dem AMA-Modell und wir können hier die Ordnung angeben. 0 und 1 bedeutet, dass wir ein AR-Modell 0 zur Ordnung haben. Das bedeutet, wir haben hier kein AR-Modell und wir haben ein MA-Modell der ersten Ordnung. Was hier heißt, dieses AR-MA-Modell, was wir hier spezifizieren, ist eigentlich nur ein MA-Modell. Dann fütten wir das Modell und geben uns hier diese Ergebnisse aus und schauen uns das an. Ich hätte mal fast gesagt, wir tun das jetzt einfach mal und wir sehen, dass wir hier auch einige statistische, aktive Maße ausgegeben bekommen. Eine F-Statistik bekommen wir hier noch mit dazu und wir sehen hier unsere Grafik, die ich jetzt mal groß mache. Das ist das, was Sie aus der Vorlesung kennen. Wir sehen hier unseren Moving Average-Modell-Fahrt, der sich hier natürlich auf Basis der historischen Störtherme zusammensetzt und da können Sie natürlich auch gerne wieder selbst rumspielen. Sie können hier auch statt den Preisen die Volatilität oder die Returns eingeben. Wenn Sie die Returns hier eingeben, wird das AR-MA-Modell wahrscheinlich Probleme machen, weil dies mit ersten Differenzen nicht so ganz zurechtkommt. Da können Sie hier einfach den Trick anwenden, hier ein I reinzuschreiben. Dann wechseln Sie auf das integrierte AMA-Modell, quasi die Verallgemeinerung, die mit solchen Unzulänglichkeiten wie Differenz rein zurechtkommt. Wenn Sie hier das AR-MA-Modell auf die Returns laufen lassen, werden Sie, denke ich, einmal Probleme bekommen. Lassen Sie mich das mal kopieren und hier reinschreiben. Dann kann ich Ihnen das direkt zeigen, was hier passiert. Paste, lassen Sie mich hier das nochmal ausführen. Dann kann ich Ihnen zeigen, wo hier das Problem liegt, wenn wir die nicht integrierte Version nehmen. Eigentlich habe ich gesagt, ich zeige Ihnen das Problem. Das Problem ist, Sie können es gar nicht sehen. Diese feine, hauchdünne, grüne Linie, die hier entlang läuft, ist hier das AR-MA-Modell, wenn wir erste Differenzen benutzen und das funktioniert in dieser Spezifikation schlicht nicht. Und wenn wir das Ganze jetzt hier einfach mal durch ein AR-MA-Modell ersetzen und ein Differenzoperator von 1 noch dazugeben, sollten wir, wenn ich mich jetzt nicht online digital blamieren möchte, durchaus eine nutzbare Darstellung bekommen. Und Sie sehen hier, dass diese Integrierbarkeit des AR-MA-Modells, selbst wenn wir nur den MA-Teil hier verwenden, durchaus sinnvoll ist, ich schließe das mal wieder und das hier auch. Sie können hier bar nach Belieben experimentieren und herumspielen und wir kommen doch dann auch mal direkt zum AR-MA-Modell selbst und stellen fest, ja, der Code ist eigentlich irgendwie derselbe. Das Einzige, was wir hier gemacht haben, ist hier unten das AR-Modell dazu zu schalten. Das heißt, wir haben jetzt hier nicht ein AR-MA-Modell der Ordnung 0,1 oder 1,0, sondern wir haben wirklich beides gleichzeitig und der Rest hier ist genau simultan zu dem, was wir gerade eben vorher schon gesehen haben. Deswegen führe ich das jetzt einfach aus und wir sehen, juhu, das funktioniert ganz prima. Das Problem, was wir hier bekommen werden, ist nicht eine historische Zeitreihe im Nachhinein mit einem AR-MA-Modell oder mit einem AR-MA-Modell sauber zu fitten. Das große Problem, was wir bekommen, ist eine Vorhersage zu treffen und bei der Vorhersagekraft, das haben wir beim AR-Modell schon gesehen, lässt uns das AR-MA-Modell mehr oder minder gesagt genauso im Stich. Deswegen ist das AR oder das AR-MA oder MR oder AR-MA-Modell, also die Kompetition aus diesen Vieren, zwar geeignet, historisch, Daten durchaus nachvollziehen zu können, allerdings für Forecasting-Zwecke sind diese eher mäßig geeignet. Hier gibt es ganz andere Modellierungen, die wir in dem Teil Ausblick in die Forschung noch sehen werden, die dazu besser geeignet sind. Nutzen Sie dennoch diese drei Skripte, spielen Sie da mal drum, experimentieren Sie und wir sind hier eigentlich schon wieder am Ende. Ich hoffe, Sie haben was mitgenommen und bis dahin, alles Gute!