 Herzlich Willkommen zu unserem dritten und letzten Python Coding Video für Teil 1 der Vorlesung zu stochastischen Prozessen. Wir befassen uns hier mit dem hidden Markov Model, mit dem Markov Modell mit versteckten Zuständen. Und wir brauchen ja eigentlich nur drei Pakete dafür, NumPy, Pandas und Matplotlib. Und wir haben in der formalen Definition des HMMs ja gesehen, dass das ein fünfer Tuple ist, indem wir gewisse normale Zustände beschreiben. Unsere versteckten Zustände, ein Pi, einen State Space und genau das machen wir hier auch. Unsere normalen Zustände sind, wir versuchen jetzt einfach mal das ganze Finanzmark-System in eine Markov-Kette zu packen exemplarisch. Was bedeutet das? Wir haben den Zustand, es geht nach oben, juhu. Es passiert so ziemlich nix, wir dümpeln seitwärts, also es ist weder gut noch schlecht. Und oh Gott, wir schmieren ab, es geht nach unten. Und wir haben zwei versteckte Zustände, das sind die Zustände, deren Eintritt wir eigentlich soweit nicht beeinflussen können, außer dass wir über das Pi deren Eintritts-Wahrscheinlichkeiten festlegen. Wir haben entweder einen Boom, das gehört zum Teil juhu und wir haben eine Krise, das gehört zum Teil oh mein Gott, es passieren schlimme Dinge. Hier können wir mit dem Pi eben diese Wahrscheinlichkeiten für eben eine Krise und einen Boom spezifizieren. Und wir haben hier unseren Zustandsraum, wo wir hier sagen können, wir haben eben Pi. Unser Index ist hier unser Hidden State und unsere Namen sind hier unsere States, also das ist hier. Und wir lassen uns das dann hier entsprechend ausgeben. Und was machen wir jetzt? Wir machen hier noch eine Transitionsmatrix. Wir definieren unser Alpha, lassen uns das ebenfalls ausdrucken. Dann machen wir eine Emissionsmatrix und Emissionsprobabilities, die definieren wir hier unten. Und was wir dann machen, ist folgendes, wir kodieren unsere Beobachtungen so, dass wir die schön ausspucken lassen können. Ganz salopp gesagt, das heißt, wir kodieren die hier, packen die in ein Dictionary und sorgen dafür, dass das am Ende hübsch aussieht. Und was wir hier machen, und da gehe ich gar nicht näher darauf ein, hier gibt es einen sogenannten Fiterbi Algorithmus, der quasi den kürzesten und effizientesten Pfad quasi durch dieses Hidden Markov Modell spezifiziert. Ich habe Ihnen hier diesen GitHub Link dazu geparkt. Und Sie können hier bei Steven Marsland in seinem Buch nachlesen, wie genau das funktioniert. Den werde ich hier der Zeithalbe einfach mal überspringen. Und was wir hier letzten Endes unten machen, ist, uns das Ganze nochmal ausgeben zu lassen. Das ist jetzt relativ viel Code, sieht mega komplex aus. Und was wir machen ist, wir nutzen jetzt erstmal die Umgebung und machen diesen Algorithmus hier mal zu. Dann sehen wir nämlich genau die Dinge, die für uns relevant sind. Und zwar, wir definieren hier oben und da schließe ich das hier mit ein, dieses Hünfer-Tupel, was wir für dieses Hidden Markov Modell eben benötigen. Konvertieren das, encoden das und lassen es uns ausgeben. Das ist mal Punkt 1. Und der Punkt 2 ist, wir lassen uns über diesen Algorithmus hier den kürzesten Pfad ausgeben und drucken uns den in die Konsole. Und was wir am Ende nochmal machen ist, wir lassen uns grafisch den Pfad der Zustände ausgeben und gucken uns das an. Hier können wir natürlich gerne, wenn das für Sie etwas zu viel des Guten ist, in unserem ersten Webinar oder in einem der kommenden Webinare, darüber sprechen, wie genau denn beiden arbeitet und was in diesen Code-Sachen exakt passiert. Ich möchte die Videos hier allerdings in einem überschaubaren Rahmen halten, sonst sitzen Sie nur noch stundenweise vor dem Rechner und hören mir zu. Was für mich ja eigentlich nicht schlecht sein sollte, aber ich möchte Ihre und meine Zeit hier entsprechend schonen. Die Kernessenz ist, wir definieren hier dieses Hünfer-Tupel, was wir formal in der Vorlesung gesehen haben, encoden das, formatieren das um, lassen uns noch den kürzesten Pfad ausgeben und schauen uns die Ergebnisse an. Und ich führe das jetzt einfach mal aus, bzw. ich mache mir erstes mal einen Terminal auf und mache das etwas größer, damit wir auch sehen können, was in die Konsole tatsächlich gedruckt wird. Und jetzt führe ich das Ganze einmal aus. Und da ist jetzt schon relativ viel passiert, ich mache dieses Bildchen erst einmal klein und zoome hier erstmal nochmal nach oben. Und wir sehen hier als allererstes okay, wir haben die Wahrscheinlichkeit für eine Krise liegt bei 40% und die Wahrscheinlichkeit für einen Boom bei 60%. Wir haben hier nochmal die Wechselmatrix uns angegeben, das heißt, wenn wir eine Krise haben, liegt die Wahrscheinlichkeit, dass wir wieder eine Krise bekommen bei 70%. Und wenn wir die Wahrscheinlichkeit haben, dass wir eine Krise haben und darauf folgen, ein Boom liegt bei 0,3% und beim Boom in die Krise bei 0,4% und beim Boom auf ein Boom 0,6%, das sind eine Übergangsmatrix, die wir hier spezifiziert haben. Hier können Sie sich nochmal das Ganze als Matrix ausgeben lassen und wir können hier sehen, dass das auch auf 1 aufgeht. Das heißt, seien Sie sicher, dass Sie hier jeweils eine 1 bekommen, ansonsten funktioniert das Ganze nicht mehr so richtig. Und dann haben wir natürlich nicht nur die Übergangswahrscheinlichkeiten hier zwischen unseren versteckten Zuständen, sondern natürlich auch die versteckten Zustände auf unsere bekannten Zustände. Das heißt, die Wahrscheinlichkeit bei einer Krise, wenn wir im Krisenzustand sind, dass eine Aufwärtsbewegung erfolgt, liegt bei 10%, dass eine Seitwärtsbewegung erfolgt bei 0,3% und das ist weiter bergab geht bei 0,6%. Und wenn wir jetzt eine Boom-Zustand-Ergebnisdarstellung haben, also wenn wir einen Boom haben, dann sind wir bei 0,7%, dass es hoch geht, 0,1%, dass es seitwärts geht und 0,2%, dass es nach unten läuft. Auch hier haben wir wieder die Problematik, dass es bitte auf 1 aufgehen soll. Und hier marschieren wir einfach mal durch und sagen, okay, hier sehen wir die verschiedenen Zustände. Hier geht es erst zur Seite, dann geht es hoch, wieder zur Seite, runter, runter, runter. Das können wir hier ansehen. Dann sehen wir hier diesen Algorithmus laufen, auf den ich hier gar nicht mehr eingehen möchte. Dann sehen wir hier die ganzen Pfadzustände. Und wir sehen hier natürlich auch die Deltas und den bestmöglichen Statepath, den wir gehen können. Und hier den bestmöglichen Zustandswechsel. Und wir sehen hier unten, das ist wieder interessant, Observation für den besten Pfad, wo wir sehen können, ob eine Seitwärtsbewegung in einer Krise oder in einem Boom stattgefunden hat. So viel zu dem, was hier in der Konsole steht, das können Sie sich in aller Ruhe mal selbst ansehen. Worauf ich jetzt noch eingehen werde, ist das hier. Wir sehen hier quasi über unsere 50 Schritte, die wir gemacht haben, ob wir gerade in einer Krise oder in einem Boom waren und wie lange. Wir sehen hier, wir waren hier knapp vier, fünf Perioden in einer Krise und dann wieder drei in einem Boom und so weiter. So können Sie dieses Bildchen lesen. Und natürlich, je nachdem, wie Sie diese Wahrscheinlichkeiten oben spezifizieren, ändert sich das Bildchen natürlich. Ich schließe dieses Bild jetzt einmal und zeige Ihnen das Ganze noch für die bekannten Zustände. Das heißt, wir haben ja eine Seitwärtsbewegung, eine Aufwärtsbewegung und eine Downwardbewegung, also eine abnehmende Bewegung. Und wir sehen hier, okay, wir haben Seitwärts angefangen, dann ging es nach oben, dann ging es wieder nach Seitwärts. Dann sind wir ein bisschen auf der Seite geblieben. Dann sind wir von einer Seite direkt, das sehen Sie hier, in eine Abwärtsbewegung gerutscht und da erstmal verblieben. Und dann sind wir zwischen hoch und runter hin und her geschwungen. Und genau so können Sie die Zustandsänderung grafisch darstellen. Und das ist alles, was Sie hier sehen können. Worauf ich jetzt noch eingehen möchte, ist, dass Sie diese Wahrscheinlichkeiten, die hier rauskommen. Und das habe ich für den Kurs als etwas zu viel erachtet. Hier können Sie natürlich probabilistische Modelle unterstellen. Hier können Sie Regressionsmodelle unterstellen. Sie können hier autoregressive Prozesse reinlaufen, lassen, um auf diese Wahrscheinlichkeiten zu kommen. Hier können Sie in der Praxis, Backtesting, historische Simulationen und alles andere an, ich sage mal, statistischem Nuklearwerkzeug, was Sie in Ihrer Schreibtischkiste haben verwenden, um eben hier auf reliable Wahrscheinlichkeitswerte zu kommen. Und natürlich ist es auch möglich, hier diese Wahrscheinlichkeiten sich im Zeitablauf verändern zu lassen. Was bedeutet, dass das, was hier steht, was ich jetzt Ihnen nur statisch ausgegeben habe, damit Sie das nachvollziehen können, das können Sie natürlich dynamisch gestalten. Und dann sieht natürlich so ein Hittenmark auf Modell schon ganz anders aus. Das ist allerdings etwas zu viel für diesen Vorlesungsrahmen. Wie gesagt, Sie können hier gerne damit rumspielen. Ich habe das extra so eingestellt, ich schließe die Konsole malen und mache die nochmal klein, dass Sie hier oben diese Wahrscheinlichkeiten selbst eingeben können und dass Sie sehen können am Ende mit unserem Fahrtgraf, was passiert denn, wenn ich hier oben die Zahlen verändere? Was passiert denn hier, wenn ich die Wahrscheinlichkeiten verändere? Was hat das denn für einen Einfluss auf mein Hittenmarkoff Modell, wenn ich hier oben diese Varianten verändere? Und natürlich ist es möglich, hier komplexere stochastische Algorithmen herzunehmen, um eben diese Wahrscheinlichkeiten zu bestimmen. Und es ist auch möglich, hier diese Wahrscheinlichkeiten sich über die Zeit verändern zu lassen. Sie haben ja schon gesehen, wie für dieses Anschauungsmodell der Coach schon etwas umfangreicher wird. Und jetzt können Sie sich vorstellen, was passiert, wenn wir hier natürlich hergehen würden und noch komplexe Algorithmen nutzen würden, um auf diese Werte zu kommen. Und das ist nichts in dieser Vorlesung. Ich hoffe, Sie haben etwas mitnehmen können und somit sind wir am Ende dieses Videos angelangt. Ich wünsche Ihnen weiterhin alles Gute, bis zum nächsten Video.