Der HMM für diese Woche:
https://bitcointalksearch.org/topic/m.41380372ACHTUNG: Ich musste die ersten zwei Wochen weglassen, weil sonst der gesamte HMM instabil wurde. Ohne die ersten beiden Wochen bekomme ich oberen Plot, welcher den Plot von letzer Woche fortführt, mit den zwei ersten Wochen ergibt sich ein Verlauf, der gar nicht mehr den vorherigen Plots ähnelt. Aktuell kann ich das nicht erklären. Eine zusätzliche Woche, also eine zusätzliche Zeile in der Datenmatrix sollte das Modell nicht vollständig durcheinanderwürfeln. Insbesondere dann nicht, wenn beim Kurs praktisch nichts passiert ist ... Mal schaun was die folgenden Wochen bringen, vielleich finde ich den/meinen Bug noch oder aber das R-Paket für den HMM-Fit läuft nicht immer stabil.
Die Y-Achse geht von 0 bis 1,0 richtig? Also startet bei 0 und endet so um 0,9 herum, eine lineare Skala.
Die blaue Preislinie ist logarithmisch aufgetragen und auf eine Skala von 0 bis 1 skaliert?
Weis nicht, logarithmisch und linear so zusammen, dann geschüttelt statt gerührt. Mach besser ein "klassisches Kursdiagram" da drunter mit der gleichen Zeitachse. Auch einfach mehr Pixel nicht so gestaucht.
Die Preiskurve (logarithmiert und auf 1 normalisiert: log10(Preis)/max(log10(Preis))) hat ja nicht direkt etwas mit der Analyse an sich zu tun (indirekt geht der Kurs natürlich schon mit ein) und ist nur im Plot, damit man den Kurs mit den HMM-Zuständen korrelieren kann. Natürlich kann man den Preis auch in einem eigenen Plot anzeigen lassen, das macht die Interpretation aber unübersichtlicher und die Daten können weniger gut korreliert werden. Mal abgesehen davon, dass frühere Übertreibungen in einem nicht-logarithmierten Plot verschwinden. Und die Wahrscheinlichkeiten zwischen 0 und 1 zu logarithmieren ist vollkommener Unsinn, gerade bei Wahrscheinlichkeiten gegen 0.
Diese 4 Zustände "bubble", "bullish", "sideways", "bearish". Warum nicht 3, also "rauf", "runter", "unbestimmt". Kurs geht rauf, Kurs geht runter, Kurs bewegt sich nicht. Eins, zwei, drei. Oder wenn schon "bubble" mit dazu dann auch den Antagonisten "crashig". Wäre als Vorhersage echt etwas wert.
Es steht Dir vollkommen frei die Plots anders zu interpretieren und zu benennen. Oberes ist meine Interpretation mit meiner Benennung. Ich erhebe hierbei keinen Anspruch auf Vollständigkeit oder gar Korrektheit. Der 4-Zustände-HMM erschien mir bis jetzt immer als der Informativste.
Was definiert denn bisher die Grenze zwischen "bullish" und "bubble"? Was würde dann den Übergang von "bearish" zu "crashig" definieren?
Arghs, "hidden states" das ist wohl beim HMM mit dabei, das man das eben nicht weis. Nur die Wahrscheinlichkeiten für einen Zustandswechsel. Vom Gefühl her ist "crashig" etwas ... das erkennt man schon im Chart.
Erstens, hat man einen HMM mit Daten gefittet, dann kennt man die hidden states, denn diese sind Teil des HMM. Die "hidden states" SIND die Zustände! Ein 4-Zustände-HMM hat vier hidden states. Was man in meinem Beispiel beobachtet sind die Returns pro Zeitintervall. Die Verteilung der Returns definieren den Zustand (siehe Beispiel mit den Würfeln im entsprechenden Thread): pro Zustand eine andere Verteilung.
Zweitens, der Übergang zwischen zwei Zuständen ist der Übergang zwischen zwei Zuständen. That's it. Der HMM ist ein Automat, also ein Graph mit mehreren Knoten (Zuständen) und Kanten (Zustandsänderungen) dazwischen. Der Automat springt dann in diskreten Schritten von Knoten zu Knoten entlang der Kanten. War der HMM vorher in Zustand A und ist danach in Zustand B, dann hast Du eine Zustandsänderung. Wenn A nach Deiner Interpretation "bullish" und B "crashig" ist, dann ist genau dies der Übergang.
Drittens, ein gefitteter HMM hat eine gewissen Likelihood. Das ist die "Wahrscheinlichkeit" des HMM gegeben die Daten. Die Likelihood kann man als eine Art Wahrscheinlichkeit interpretieren. Diese Interpretation wird dem Begriff aber nicht vollständig gerecht. Es existiert nun eine Belegung der Zustände (bzw. ein Verhalten des HMM-Automaten über die Zeit), also der "hidden states", welche, gegeben die Daten, am "wahrscheinlichsten" (most likely) ist. Das ist dann die Belegung, welcher der Viterbi-Algorithmus am Ende ausgibt. Mit neuen Daten kann sich die Likelihood für eine Belegung der Zustände ändern und somit einen vollständig anderen Fit erzeugen.
Viertens, es ist nicht auszuschliessen, dass mit neuen Daten ein HMM eine Art "Phasenübergang" durchmacht. D.h., dass irgendwann eine vollständig andere Zustandsbelegung die Wahrscheinlichste ist. Gefühlsmässig würde ich aber sagen, dass dies eher kontinuierlich abläuft. Die Plots die ich generiere habe ja kleine Unterschiede von Woche zu Woche, erzeugt durch die neuen Information. Dass es einen schlagartigen "Phasenübergang" gibt halte ich eigentlich für unwahrscheinlich, da kann ich mich aber auch irren.
Vorschlag: 2 Zustände HMM. Vergleiche mit 3 Zustände HMM. Und Preis als zweites Diagramm drunter, mit gleicher Zeitachse halt in den Proportionen wie wir das visuell gewöhnt sind.
Das diese Simulation jetzt Instabil wird beunruhigt mich gar nicht. Eine Theorie zu erforschen die sich dann als falsch herausstellt ist auch wissenschaftliche Erkenntnis. Mit dieser Herangehensweise findet man sogar zwangsläufig die richtige Theorie nachdem man alle falschen im Experiment aussortieren konnte. Unter der Annahme das die Anzahl möglicher Theorien endlich ist. Wenn das nicht so ist würde sich der Prozess natürlich unendlich hinziehen.
Autsch! Das taugte nichts als Motivationsanschub.
Keine Frage. Die bisher gezeigten Plots bilden meiner (!) Meinung nach den Kursverlauf am besten und informativsten nach. Ob dies jetzt das richtige Modell oder die richtige Interpretation ist sei dahin gestellt. Deshalb gibt es den Code ja auch hier im Forum sodass sich jeder selbst ein Bild machen kann.
Wenn sich dieses Modell mit neuen Daten in den nächsten zwei Wochen weiterhin so störrig verhält bzw. ich den Bug nicht finde, dann muss ich wohl die gesamte Methode überdenken. Wobei meine Zeit aktuell leider etwas begrenzt ist.