यह ट्रेंडिंग टाइम सीरीज़ स्टेशनरी क्यों है?

संवर्धित डिकी-फुलर (ADF) का एक अध्ययन एक अजीब उदाहरण से परीक्षण करें

द्वारा फोटो जान ह्यूबर on Unsplash

समय श्रृंखला विश्लेषण के लिए स्थिरता सबसे बुनियादी अवधारणाओं में से एक है। आम तौर पर, स्थिरता विभिन्न सांख्यिकीय तरीकों के साथ समय श्रृंखला के मॉडलिंग के लिए उत्कृष्ट गुण प्रदान करेगी। संवर्धित डिकी-फुलर (एडीएफ) स्थिरता की जाँच के लिए परीक्षण संभवतः सबसे व्यापक रूप से उपयोग किया जाने वाला तरीका है।

इस विषय पर ऑनलाइन ढेर सारे लेख हैं। मैं बुनियादी परिचय पर आपका समय बर्बाद नहीं करूंगा, जैसे कि स्थिरता की परिभाषा, एडीएफ परीक्षण कैसे करें, आदि। इस पोस्ट में, मैं एक एप्लिकेशन में एक अजीब मामले का सामना करने के बाद एडीएफ परीक्षण की खोज की अपनी यात्रा साझा करूंगा।

मैं जो सीखने का मार्ग दिखाऊंगा वह डेटा विज्ञान सीखने के लिए विशिष्ट है। सबसे पहले, हम सोचते हैं कि हम किसी उपकरण या अवधारणा को समझते हैं, लेकिन हम केवल उस शब्द को स्वीकार करते हैं और याद रखते हैं। जब हम इसे वास्तविक डेटा पर लागू करते हैं, तो हमें अप्रत्याशित, चुनौतीपूर्ण समस्याएं मिल सकती हैं जो हमें और अधिक जांच करने और आगे समझने के लिए प्रेरित करती हैं।

फिर से, मैं अपना कोड GitHub पर साझा करूंगा; कृपया अंत में संदर्भ अनुभाग में लिंक ढूंढें।

एक अप्रत्याशित यात्रा की शुरुआत

मैं पिछले दिनों कुछ समय श्रृंखला पर काम कर रहा था। चित्र 1 उनमें से एक को दर्शाता है। उससे दोगुना कोई नहीं है ऊपर की ओर रुझान मौजूद है, और समय के साथ भिन्नता भी बदलती है. इस स्पष्ट दृश्य के साथ, मुझे स्थिरता का परीक्षण करने की आवश्यकता नहीं थी। किसी कारण से मुझे याद नहीं है, मैंने अभी भी इसे एडीएफ परीक्षण के साथ आज़माया था। आश्चर्यजनक रूप से, पी-वैल्यू लगभग 0 है, जिसका अर्थ है कि मुझे शून्य परिकल्पना को अस्वीकार कर देना चाहिए और स्वीकार करना चाहिए कि यह स्थिर है।

चित्र 1. एक प्रवृत्ति के साथ समय श्रृंखला (लेखक द्वारा छवि)

यह अजीब है। परीक्षा परिणाम गलत लग रहा था. मैं जांच करना चाहता था कि एडीएफ परीक्षण के पीछे क्या चल रहा है। पहला कदम जो मैंने आजमाया वह इस मुद्दे को सिंथेटिक डेटा के साथ दोहराना था। मैंने निम्नलिखित कोड के साथ कुछ परीक्षण डेटा तैयार किया। कोड केवल धीमी प्रवृत्ति के व्यवहार की नकल करता है, मौसमी की नहीं।

चित्र 20,000 में 1 अवलोकन हैं, जिसका अर्थ है कि प्रवृत्ति बहुत धीमी गति से बढ़ रही है। मैं 0.0005 की थोड़ी ढलान के साथ एक समय श्रृंखला बनाता हूं। 0 अवलोकनों के बाद समय श्रृंखला माध्य मान लगभग 0.5 से 1000 तक बढ़ जाता है। तो आइए इसे adfuller() फ़ंक्शन के साथ परीक्षण करें statsmodels.tsa.stattools डिफ़ॉल्ट पैरामीटर के साथ. पी-वैल्यू 0.01 है, और "समस्या" फिर से होती है। चित्र 2 परिणाम दिखाता है। आप शीर्षक को अनदेखा कर सकते हैं, और ऊपर की ओर रुझान पर ध्यान केंद्रित कर सकते हैं। मैं बाद में समझाऊंगा कि हमारे पास तीन अलग-अलग एडीएफ परीक्षणों से पी-वैल्यू क्यों हैं।

चित्र 2. एडीएफ परीक्षण परिणाम के साथ सिंथेटिक समय श्रृंखला (लेखक द्वारा छवि)

डीएफ परीक्षण के पीछे का गणित

हमें यह देखने के लिए गहराई में जाना चाहिए कि एडीएफ परीक्षण वास्तव में क्या कर रहा है। इससे पता चलता है कि इसकी गणित पृष्ठभूमि जटिल नहीं है। सबसे पहले, एडीएफ परीक्षण इसका एक उन्नत संस्करण है डिकी-फुलर परीक्षण. वहाँ रहे हैं डीएफ परीक्षण के तीन मुख्य संस्करण (विकिपीडिया से):

संस्करण 1: एक इकाई जड़ के लिए परीक्षण: ∆yᵢ = δyᵢ₋₁ + uᵢ

संस्करण 2: स्थिरांक के साथ एक इकाई मूल के लिए परीक्षण: ∆yᵢ = a₀ + δyᵢ₋₁ + uᵢ

संस्करण 3। स्थिर और नियतात्मक प्रवृत्ति के साथ एक इकाई मूल के लिए परीक्षण: ∆yᵢ = a₀ + a₁*t + δyᵢ₋₁ + uᵢ

प्रत्येक संस्करण में, शून्य परिकल्पना यह है कि एक इकाई मूल है, δ=0।

Statsmodels पैकेज पैरामीटर के साथ सभी तीन संस्करणों का समर्थन करता है "प्रतिगमन"।

संस्करण 1 के लिए, प्रतिगमन 'एन' है (कोई स्थिरांक नहीं, कोई प्रवृत्ति नहीं)।

संस्करण 2 के लिए, प्रतिगमन 'सी' (केवल स्थिरांक) है; यह डिफ़ॉल्ट सेटिंग है।

संस्करण 3 के लिए, प्रतिगमन 'सीटी' (स्थिर और प्रवृत्ति) है।

मैं तीन अलग-अलग सेटिंग्स के साथ परीक्षण फिर से चलाता हूं, और नीचे नए परिणाम हैं।

संस्करण 1 के लिए, पी-मान 0.09 है। हमें शून्य परिकल्पना को अस्वीकार नहीं करना चाहिए।

संस्करण 2 के लिए, पी-मान 0.01 है। हमने पहले ही इसे एक समस्या मान लिया है क्योंकि यह डिफ़ॉल्ट सेटिंग है।

संस्करण 3 के लिए, पी-मान 0.00 है। यह अपेक्षित है क्योंकि समय श्रृंखला वास्तव में है नियतिवादी प्रवृत्ति के साथ स्थिर.

इसलिए इस उदाहरण डेटा के लिए, यदि हम इसे संस्करण 1 (प्रतिगमन = 'एन') के साथ परीक्षण करते हैं, तो हम यह नहीं कहेंगे कि यह स्थिर है। हमें संभवतः डिफ़ॉल्ट सेटिंग का उपयोग नहीं करना चाहिए. लेकिन आपको यह भी आश्चर्य हो सकता है कि स्थिर शब्द ने यहां इतना बड़ा अंतर क्यों डाला? आइए और अधिक खोदें।

डीएफ परीक्षण से लेकर रैखिक प्रतिगमन तक

उपरोक्त परिभाषा के आधार पर, डीएफ परीक्षण केवल रैखिक प्रतिगमन है। चित्र 3 रैखिक प्रतिगमन के लिए सभी बिंदु दिखाता है। Y अक्ष ∆yᵢ है, X अक्ष yᵢ₋₁ है, और uᵢ अवशिष्ट है। संस्करण 1 का अर्थ है कि हमें बिना किसी अवरोध (कोई स्थिरांक) के एक रेखा फिट करनी होगी। संस्करण 2 का अर्थ है कि हमें अवरोधन (स्थिर) के साथ एक रेखा फिट करनी होगी।

चित्र 3. ∆yᵢ और yᵢ₋₁ (छवि लेखक द्वारा)

स्किटलर्न लीनियर रिग्रेशन पैरामीटर फिट_इंटरसेप्ट के साथ उन दो विकल्पों का अच्छी तरह से समर्थन करता है। चित्र 4 के नीचे दो सज्जित रेखाएँ हैं। जैसा कि आप देख सकते हैं, अवरोधन वाली रेखा बिना अवरोधन वाली रेखा से बेहतर फिट बैठती है। आर-स्क्वायर स्कोर ने भी इसकी स्पष्ट पुष्टि की। यह भी ध्यान दें कि नारंगी रेखा का ढलान नीली रेखा से छोटा है। दूसरे शब्दों में, नारंगी रेखा का ढलान 0 के करीब है।

चित्र 4. रैखिक प्रतिगमन परिणाम (लेखक द्वारा छवि)

हम विज़ुअलाइज़ेशन द्वारा भी सोच सकते हैं: बिंदु (0,0) के आसपास केंद्रित नहीं हैं, इसलिए फिट की गई प्रतिगमन रेखा (0,0) से नहीं गुजरनी चाहिए। अवरोधन 0 से अधिक होना चाहिए। क्योंकि 0 प्रारंभिक माध्य है, ∆y 0 से अधिक होना चाहिए, इसलिए समग्र माध्य बढ़ जाएगा। यदि हम प्रतिगमन रेखा को (0,0) से गुजरने के लिए मजबूर करते हैं, तो यह डेटा को कम कर देगा, और (0) के प्रभाव के कारण ढलान 0,0 के करीब हो जाएगा।

हमने देखा है कि अवरोधन प्रभावों को शामिल करना रैखिक प्रतिगमन में फिट बैठता है या नहीं। एक लाइन कैसे लगाई जाती है इसका एडीएफ परीक्षण के परिणामों पर प्रभाव क्यों पड़ता है, और पी-वैल्यू कहां से आती है?

रैखिक प्रतिगमन से पी-मूल्य तक

अब यह थोड़ा जटिल हो रहा है। डीएफ परीक्षण का अंतिम पी-वैल्यू रैखिक प्रतिगमन से गुणांक के पी-वैल्यू से नहीं है। मूल रूप से, आंकड़ों का एक विशिष्ट वितरण होता है जिसे डिकी-फुलर तालिका के रूप में जाना जाता है। फिर हम परीक्षण आँकड़ों के लिए मैकिनॉन के अनुमानित पी-मान का उपयोग करते हैं। आपको विवरण इसमें मिल सकता है स्टैटसमॉडल स्रोत कोड.

क्योंकि शून्य परिकल्पना δ=0 है, जिसका अर्थ है कि फिट लाइन की ढलान का परीक्षण 0 है। हमें पी-वैल्यू कैसे प्राप्त करें, इसके बारे में विवरण में जाने की आवश्यकता नहीं है। पी-वैल्यू और ढलान (δ रैखिक प्रतिगमन में, ट्रेंडिंग ढलान नहीं) के बीच संबंध की तर्क श्रृंखला इस प्रकार है:

आम तौर पर, यदि ढलान 0 से दूर है, तो पी-वैल्यू छोटा होना चाहिए, अधिक संभावना है कि शून्य परिकल्पना को खारिज कर दिया जाए और कोई इकाई जड़ और स्थिर न होने का सुझाव दिया जाए। यदि ढलान 0 है या 0 के बहुत करीब है, तो पी-वैल्यू अधिक होना चाहिए, अधिक संभावना है कि शून्य परिकल्पना को स्वीकार किया जाए और यूनिट रूट और गैर-स्थिर का सुझाव दिया जाए। दूसरे परिदृश्य के लिए, विकिपीडिया कहता है, "परीक्षणों में कम सांख्यिकीय शक्ति होती है क्योंकि वे अक्सर वास्तविक यूनिट-रूट प्रक्रियाओं (δ = 0) और निकट यूनिट-रूट प्रक्रियाओं (δ 0 के करीब है) के बीच अंतर नहीं कर पाते हैं"। इसीलिए सबसे पहले हमारे सामने समस्या है। हम निकट-यूनिट-रूट प्रक्रिया से निपट रहे हैं। संस्करण 1 को एक यूनिट रूट मिलता है और संस्करण 2 को एक यूनिट रूट नहीं मिल पाता है।

उपरोक्त उदाहरण के लिए संस्करण 1 क्यों काम करता है?

संस्करण 1 चित्र 2 में डेटा के लिए काम करता है क्योंकि हम ढलान को 0 के करीब बनाते हैं, इसलिए पी-मान अधिक है।

हालाँकि, हम संस्करण 1 को डिफ़ॉल्ट सेटिंग के रूप में उपयोग नहीं कर सकते। संस्करण 1 के लिए दो मामले हैं (लाइन को (0,0) से गुजरने के लिए मजबूर करना):

केस 1: (0,0) सभी डेटा बिंदुओं के करीब है। यदि रेखा को (0,0) से गुजरना है, तो रेखा समतल होगी, और ढलान 0 के करीब आ जाएगी। चित्र 4 इस मामले को दर्शाता है। कृपया ध्यान दें कि चित्र 4 में प्रदर्शन केवल एक वेरिएबल yᵢ₋₁ में फिट बैठता है, वास्तविक एडीएफ अधिक लैग वैरिएबल में फिट होगा।

केस 2: (0,0) सभी डेटा बिंदुओं से बहुत दूर है। यदि लाइन को (0,0) से गुजरना होगा, तो हम फिटिंग को विफल कर सकते हैं; अनिवार्य रूप से, ढलान 0 है, जिसका अर्थ है कि हम ∆yᵢ और yᵢ₋₁ का एक रैखिक संबंध नहीं पा सकते हैं, जैसे कि एक रेखा (0,0) से गुजरेगी और अधिकांश डेटा बिंदुओं को कवर करेगी। इसलिए, परीक्षण परिणाम एक मूल इकाई होने के प्रति पक्षपाती होगा.

नीचे चित्र 5 संस्करण 1 परीक्षण का एक उदाहरण दिखाता है जो शून्य परिकल्पना (पी-मान 0.6) को अस्वीकार करने में विफल रहा है, और डेटा 10 के माध्य के साथ स्थिर है। चित्र 6 कारण बताता है। जैसा कि आप देख सकते हैं, हम अवरोधन के बिना एक रेखा नहीं ढूंढ सकते (आर-वर्ग 0 है), इसलिए फिट लाइन का ढलान 0 है (∆yᵢ yᵢ₋₁ पर निर्भर नहीं करता है)।

चित्र 5. संस्करण 1 एक स्थिर समय श्रृंखला को पहचानने में विफल रहा (लेखक द्वारा छवि)
चित्र 6. रैखिक प्रतिगमन अवरोधन के बिना एक रेखा ढूंढने में विफल रहता है (गुजरना (0,0)) (लेखक द्वारा छवि)

डीएफ परीक्षण से लेकर एडीएफ परीक्षण तक

अब हम समझते हैं कि डीएफ परीक्षण रैखिक प्रतिगमन है और रैखिक प्रतिगमन से पी-मान कैसे प्राप्त करें, आइए एडीएफ पर चलते हैं। ADF का सूत्र है:

फिर से, रैखिक प्रतिगमन। "संवर्धित" भाग यह है कि हमें अधिक गुणांक फिट करने होंगे।

स्टैटमॉडल पैकेज एएफटी परीक्षण का विस्तृत सारांश दिखाने की अनुमति देता है। चित्र 7 परिणाम है.

चित्र 7. विस्तृत सारांश के साथ एडीएफ परीक्षण (लेखक द्वारा छवि)

हम 'ओएलएस रिग्रेशन' (रैखिक रिग्रेशन के लिए डिफ़ॉल्ट समाधान) और 17 गुणांक देखते हैं। मैंने अधिकतम अंतराल निर्दिष्ट नहीं किया है, इसलिए परीक्षण समय श्रृंखला की लंबाई के आधार पर एक संख्या तक प्रयास करेगा, जो कि 17 है।

कॉन्स्ट (इंटरसेप्ट) भी लगा हुआ है. मान 0.0596 है.

आइए स्किकिट-लर्न में रैखिक प्रतिगमन का उपयोग करके एडीएफ परीक्षण को लागू करने का प्रयास करें। चित्र 8 कोड और आउटपुट है।

चित्र 8. स्किकिट-लर्न के साथ एडीएफ परीक्षण (सिर्फ रैखिक प्रतिगमन भाग) (लेखक द्वारा छवि)

अवरोधन 0.0596 है, और अन्य गुणांक चित्र 7 के समान हैं। स्किकिट-लर्न में रैखिक प्रतिगमन केवल सादा ओएलएस है। हम वही काम कर रहे हैं, इसलिए इसमें कोई आश्चर्य की बात नहीं है कि परिणाम समान हैं।

यात्रा का अंत

पैरामीटर सेट करने का तरीका जानने के बाद, मैंने संस्करण 1 (प्रतिगमन = 'एन') का उपयोग करके चित्र 1 में मूल समय श्रृंखला का परीक्षण किया और 0.08 का पी-मान प्राप्त किया, यह सुझाव देते हुए कि यह स्थिर नहीं है। कृपया ध्यान दें कि चित्र 1 में डेटा शून्य-माध्य है, इसलिए आप कल्पना कर सकते हैं कि (0,0) डेटा बिंदुओं (∆yᵢ, yᵢ₋₁) के करीब है। संस्करण 1 परीक्षण का उपयोग करने से हमें मदद मिलेगी।

क्योंकि चित्र 1 में ट्रेंडिंग ढलान न्यूनतम है, हम चरणों के साथ समय श्रृंखला का फिर से नमूना भी ले सकते हैं, जिससे ढलान बढ़ जाती है। उदाहरण के लिए, यदि मैं इसे चार चरणों ( value[::4] ) के साथ परीक्षण करता हूं, तो यह डिफ़ॉल्ट सेटिंग के साथ ADF परीक्षण पास नहीं करेगा (regression='c' के लिए p-मान 0.17 है)।

समस्या सुलझ गयी।

Takeaways

एडीएफ के नतीजों पर आंख मूंदकर भरोसा न करें। विज़ुअलाइज़ेशन आपका मित्र है.

एडीएफ परीक्षण एक सरल रैखिक प्रतिगमन है, और सांख्यिकी मॉडल का कार्यान्वयन प्रतिगमन समस्या को हल करने के लिए ओएलएस का उपयोग करता है। फिर यह पी-मान निकालने के लिए डिकी-फुलर तालिका का उपयोग करता है जो नल परिकल्पना को मान्य करता है कि फिट किए गए प्रतिगमन से पहले अंतराल चर का गुणांक 0 है।

निकट इकाई-रूट प्रक्रियाओं का परीक्षण करते समय ADF परीक्षण की सीमाएँ होती हैं (δ 0 के करीब है)।

हमें तदनुसार उचित ADF संस्करण चुनने की आवश्यकता है। उदाहरण के लिए, जब आप एक स्थिर प्रवृत्ति देखते हैं और 'ट्रेंड स्टेशनरी' का परीक्षण करना चाहते हैं, तो आपको पैरामीटर के रूप में 'सीटी' का चयन करना होगा। यदि आप किसी सिग्नल के लिए धीमी प्रवृत्ति को पकड़ने जा रहे हैं, जिसका माध्य चित्र 0 और चित्र 1 की तरह 2 माना जाता है, तो शायद आपको इंटरसेप्ट को फिट करने के प्रभाव से बचने के लिए पैरामीटर के रूप में 'एन' का चयन करने की आवश्यकता है। स्टैटसमॉडल पैरामीटर 'सीटीटी' के साथ क्वांटिक प्रवृत्ति का भी समर्थन करते हैं। यह उन्नत विकल्प कुछ मामलों के लिए एक अच्छा विकल्प हो सकता है। यदि आप और अधिक जानना चाहते हैं, तो कृपया देखें अवरोधन और नियतात्मक समय प्रवृत्ति शर्तों को शामिल करने के बारे में अनिश्चितता से निपटना.

मुझे आशा है कि आपने एडीएफ परीक्षण के बारे में कुछ सीखा होगा।

अपनी समय श्रृंखला का आनंद लें!

मुझसे संपर्क करें लिंक्डइन.

पुनश्च: मेरे पास समय श्रृंखला डेटा के लिए अनुभव और जुनून है। यदि आपको यह लेख पसंद आया, तो आपको मेरे दूसरे लेख में भी रुचि हो सकती है समय श्रृंखला के बारे में पोस्ट.

संदर्भ

GitHub पर नोटबुक फ़ाइल

यह ट्रेंडिंग टाइम सीरीज़ स्टेशनरी क्यों है? स्रोत https://towardsdatascience.com/why-is-this-trending-time-series-stationary-f3fb9447336f?source=rss—-7f60cf5620c9—4 से https://towardsdatascience.com/feed के माध्यम से पुनर्प्रकाशित

<!–

->

समय टिकट:

से अधिक ब्लॉकचेन कंसल्टेंट्स