Zmienność i przełomy strukturalne
Wizualizacja zmian zmienności pomaga ujawnić potencjalne punkty przełomu strukturalnego w szeregach czasowych. Identyfikując momenty, w których zmienność wydaje się zmieniać, można świadomie wybrać punkt przełomu – a następnie wykorzystać go do dalszej analizy statystycznej (np. testu Chowa).
Przeanalizujesz dwie wizualizacje zmienności portfela banku inwestycyjnego z lat 2008–2009, dla dwóch dostępnych wag portfela: weights_with_citi i weights_without_citi. Odpowiadają one kolejno portfelom z równymi wagami – z Citibankiem i bez niego. Citibank wykazywał (jak widać w rozdziale 1.) najwyższą zmienność spośród czterech aktywów w tym okresie.
Ceny portfela z lat 2008–2009 z Citibankiem są dostępne jako prices_with_citi, a bez Citibanku jako prices_without_citi.
To ćwiczenie jest częścią kursu
Ilościowe zarządzanie ryzykiem w Pythonie
Instrukcje do ćwiczenia
- Wyznacz szeregi zwrotów dla obu portfeli, korzystając z
weights_with_citiiweights_without_citi. - Oblicz 30-dniowe kroczące odchylenia standardowe dla obu portfeli.
- Połącz oba obiekty
Seriesbiblioteki Pandas w jeden obiektDataFrameo nazwie "vol". - Zwizualizuj zawartość obiektu
vol, aby porównać zmienność obu portfeli w czasie.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()