Structural breaks

Python में Quantitative Risk Management

Jamsheed Shorish

Computational Economist

Risk and distribution

  • रिस्क मैनेजमेंट टूलकिट
    • जोखिम घटाना: MPT
    • जोखिम माप: VaR, CVaR
  • जोखिम: फैलाव, वोलैटिलिटी
    • जोखिम की परिभाषा के रूप में वैरिएंस (स्टैंडर्ड डिविएशन)
  • जोखिम और जोखिम कारकों के रैंडम वैरिएबल के रूप में उनकी डिस्ट्रिब्यूशन के बीच संबंध
Python में Quantitative Risk Management

Stationarity

  • मान्यता: डिस्ट्रिब्यूशन समय के साथ समान है
  • अपरिवर्तित डिस्ट्रिब्यूशन = स्टेशनरी
  • ग्लोबल फाइनेंशियल क्राइसिस अवधि की इफिशिएंट फ्रंटियर
    • स्टेशनरी नहीं
  • इस्टीमेशन तकनीकों के लिए स्टेशनैरिटी आवश्यक है
    • हिस्टोरिकल: पिछले डेटा से अज्ञात स्टेशनरी डिस्ट्रिब्यूशन
    • पैरामेट्रिक: मानी गई स्टेशनरी डिस्ट्रिब्यूशन क्लास
    • मोंटे कार्लो: रैंडम ड्रॉज़ के लिए मानी गई סטेशनरी डिस्ट्रिब्यूशन
Python में Quantitative Risk Management

Structural breaks

  • नॉन-स्टेशनरी => संभव है कि डिस्ट्रिब्यू션 समय के साथ बदले
  • परिवर्तन के लिए समय के विशिष्ट बिंदु मानिए
    • डेटा को सब-पीरियड्स में बाँटिए
    • प्रत्येक सब-पीरियड में स्टेशनैरिटी मानिए
  • स्ट्रक्चरल ब्रेक(s): परिवर्तन के बिंदु
    • औसत और/या वोलैटिलिटी के 'ट्रेंड' में बदलाव
Python में Quantitative Risk Management

उदाहरण: चीन की जनसंख्या वृद्धि

  • अवधि देखें: 1950 - 2019
  • ट्रेंड लगभग लिनियर है...

समय के साथ चीन की आबादी का ग्राफ, 1950-2019

Python में Quantitative Risk Management

उदाहरण: चीन की जनसंख्या वृद्धि

  • अवधि देखें: 1950 - 2019
  • ट्रेंड लगभग लिनियर है...
  • ...पर 1990 के आसपास धीमा लगता है
  • 1990 के पास स्ट्रक्चरल ब्रेक संभव।
  • इंगित करता है कि नेट पॉपुलेशन (जन्म - मृत्यु) का डिस्ट्रिब्यूशन बदला
  • संभावित कारण: सरकारी नीति, जीवन स्तर, आदि।

ट्रेंड एरो के साथ समय के साथ चीन की आबादी का ग्राफ, 1950-2019

Python में Quantitative Risk Management

The Chow test

  • पिछला उदाहरण: स्ट्रक्चरल ब्रेक के लिए विजुअल एविडेंस
  • मात्रात्मककरण: सांख्यिकीय माप
  • Chow Test:
    • लिनियर मॉडल के तहत स्ट्रक्चरल ब्रेक के अस्तित्व का परीक्षण
    • शून्य परिकल्पना: कोई ब्रेक नहीं
    • तीन OLS रिग्रेशन आवश्यक
      • पूरी अवधि के लिए रिग्रेशन
      • दो रिग्रेशन, ब्रेक से पहले और बाद में
    • सम-ऑफ-स्क्वायर्ड रेजिडुअल्स इकट्ठा करें
    • टेस्ट स्टैटिस्टिक "F" डिस्ट्रिब्यूशन का अनुसरण करता है
Python में Quantitative Risk Management

The Chow test in Python

  • परिकल्पना: चीन की आबादी में 1990 पर स्ट्रक्चरल ब्रेक
  • लिनियर "फैक्टर मॉडल" मानिए: $$\log(\text{Population}_t) = \alpha + \beta * \text{Year}_t + u_t$$
  • पूरे 1950 - 2019 पर statsmodels के OLS ऑब्जेक्ट से OLS रिग्रेशन
    • सम-ऑफ-स्क्वायर्ड रेजिडुअल res.ssr प्राप्त करें
import statsmodels.api as sm
res = sm.OLS(log_pop, year).fit()

print('SSR 1950-2019: ', res.ssr)
SSR 1950-2019: 0.29240576138055463
Python में Quantitative Risk Management

The Chow test in Python

  • 1950 - 2019 को 1950 - 1989 और 1990 - 2019 सब-पीरियड्स में बाँटें
  • प्रत्येक सब-पीरियड पर OLS रिग्रेशन चलाएँ
    • res_before.ssr और res_after.ssr प्राप्त करें
pop_before = log_pop.loc['1950':'1989']; year_before = year.loc['1950':'1989'];
pop_after  = log_pop.loc['1990':'2019']; year_after =  year.loc['1990':'2019'];

res_before = sm.OLS(pop_before, year_before).fit() res_after = sm.OLS(pop_after, year_after).fit()
print('SSR 1950-1989: ', res_before.ssr) print('SSR 1990-2019: ', res_after.ssr)
SSR 1950-1989: 0.011741113017411783
SSR 1990-2019: 0.0013717593339608077
Python में Quantitative Risk Management

The Chow test in Python

  • F-डिस्ट्रिब्यूटेड Chow टेस्ट स्टैटिस्टिक निकालें
    • न्यूमेरेटर निकालें
      • k = 2 डिग्रीज़ ऑफ फ्रीडम = 2 OLS कोएफिशिएंट $\alpha$, $\beta$
    • डिनोमिनेटर निकालें
      • 66 डिग्रीज़ ऑफ फ्रीडम = कुल डेटा पॉइंट (70) - 2*k
numerator = (ssr_total - (ssr_before + ssr_after)) / 2

denominator = (ssr_before + ssr_after) / 66
chow_test = numerator / denominator print("Chow test statistic: ", chow_test, "; Critical value, 99.9%: ", 7.7)
Chow test statistic: 702.8715822890057; Critical value, 99.9%: 7.7
Python में Quantitative Risk Management

अभ्यास करते हैं!

Python में Quantitative Risk Management

Preparing Video For Download...