Volatilidad y rupturas estructurales
Visualizar los cambios de volatilidad ayuda a revelar posibles puntos de ruptura estructural en las series temporales. Al identificar cuándo parece cambiar la volatilidad, se puede hacer una elección informada del punto de ruptura que, a su vez, puede utilizarse para otros análisis estadísticos (como la prueba de Chow).
Examinarás dos visualizaciones de la volatilidad del portafolio de banco de inversión de 2008-2009, para dos pesos de portafolio disponibles: weights_with_citi y weights_without_citi. Estos corresponden, respectivamente, a portafolios de igual peso con y sin Citibank, que mostró (como viste en el capítulo 1) la mayor volatilidad de los cuatro activos durante el periodo.
Los precios del portafolio para 2008-2009 con Citibank están disponibles como prices_with_citi y sin Citibank, como prices_without_citi.
Este ejercicio forma parte del curso
Gestión cuantitativa de riesgos en Python
Instrucciones del ejercicio
- Halla las series de rentabilidades de los dos portafolios utilizando 
weights_with_citiyweights_without_citi. - Calcula las desviaciones típicas de la ventana deslizante de 30 días de ambos portafolios.
 - Combina ambos objetos Pandas 
Seriesen un único objeto "vol" del DataFrame. - Representa el contenido del objeto 
volpara comparar las volatilidades de los dos portafolios a lo largo del tiempo. 
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Find the time series of returns with and without Citibank
ret_with_citi = prices_with_citi.____.dot(weights_with_citi)
ret_without_citi = prices_without_citi.pct_change().____(____)
# Find the average 30-day rolling window volatility as the standard deviation
vol_with_citi = ret_with_citi.____.std().dropna().rename("With Citi")
vol_without_citi = ret_without_citi.rolling(30).____.dropna().rename("Without Citi")
# Combine two volatilities into one Pandas DataFrame
vol = pd.concat([____, ____], axis=1)
# Plot volatilities over time
vol.____().set_ylabel("Losses")
plt.show()