Oynaklık ve yapısal kırılmalar
Oynaklıktaki değişimleri görselleştirmek, zaman serilerindeki olası yapısal kırılma noktalarını ortaya çıkarmaya yardımcı olur. Oynaklığın ne zaman değişiyor gibi göründüğünü belirleyerek, daha sonra istatistiksel analizlerde (örneğin Chow testi) kullanılabilecek, bilinçli bir kırılma noktası seçimi yapabilirsin.
2008 - 2009 dönemine ait yatırım bankası portföyünün oynaklığına ilişkin iki görselleştirmeyi, iki farklı portföy ağırlığı için inceleyeceksin: weights_with_citi ve weights_without_citi. Bunlar sırasıyla, Citibank'in dahil edildiği ve edilmediği eşit ağırlıklı portföylere karşılık gelir; Chapter 1'de gördüğün gibi bu dönem boyunca dört varlık içinde en yüksek oynaklığı Citibank sergilemiştir.
2008 - 2009 döneminde Citibank ile portföy fiyatları prices_with_citi, Citibank olmadan ise prices_without_citi olarak sağlanmıştır.
Bu egzersiz, kursun bir parçasıdır
Python ile Nicel Risk Yönetimi
Egzersiz talimatları
weights_with_citiveweights_without_citikullanarak iki portföyün getiri serilerini bul.- Her iki portföy için 30 günlük yuvarlanan pencere standart sapmalarını hesapla.
- Her iki Pandas
Seriesnesnesini tek bir "vol" DataFrame nesnesinde birleştir. - Zaman içinde iki portföy oynaklığını karşılaştırmak için
volnesnesinin içeriğini görselleştir.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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()