शुरू करेंमुफ़्त में शुरू करें

क्या हमें भरोसा है कि यह स्टॉक Mean Reverting है?

पिछले चैप्टर में, आपने देखा कि MSFT के साप्ताहिक स्टॉक रिटर्न्स का ऑटोकॉरिलेशन -0.16 था. यह ऑटोकॉरिलेशन बड़ा लगता है, लेकिन क्या यह सांख्यिकीय रूप से महत्त्वपूर्ण है? दूसरे शब्दों में, क्या आप कह सकते हैं कि यदि वास्तविक ऑटोकॉरिलेशन शून्य हो, तो इतना बड़ा नकारात्मक ऑटोकॉरिलेशन देखने की संभावना 5% से कम है? और क्या अन्य lags पर कोई ऑटोकॉरिलेशन शून्य से सांख्यिकीय रूप से भिन्न है?

भले ही वास्तविक ऑटोकॉरिलेशन सभी lags पर शून्य हों, सीमित सैंपल के रिटर्न्स में इनके अनुमान बिल्कुल शून्य नहीं आएँगे. वास्तव में, सैंपल ऑटोकॉरिलेशन का मानक विचलन \(\small 1/\sqrt{N}\) होता है जहाँ \(\small N\) ऑब्ज़र्वेशन्स की संख्या है, तो यदि उदाहरण के लिए \(\small N=100\) हो, तो ACF का मानक विचलन 0.1 होगा, और चूँकि एक नॉर्मल कर्व का 95% भाग माध्य से +1.96 और -1.96 मानक विचलन के बीच होता है, इसलिए 95% कॉन्फिडेंस इंटरवल \(\small \pm 1.96/\sqrt{N}\) होगा. यह आसन्नता (approximation) केवल तब मान्य है जब वास्तविक ऑटोकॉरिलेशन सभी शून्य हों.

आप ACF के वास्तविक और अनुमानित कॉन्फिडेंस इंटरवल की गणना करेंगे, और इसे पिछले चैप्टर के lag-one ऑटोकॉरिलेशन -0.16 से तुलना करेंगे. Microsoft के साप्ताहिक रिटर्न्स पहले से returns नाम के DataFrame में लोड हैं.

यह अभ्यास पाठ्यक्रम का हिस्सा है

Python में Time Series Analysis

पाठ्यक्रम देखें

अभ्यास निर्देश

  • returns DataFrame की Series 'Adj Close' में साप्ताहिक रिटर्न्स का ऑटोकॉरिलेशन दोबारा निकालें.
  • len() फंक्शन का उपयोग करके returns DataFrame में ऑब्ज़र्वेशन्स की संख्या निकालें.
  • अनुमानित ऑटोकॉरिलेशन के 95% कॉन्फिडेंस इंटरवल का आसन्न मान निकालें. sqrt() math फंक्शन इम्पोर्ट किया जा चुका है और उपयोग कर सकते हैं.
  • statsmodels से इम्पोर्ट किए गए plot_acf का उपयोग करके returns का ऑटोकॉरिलेशन फंक्शन प्लॉट करें. कॉन्फिडेंस इंटरवल के लिए alpha=0.05 सेट करें (यही डिफॉल्ट है) और lags=20 रखें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# Import the plot_acf module from statsmodels and sqrt from math
from statsmodels.graphics.tsaplots import plot_acf
from math import sqrt

# Compute and print the autocorrelation of MSFT weekly returns
autocorrelation = returns['Adj Close'].___
print("The autocorrelation of weekly MSFT returns is %4.2f" %(autocorrelation))

# Find the number of observations by taking the length of the returns DataFrame
nobs = ___

# Compute the approximate confidence interval
conf = 1.96/___
print("The approximate confidence interval is +/- %4.2f" %(conf))

# Plot the autocorrelation function with 95% confidence intervals and 20 lags using plot_acf
plot_acf(___, alpha=0.05, ___)
plt.show()
कोड संपादित करें और चलाएँ