Del ruido independiente a activos correlacionados
Un generador de números aleatorios da extracciones independientes. Los activos están correlacionados, así que simular una cartera exige extracciones con la matriz de covarianza correcta Σ. La factorización de Cholesky halla una matriz triangular inferior L con LLᵀ=Σ; entonces, si z es un vector de normales estándar independientes, Lz tiene exactamente la covarianza L I Lᵀ=Σ. En NumPy las extracciones llegan en filas, así que se calcula z @ L.T para un arreglo z de forma (n, d). scipy.linalg.cholesky(cov, lower=True) hace la factorización y lanza un error si la matriz no es definida positiva, lo cual es útil: es la alarma de que su matriz de covarianza tiene un problema. Inicialice el generador con np.random.default_rng(seed) y el experimento es repetible.
Con el simulador se calculan cifras de riesgo. El rendimiento simulado de la cartera de cada extracción es draws @ w, y el valor en riesgo a un día al nivel α es menos el cuantil α de esos rendimientos (np.quantile). Con extracciones normales debe coincidir con la fórmula varianza–covarianza -(wᵀμ+z_α√(wᵀΣw)), y con doce activos coincide: 2,07% por simulación y 2,08% por la fórmula, frente a 2,33% por historia, porque los rendimientos reales tienen colas más gruesas que cualquier modelo normal. Las matrices de covarianza estimadas también pueden fallar: si se fija la correlación de dos activos en un imposible 1,2, el menor valor propio se vuelve negativo (unos -6×10⁻⁵) y Cholesky rechaza la matriz. La reparación estándar usa scipy.linalg.eigh: subir al suelo todo valor propio por debajo de un pequeño suelo, reconstruir la matriz y simetrizarla. El resultado es definido positivo y difiere del original solo en unos 3×10⁻⁵.
- Cholesky convierte ruido en correlación:
z @ L.Ttiene covarianzacovcuandocov = L @ L.T. - Simulación y fórmula deben coincidir con extracciones normales: la diferencia con la historia es el costo de las colas gruesas.
- Una factorización fallida es información: repare una matriz no definida positiva subiendo sus valores propios pequeños o negativos.
Lab: qué se califica
- El factor de Cholesky10 pts
- Extracciones correlacionadas20 pts
- Valor en riesgo Monte Carlo25 pts
- El valor en riesgo paramétrico15 pts
- Reparar una matriz de covarianza15 pts
- El estudio de doce activos15 pts