Un detector de regímenes que construye usted mismo
En este proyecto final construye un modelo oculto de Markov solo con NumPy y lo ejecuta sobre veinte años de SPY. El modelo dice que cada día el mercado está en uno de tres regímenes ocultos, tranquilo, normal o tormentoso, que nunca se ven. Cada régimen tiene su rendimiento y su volatilidad típicos, y el régimen de mañana depende solo del de hoy mediante una matriz de transición A. El paso hacia adelante convierte los rendimientos en una probabilidad para cada régimen cada día. Un paso hacia atrás añade lo que dicen los días posteriores. Viterbi halla el único camino más probable. Baum-Welch repite estos pasos para aprender los números de los regímenes a partir de los datos.
Todo está escalado. Dividir los números hacia adelante de cada día por su suma cₜ evita que se encojan hasta cero tras miles de días, y la suma de los log cₜ es exactamente la log-verosimilitud. Viterbi trabaja con logaritmos por la misma razón. En el paso de Baum-Welch las probabilidades suavizadas γ hacen de pesos: la media y la volatilidad de cada régimen son la media ponderada y la dispersión ponderada de los rendimientos, y los recuentos de transición vienen de la probabilidad de pasar de i a j cada día. Cada ronda solo puede subir la log-verosimilitud, lo que es una buena prueba de su código. En la última función usa los regímenes ajustados para operar: una señal predice la probabilidad de crisis desde el día anterior (honesta) y la otra la lee de las probabilidades suavizadas (con mirada adelante).
- Escale cada paso: divida por la suma del día y sume los logaritmos, o miles de días se hunden hasta cero.
- Compruebe por fuerza bruta: en pocos días puede listar todos los caminos de estados y comparar. La log-verosimilitud nunca debe bajar de una ronda a otra.
- Solo señales honestas: prediga mañana con las probabilidades filtradas de hoy. Las suavizadas halagan el backtest.
Lab: qué se califica
- Probabilidades de emisión10 pts
- El algoritmo hacia adelante20 pts
- El algoritmo hacia atrás10 pts
- El suavizado5 pts
- La decodificación de Viterbi15 pts
- El ajuste de Baum-Welch25 pts
- El estudio de regímenes15 pts