SARIMA: मौसमी टाइम सीरीज़ पूर्वानुमान के लिए एक संपूर्ण मार्गदर्शिका
जानें कि SARIMA मौसमीपन को संभालने के लिए ARIMA का कैसे विस्तार करता है, इसके सात पैरामीटर समझें, और डेटा संग्रह से लेकर फोरकास्टिंग तक Python में एक कामकाजी मॉडल बनाएँ।
हर दिसंबर, रिटेलर छुट्टियों के लिए अतिरिक्त स्टॉक जमा करते हैं। हर गर्मी में, बिजली ग्रिड एसी की मांग के चरम के लिए तैयार रहते हैं। ये पैटर्न साल दर साल दोहराए जाते हैं, और यदि आप एक ऐसा टाइम सीरीज़ पूर्वानुमान बना रहे हैं जो इन्हें नज़रअंदाज़ करता है, तो आप सटीकता खो रहे हैं।
सीज़नल ऑटोरेग्रेसिव इंटीग्रेटेड मूविंग एवरेज मॉडल्स (संक्षेप में SARIMA) व्यापक रूप से उपयोग किए जाने वाले ARIMA फ्रेमवर्क का विस्तार हैं, जो नियमित ट्रेंड्स के साथ-साथ दोहराने वाले मौसमी पैटर्न को भी कैप्चर करते हैं। इस लेख में, आप जानेंगे कि SARIMA क्या है, इसके घटक कैसे काम करते हैं, कब इसे ARIMA पर प्राथमिकता देनी चाहिए, और Python में इसे चरणबद्ध तरीके से कैसे बनाना है।
SARIMA क्या है?
SARIMA एक टाइम सीरीज़ फोरकास्टिंग मॉडल है जो डेटा में गैर-मौसमी और मौसमी दोनों पैटर्न को संभालता है। यह सीधे ARIMA पर आधारित है, इसलिए यदि आपने पहले ARIMA के साथ काम किया है, तो आप इसके ज़्यादातर मैकेनिज़्म पहचानेंगे। मुख्य अंतर यह है कि SARIMA एक दूसरा पैरामीटर सेट जोड़ता है जो विशेष रूप से तय अंतरालों पर दोहराने वाले व्यवहार—जैसे मासिक, त्रैमासिक, या साप्ताहिक चक्र—को मॉडल करने के लिए डिज़ाइन किया गया है।
औपचारिक रूप से, एक SARIMA मॉडल को SARIMA(p, d, q)(P, D, Q)[S] लिखा जाता है। पहला पैरामीटर सेट (p, d, q) गैर-मौसमी संरचना को संभालता है, जो मानक ARIMA जैसा ही है। दूसरा सेट (P, D, Q)[S] मौसमी पैटर्न का हिसाब रखता है, जहाँ S मौसमी चक्र की लंबाई है। मासिक डेटा में वार्षिक मौसमी पैटर्न के लिए S = 12 होता है। त्रैमासिक डेटा में S = 4।
SARIMA के प्रमुख घटक
SARIMA के सात पैरामीटर शुरुआत में अधिक लग सकते हैं। इन्हें दो समूहों में सोचना सहायक होता है: परिचित ARIMA तिकड़ी (p, d, q) और उनके मौसमी समकक्ष (P, D, Q, S) जो मौसमी स्केल पर इन्हीं का प्रतिबिंब हैं। हर मौसमी पैरामीटर वही करता है जो उसका गैर-मौसमी जुड़वां करता है, बस पास–पास के समय कदमों के बजाय मौसमी गैप्स पर लागू होता है।
ऑटोरेग्रेसिव (AR) भाग
AR घटक शृंखला के पिछले मानों का उपयोग भविष्य के मानों का अनुमान लगाने के लिए करता है। पैरामीटर p यह निर्दिष्ट करता है कि कितने लैग्ड मान शामिल करने हैं। यदि p = 2 है, तो मॉडल वर्तमान मान के लिए पिछले दो समय कदमों को प्रेडिक्टर के रूप में उपयोग करता है।
मौसमी पक्ष में, P यही काम मौसमी लैग्स पर करता है। यदि P = 1 और S = 12 है, तो मॉडल 12 अवधि पहले का मान—एक ही महीना, पिछला वर्ष—को प्रेडिक्टर के रूप में देखता है। यह सीधे वर्ष-दर-वर्ष के पैटर्न को कैप्चर करता है।
इंटीग्रेटेड (I) भाग
पैरामीटर d यह नियंत्रित करता है कि ट्रेंड हटाने और शृंखला को स्टेशनरी बनाने के लिए कितनी बार डिफरेंसिंग की जाए। डिफरेंसिंग का मतलब है हर ऑब्जर्वेशन से पिछला ऑब्जर्वेशन घटाना, जिससे रैखिक ट्रेंड हट जाता है। यदि d = 1 है, तो आप प्रथम डिफरेंस लेते हैं; यदि d = 2 है, तो आप पहले से डिफरेंस की गई शृंखला का फिर डिफरेंस लेते हैं।
मौसमी डिफरेंसिंग भी इसी तरह काम करती है, बस मौसमी लैग्स पर। पैरामीटर D यह बताता है कि कितनी मौसमी डिफरेंसिंग लागू करनी है। D = 1 और S = 12 के साथ, आप हर ऑब्जर्वेशन से 12 अवधि पहले का मान घटाते हैं। जब किसी शृंखला में एक सामान्य ऊपर की ओर ट्रेंड और एक दोहराने वाला मौसमी पैटर्न दोनों हों, तो d = 1 और D = 1 साथ में उपयोग करना सामान्य है।
मूविंग एवरेज (MA) भाग
AR घटक, जो पिछले मानों को देखता है, के विपरीत MA घटक वर्तमान ऑब्जर्वेशन और पिछले पूर्वानुमानों की अवशिष्ट त्रुटियों के बीच संबंध को मॉडल करता है। पैरामीटर q यह निर्धारित करता है कि कितने लैग्ड एरर टर्म शामिल करने हैं। यदि q = 1 है, तो मॉडल अपने वर्तमान फोरकास्ट को समायोजित करने के लिए पिछले कदम की प्रेडिक्शन एरर का उपयोग करता है।
मौसमी समकक्ष Q इसी तर्क को मौसमी लैग्स पर लागू करता है। Q = 1 और S = 12 के साथ, मॉडल 12 अवधि पहले की फोरकास्ट एरर को शामिल करता है। यह तब मायने रखता है जब मौसमी झटके—जैसे असामान्य रूप से गर्मी के कारण ऊर्जा मांग में उछाल—अगले वर्ष के उसी अवधि तक बने रहते हैं।
मौसमी घटक (S)
S पैरामीटर मौसमी चक्र की लंबाई को परिभाषित करता है और तीनों मौसमी पैरामीटर (P, D, Q) को आपस में जोड़ता है। S को सही चुनना अहम है: यदि आपका डेटा मासिक है और वार्षिक पैटर्न है, तो S = 12। साप्ताहिक डेटा में वार्षिक चक्र होने पर S लगभग 52 होगा।
यहाँ मौसमीपन कभी-कभी पेचीदा हो सकता है। एक वर्ष ठीक 52 सप्ताह नहीं होता; यह लगभग 52.18 है। अधिकांश व्यावहारिक उद्देश्यों के लिए S = 52 तक राउंड करना ठीक काम करता है। लेकिन कुछ डेटासेट्स में एक से अधिक मौसमी अवधियाँ होती हैं: दैनिक बिजली मांग अक्सर साप्ताहिक चक्र (S = 7) और वार्षिक चक्र (S = 365) दोनों दिखाती है। मानक SARIMA एक मौसमी अवधि संभालता है, इसलिए बहु-मौसमीपन के लिए TBATS या Facebook Prophet जैसे उन्नत तरीकों की आवश्यकता होती है।
जब S स्पष्ट न हो, तो टाइम सीरीज़ डिकंपोजिशन मदद करता है। शृंखला को उसके ट्रेंड, मौसमी, और अवशिष्ट घटकों में तोड़ने से प्रमुख दोहराने वाली अवधि दृश्य रूप से सामने आती है। आप ऑटोकॉरिलेशन प्लॉट्स में नियमित लैग्स पर स्पाइक्स भी देख सकते हैं।
ARIMA बनाम SARIMA: अंतर क्या है?
आप शायद पहले से यही सोच रहे हैं: वास्तव में SARIMA का उपयोग सरल ARIMA के बजाय कब करना चाहिए?
संक्षिप्त जवाब: जब आपके डेटा में कोई सार्थक मौसमी पैटर्न न हो तो ARIMA का उपयोग करें, और जब हो तो SARIMA का।
ARIMA तीन चीज़ों को मॉडल करता है: शृंखला में स्वयं का ऑटोकॉरिलेशन (AR), स्टेशनैरिटी के लिए आवश्यक डिफरेंस की संख्या (I), और पिछले फोरकास्ट एरर का वर्तमान मान पर बना रहने वाला प्रभाव (MA)। यह ट्रेंड्स, चक्र, और अनियमित शोर को अच्छी तरह संभालता है। जो यह नहीं कर सकता, वह है तय मौसमी आवृत्ति पर दोहराने वाले पैटर्न को मॉडल करना। वे अनपेक्षित परिवर्तनशीलता के रूप में छूट जाते हैं।
SARIMA ठीक उसी क्षमता को जोड़ता है। जब आपके डेटा में स्पष्ट मौसमी चोटियाँ और गर्त दिखाई देते हैं, तो एक साधारण ARIMA मॉडल फिट करने से वे पैटर्न अवशेषों में धकेल दिए जाते हैं, जिसके परिणामस्वरूप बदतर फोरकास्ट और ऐसे अवशेष होते हैं जो व्हाइट नॉइज़ नहीं होते। SARIMA मॉडल उन्हें सीधे कैप्चर करता है।
व्यावहारिक नियम: अपना डेटा प्लॉट करें और तय अंतराल पर दोहराने वाले पैटर्न देखें। यदि वे दिखें—छुट्टियों में बिक्री के उछाल, सर्दियों में ऊर्जा की बढ़त, त्रैमासिक आय के पैटर्न—तो SARIMA अपनाएँ। यदि शृंखला अनियमित है या केवल ट्रेंड-चालित है और कोई नियमित चक्र नहीं है, तो ARIMA सरल और पर्याप्त है।
हमारा ARIMA Models in Python कोर्स दोनों फ्रेमवर्क्स को कवर करता है, व्यावहारिक अभ्यासों के साथ, ताकि आप समझ सकें कि किसका उपयोग कब करना है।
Python में SARIMA मॉडल कैसे बनाएं
SARIMA मॉडल बनाना एक तार्किक क्रम का पालन करता है: डेटा एकत्र करें, स्टेशनैरिटी जाँचें, पैरामीटर पहचानें, मॉडल फिट करें, डायग्नोस्टिक्स चलाएँ, और फोरकास्ट करें। यहाँ Python की statsmodels लाइब्रेरी का उपयोग करते हुए हर कदम व्यवहार में कैसे काम करता है।
डेटा संग्रह
मौसमीपन कैप्चर करने वाला मॉडल बनाने के लिए, आपके पास इतना इतिहास होना चाहिए कि पैटर्न कम से कम दो बार दिखे, आदर्श रूप से कई चक्र। मासिक रिटेल बिक्री, तापमान रिकॉर्ड, ऊर्जा खपत के आँकड़े, और यात्रियों की संख्या जैसे उदाहरण क्लासिक हैं। सार्वजनिक स्रोत जैसे Federal Reserve Economic Data (FRED), US Census Bureau, या Kaggle अच्छे शुरुआती बिंदु हैं।
इस वर्कफ़्लो के लिए मानक शिक्षण डेटासेट एयरलाइन पैसेंजर काउंट है: 1949 से 1960 तक का मासिक डेटा जिसमें स्पष्ट ऊपर की ओर ट्रेंड और मज़बूत वार्षिक मौसमीपन है। यह statsmodels के माध्यम से get_rdataset() से उपलब्ध है, जो इसे Rdatasets संग्रह से लाता है। इस डेटासेट पर वर्कफ़्लो सीखें, फिर इसे अपने डेटा पर लागू करें।
डेटा प्रीप्रोसेसिंग
किसी भी SARIMA मॉडल को फिट करने से पहले, आपको एक स्टेशनरी शृंखला चाहिए, जिसमें औसत और विभेदन समय के साथ न बदलें। ऑगमेंटेड डिकी-फुलर (ADF) टेस्ट इसे औपचारिक रूप से जाँचता है: 0.05 से कम p-वैल्यू शृंखला के स्टेशनरी होने का संकेत देती है।
यदि ऐसा नहीं है, तो डिफरेंसिंग इसे ठीक करती है। ट्रेंड के लिए नियमित डिफरेंसिंग (d = 1) लागू करें, मौसमी गैर-स्टेशनैरिटी के लिए मौसमी डिफरेंसिंग (D = 1, लैग S पर), या आवश्यकता होने पर दोनों। इस कदम से पहले मिसिंग वैल्यूज़ को संभालें। फॉरवर्ड फिल या इंटरपोलेशन टाइम सीरीज़ डेटा के लिए मानक तरीके हैं, क्योंकि पंक्तियाँ हटाने से समय संरचना टूट जाती है।
मॉडल की पहचान
स्टेशनरी शृंखला हाथ में होने पर, आप ACF (Autocorrelation Function) और PACF (Partial Autocorrelation Function) प्लॉट्स का उपयोग करके मॉडल पैरामीटर पहचानते हैं। यह देखें:
ACF शृंखला और उसके लैग्स के बीच सहसंबंध दिखाता है। लैग q के बाद तेज कटऑफ MA क्रम का सुझाव देता है। मौसमी लैग्स (मासिक डेटा के लिए 12, 24, 36) पर स्पाइक्स Q को सूचित करते हैं।
PACF मध्यवर्ती लैग प्रभाव हटाकर आंशिक सहसंबंध दिखाता है। लैग p के बाद तेज कटऑफ AR क्रम का संकेत देता है। मौसमी स्पाइक्स P को सूचित करते हैं।
व्यवहार में, प्लॉट्स आपको संभावित मान देते हैं, और आप कुछ मॉडलों की तुलना सूचना मापदंडों से करते हैं (डायग्नोस्टिक्स में और विवरण)। यदि आप खोज को स्वचालित करना चाहें, तो pmdarima पैकेज का auto_arima() पैरामीटर संयोजनों पर ग्रिड सर्च करता है और सबसे उपयुक्त मॉडल चुनता है।
पैरामीटर का आकलन
एक बार उम्मीदवार पैरामीटर पहचान लेने पर, statsmodels अधिकतम संभाव्यता आकलन (MLE) का उपयोग करके उन्हें अनुमानित करता है, यानी ऐसे कोएफिशिएंट मान ढूँढता है जो मॉडल के तहत देखे गए डेटा को सबसे अधिक संभाव्य बनाते हैं। SARIMA का आकलन साधारण ARIMA से अधिक संगणनात्मक रूप से गहन होता है क्योंकि ऑप्टिमाइज़र को गैर-मौसमी और मौसमी दोनों घटकों को एक साथ फिट करना पड़ता है।
फिटिंग प्रक्रिया कभी-कभी ग्लोबल ऑप्टिमम के बजाय लोकल ऑप्टिमम पर अटक सकती है, इसलिए जब परिणाम अटपटे लगें तो कुछ अलग-अलग शुरुआती मान या पैरामीटर संयोजन आज़माना लाभकारी होता है।
मॉडल फिटिंग
एयरलाइन पैसेंजर डेटासेट का उपयोग करते हुए Python में SARIMA मॉडल ऐसे फिट करें:
import pandas as pd
import statsmodels.api as sm
# Load the classic airline dataset
airline_data = sm.datasets.get_rdataset("AirPassengers","datasets").data
airline_data.index = pd.date_range(start="1949-01", periods=len(airline_data), freq="MS")
passengers = airline_data["value"]# Fit SARIMA(1,1,1)(1,1,1)[12]
sarima_model = sm.tsa.statespace.SARIMAX(
passengers,
order=(1,1,1),
seasonal_order=(1,1,1,12),
enforce_stationarity=False,
enforce_invertibility=False)
sarima_result = sarima_model.fit(disp=False)print(sarima_result.summary())संचालित द्वारा
order आर्ग्युमेंट गैर-मौसमी भाग के लिए (p, d, q) लेता है; seasonal_order (P, D, Q, S) लेता है। enforce_stationarity=False और enforce_invertibility=False सेट करने से ऑप्टिमाइज़र को अधिक लचीलापन मिलता है, जो वास्तविक दुनिया के डेटा पर अभिसरण में अक्सर मदद करता है।
मॉडल आँकड़े और डायग्नोस्टिक्स
फिटिंग के बाद, sarima_result.plot_diagnostics() से बिल्ट-इन डायग्नोस्टिक प्लॉट्स चलाएँ। आपको चार चीज़ें देखनी हैं:
मानकीकृत अवशेष: व्हाइट नॉइज़ जैसे दिखने चाहिए, कोई स्पष्ट पैटर्न नहीं।
अवशेषों का हिस्टोग्राम: मोटे तौर पर नार्मल होना चाहिए।
नॉर्मल Q-Q प्लॉट: बिंदु विकर्ण रेखा के क़रीब होने चाहिए।
कोरेलग्राम (अवशेषों का ACF): कोई महत्वपूर्ण स्पाइक नहीं, जो अनपेक्षित ऑटोकॉरिलेशन दर्शाएँ।
कोरेलग्राम में मौसमी लैग्स पर विशेष ध्यान दें। 12, 24, आदि लैग्स पर स्पाइक्स संकेत देते हैं कि मौसमी घटक पूरी तरह कैप्चर नहीं हुआ है। वैकल्पिक विनिर्देशों की तुलना AIC (Akaike Information Criterion) और BIC (Bayesian Information Criterion) से करें: कम मान बेहतर फिट दर्शाते हैं, जहाँ BIC जटिलता पर अधिक दंड लगाता है।
फोरकास्टिंग
मान्य मॉडल के साथ, फोरकास्ट बनाना सरल है। सटीकता का निष्पक्ष आकलन पाने के लिए अपने डेटा को प्रशिक्षण और परीक्षण सेट में बाँटें:
# Train on first 11 years, test on final year
train = passengers[:"1959"]
test = passengers["1960":]# Refit on training data and forecast
sarima_train = sm.tsa.statespace.SARIMAX(
train,
order=(1,1,1),
seasonal_order=(1,1,1,12),
enforce_stationarity=False,# add this
enforce_invertibility=False# add this).fit(disp=False)
forecast = sarima_train.get_forecast(steps=12)
forecast_mean = forecast.predicted_mean
conf_int = forecast.conf_int()संचालित द्वारा
get_forecast() मेथड पॉइंट प्रेडिक्शंस लौटाती है, साथ ही कॉन्फिडेंस इंटरवल्स भी जो आगे तक फोरकास्ट करने पर चौड़े होते जाते हैं। यह चौड़ाई कोई कमी नहीं; यह मॉडल की अनिश्चितता के बारे में ईमानदारी है। होल्ड-आउट टेस्ट सेट पर RMSE (Root Mean Squared Error) या MAPE (Mean Absolute Percentage Error) का उपयोग करके सटीकता का आकलन करें।
SARIMA के व्यावहारिक उपयोग
इतने सारे वास्तविक दुनिया के संकेत मौसमी होते हैं कि SARIMA किसी भी टाइम सीरीज़ टूलकिट में हमेशा के लिए जगह बना लेता है। उद्योगों में कुछ उदाहरण:
रिटेल: इन्वेंटरी योजना के लिए मासिक बिक्री मात्रा का पूर्वानुमान, खासकर छुट्टियों के आसपास जहाँ मांग में उछाल अनुमानित है लेकिन वर्ष-दर-वर्ष परिमाण बदलता है।
ऊर्जा खपत: बिजली और गैस की मांग का पूर्वानुमान, जो तापमान और गतिविधि पैटर्न से प्रेरित दैनिक और वार्षिक दोनों मौसमी चक्रों का अनुसरण करती है।
वित्त: त्रैमासिक आय या ट्रेडिंग वॉल्यूम के पैटर्न का मॉडलिंग जो वित्तीय कैलेंडरों के साथ दोहराते हैं।
मौसम पूर्वानुमान: तापमान, वर्षा, और अन्य जलवायु चर का प्रक्षेपण जो मज़बूत वार्षिक चक्रों का अनुसरण करते हैं।
हर मामले में, दोहराने वाली संरचना ही सिग्नल है, और SARIMA उसी को पकड़ने के लिए बना है।
SARIMA की सीमाएँ
यह जानना कि कोई टूल कहाँ अच्छा काम करता है, तस्वीर का केवल आधा हिस्सा है। SARIMA मौसमी टाइम सीरीज़ के लिए एक मजबूत बेसलाइन है, लेकिन इसकी सीमाएँ जानना ही अच्छे मॉडल उपयोगकर्ताओं को आँख बंद करके उपयोग करने वालों से अलग करता है।
यह एक समय में ठीक एक मौसमी अवधि संभालता है। यदि आपके डेटा में कई मौसमीपन हैं—दैनिक, साप्ताहिक, और वार्षिक पैटर्न एक-दूसरे पर परतदार—तो SARIMA उन्हें एक साथ मॉडल नहीं करेगा। TBATS, Prophet, या LSTM नेटवर्क जैसे तरीके कई मौसमी आवृत्तियों को अधिक स्वाभाविक रूप से संभालते हैं।
SARIMA रैखिकता मानता है। यह पिछले मानों, पिछली त्रुटियों, और भविष्य के अवलोकनों के बीच रैखिक संबंधों को मॉडल करता है। गैर-रैखिक डाइनैमिक्स, जो वित्तीय टाइम सीरीज़ या अराजक प्रणालियों में आम हैं, के लिए अलग टूल्स की आवश्यकता होती है। और ARIMA की तरह, SARIMA केवल शृंखला के अपने इतिहास पर निर्भर करता है। यदि आपके पूर्वानुमानों को बाहरी चालक प्रभावित करते हैं—प्रमोशन्स, मौसम की घटनाएँ, आर्थिक सूचक—तो SARIMAX देखें, जो SARIMA फ्रेमवर्क में बहिर्ज (exogenous) वेरिएबल्स जोड़ता है।
अंत में, पैरामीटर चयन वास्तव में कठिन हो सकता है। सात पैरामीटर ट्यून करने के साथ, सर्च स्पेस बड़ा होता है, और लंबी शृंखलाओं पर फिटिंग धीमी हो सकती है। pmdarima का auto_arima() इसे स्वचालित करने में मदद करता है। लेकिन पैरामीटर का वास्तविक अर्थ समझे बिना कोई शॉर्टकट नहीं है—इसीलिए हमने किसी भी कोड को छुए बिना पहले घटकों पर चर्चा की।
निष्कर्ष
मुझे हमेशा लगा है कि प्रारंभिक फोरकास्टिंग पाठ्यक्रमों में SARIMA को कम आँका जाता है। इसे “ARIMA, लेकिन मौसमी चीज़ों के साथ” के रूप में पढ़ाया जाता है, जो इसे एक मामूली विस्तार जैसा बनाता है। ऐसा नहीं है। मौसमी पैरामीटर जोड़-तोड़ नहीं हैं; वे वास्तविक संरचनात्मक काम करते हैं, आपके डेटा के उस व्यवहार की परत को पकड़ते हैं जहाँ तक ARIMA पहुँच ही नहीं सकता।
व्यवहार में SARIMA तब समझ आता है जब आप समझते हैं कि गैर-मौसमी और मौसमी घटक समानांतर में चलने वाले अलग-अलग मॉडल नहीं हैं। वे परस्पर क्रिया करते हैं। AR और MA टर्म्स अपने मौसमी समकक्षों के साथ काम करते हैं, प्रत्येक अलग समय-स्तर के ऑटोकॉरिलेशन को संभालते हुए। एक बार यह बैठ गया, तो ACF और PACF प्लॉट्स पढ़ना पैटर्न मैचिंग जैसा महसूस होना बंद हो जाता है और आपके डेटा को वास्तव में समझने जैसा लगता है।
यदि आप मासिक, त्रैमासिक, या किसी भी नियमित चक्र वाले डेटा के साथ काम कर रहे हैं, तो SARIMA सही शुरुआती बिंदु है—इसलिए नहीं कि यह हमेशा अंतिम उत्तर है, बल्कि इसलिए कि यह आपको अपनी शृंखला की संरचना के बारे में साफ़-साफ़ सोचने को मजबूर करता है। वहाँ से, SARIMAX बाहरी प्रेडिक्टर्स जोड़ता है, और TBATS या Prophet जैसे तरीके अधिक उलझे हुए बहु-मौसमी मामलों को संभालते हैं। हमारा टाइम सीरीज़ फोरकास्टिंग ट्यूटोरियल और ARIMA Models in Python कोर्स—दोनों अच्छे अगले कदम हैं।
विनोद चुगानी ने टोक्यो में जेपीमॉर्गन के सबसे कम उम्र के हेज फंड सेल्स डेस्क हेड के रूप में अपना करियर शुरू किया और बाद में लेहमन ब्रदर्स में व्यक्तिगत बिक्री का रिकॉर्ड बनाया, फिर 30 देशों में फैला एक इलेक्ट्रॉनिक्स डिस्ट्रीब्यूशन व्यवसाय बनाया, जिसकी आय SG$100 मिलियन से आगे बढ़ी, इसके बाद उन्होंने डेटा की ओर रुख किया। ड्यूक में अर्थशास्त्र के स्नातक और NYC डेटा साइंस अकादमी के पूर्व छात्र, वे मेवन पर ह्यूगो बोव्न-एंडरसन के Building AI Applications कोर्स के लिए 100+ आवेदनों में से तीन छात्रवृत्ति प्राप्तकर्ताओं में से एक थे। आज, वे DataCamp, KDnuggets, Machine Learning Mastery, और Statology के लिए सांख्यिकी से लेकर एजेंटिक एआई तक के विषयों पर लिखते हैं, और NYC डेटा साइंस अकादमी में डेटा प्रोफेशनलों को मेंटर करते हैं, उनके नाम पर 1,000 से अधिक एक-से-एक सत्र हैं।
SARIMA FAQs
SARIMA का पूर्ण रूप क्या है?⌄
SARIMA का अर्थ है Seasonal AutoRegressive Integrated Moving Average। यह मानक ARIMA मॉडल का विस्तार है, जिसमें मौसमी पैरामीटर—(P, D, Q) और मौसमी अवधि S—जोड़े जाते हैं, ताकि टाइम सीरीज़ डेटा में मासिक या त्रैमासिक चक्र जैसे दोहराने वाले पैटर्न कैप्चर किए जा सकें।
ARIMA और SARIMA में क्या अंतर है?⌄
ARIMA गैर-मौसमी पैटर्न—ट्रेंड, ऑटोकॉरिलेशन, और मूविंग एवरेज प्रभाव—को मॉडल करता है। SARIMA उन्हीं प्रभावों को मौसमी लैग्स पर मॉडल करने के लिए दूसरे परत के पैरामीटर (P, D, Q, S) जोड़ता है। यदि आपका डेटा तय अंतराल पर दोहराने वाले पैटर्न दिखाता है—जैसे हर दिसंबर में अधिक बिक्री—तो SARIMA उन्हें सीधे कैप्चर करता है, जबकि ARIMA उन्हें अनपेक्षित अवशिष्ट परिवर्तनशीलता के रूप में छोड़ देता है।
सही SARIMA पैरामीटर कैसे चुनें?⌄
सबसे पहले जाँचें कि आपकी शृंखला स्टेशनरी है या नहीं—ऑगमेंटेड डिकी-फुलर टेस्ट का उपयोग करें। फिर ACF और PACF प्लॉट्स देखें: गैर-मौसमी लैग्स पर कटऑफ के पैटर्न से गैर-मौसमी AR (p) और MA (q) ऑर्डर मिलते हैं, जबकि मौसमी लैग्स पर स्पाइक्स से P और Q तय होते हैं। आप pmdarima पैकेज के auto_arima() का उपयोग करके पैरामीटर संयोजनों पर स्वचालित खोज भी कर सकते हैं, और AIC या BIC के आधार पर सर्वश्रेष्ठ मॉडल चुन सकते हैं।
अपने SARIMA मॉडल के लिए मौसमी अवधि S कैसे निर्धारित करें?⌄
मौसमी अवधि S यह दर्शाती है कि पैटर्न कितनी बार दोहराता है। मासिक डेटा में वार्षिक मौसमीपन के लिए S = 12। त्रैमासिक डेटा के लिए S = 4। साप्ताहिक डेटा के लिए S = 52 (या 52.18 का राउंड किया हुआ मान)। यदि अवधि स्पष्ट न हो, तो टाइम सीरीज़ डिकंपोजिशन का उपयोग करें या ACF प्लॉट में नियमित अंतराल पर स्पाइक्स देखें—ये स्पाइक्स प्रमुख मौसमी आवृत्ति प्रकट करते हैं।
क्या SARIMA कई मौसमी अवधियों को संभाल सकता है?⌄
मानक SARIMA एक समय में एक ही मौसमी अवधि संभालता है। यदि आपके डेटा में परतदार बहु-मौसमीपन है—जैसे दैनिक बिजली मांग में साप्ताहिक और वार्षिक दोनों चक्र—तो आपको TBATS, Facebook Prophet, या LSTM नेटवर्क जैसे विकल्पों की आवश्यकता होगी, जो एक साथ कई ओवरलैपिंग मौसमी संरचनाओं को मॉडल करने के लिए बनाए गए हैं।
SARIMA मॉडल फिट करने के लिए कौन सी Python लाइब्रेरी सबसे अच्छी है?⌄
Python की statsmodels लाइब्रेरी मानक विकल्प है, जो SARIMAX() प्रदान करती है (जो बिना बाह्य वेरिएबल्स के भी SARIMA मॉडल फिट करने के लिए पर्याप्त लचीली है)। स्वचालित पैरामीटर चयन के लिए, pmdarima लाइब्रेरी का auto_arima() फ़ंक्शन ग्रिड सर्च करता है और तब उपयोगी है जब आपको पैरामीटर मूल्यों की शुरुआत कहाँ से करें, इसका यक़ीन न हो।
मैं कैसे आँकूँ कि मेरा SARIMA मॉडल अच्छा फिट है?⌄
फिटिंग के बाद, परिणाम ऑब्जेक्ट पर plot_diagnostics() चलाएँ और जाँचें कि अवशेष स्ट्रक्चर-रहित व्हाइट नॉइज़ जैसे दिखें—खासकर ACF में मौसमी लैग्स पर स्पाइक्स न हों। प्रतिस्पर्धी मॉडल विनिर्देशों की तुलना AIC या BIC से करें (कम बेहतर)। होल्ड-आउट डेटा पर फोरकास्टिंग सटीकता के लिए RMSE और MAPE सबसे आम मीट्रिक्स हैं।
SARIMAX क्या है, और मुझे SARIMA के बजाय इसका उपयोग कब करना चाहिए?⌄
SARIMAX, SARIMA फ्रेमवर्क में बाह्य वेरिएबल्स—बाहरी प्रेडिक्टर्स—जोड़ता है। इसका उपयोग तब करें जब आपके पास अपनी शृंखला के इतिहास से परे मापने योग्य कारक हों: रिटेल बिक्री को प्रभावित करने वाला प्रमोशनल खर्च, ऊर्जा मांग को प्रभावित करने वाला तापमान, या त्रैमासिक राजस्व को प्रभावित करने वाले व्यापक आर्थिक सूचक। यदि आपके पास केवल शृंखला का डेटा है, तो SARIMA पर्याप्त है; जैसे ही आपके पास प्रासंगिक बाहरी चालक हों, SARIMAX उन्हें सीधे शामिल करने देता है।
हर दिसंबर, रिटेलर छुट्टियों के लिए अतिरिक्त स्टॉक जमा करते हैं। हर गर्मी में, बिजली ग्रिड एसी की मांग के चरम के लिए तैयार रहते हैं। ये पैटर्न साल दर साल दोहराए जाते हैं, और यदि आप एक ऐसा टाइम सीरीज़ पूर्वानुमान बना रहे हैं जो इन्हें नज़रअंदाज़ करता है, तो आप सटीकता खो रहे हैं।
सीज़नल ऑटोरेग्रेसिव इंटीग्रेटेड मूविंग एवरेज मॉडल्स (संक्षेप में SARIMA) व्यापक रूप से उपयोग किए जाने वाले ARIMA फ्रेमवर्क का विस्तार हैं, जो नियमित ट्रेंड्स के साथ-साथ दोहराने वाले मौसमी पैटर्न को भी कैप्चर करते हैं। इस लेख में, आप जानेंगे कि SARIMA क्या है, इसके घटक कैसे काम करते हैं, कब इसे ARIMA पर प्राथमिकता देनी चाहिए, और Python में इसे चरणबद्ध तरीके से कैसे बनाना है।
SARIMA क्या है?
SARIMA एक टाइम सीरीज़ फोरकास्टिंग मॉडल है जो डेटा में गैर-मौसमी और मौसमी दोनों पैटर्न को संभालता है। यह सीधे ARIMA पर आधारित है, इसलिए यदि आपने पहले ARIMA के साथ काम किया है, तो आप इसके ज़्यादातर मैकेनिज़्म पहचानेंगे। मुख्य अंतर यह है कि SARIMA एक दूसरा पैरामीटर सेट जोड़ता है जो विशेष रूप से तय अंतरालों पर दोहराने वाले व्यवहार—जैसे मासिक, त्रैमासिक, या साप्ताहिक चक्र—को मॉडल करने के लिए डिज़ाइन किया गया है।
औपचारिक रूप से, एक SARIMA मॉडल को SARIMA(p, d, q)(P, D, Q)[S] लिखा जाता है। पहला पैरामीटर सेट (p, d, q) गैर-मौसमी संरचना को संभालता है, जो मानक ARIMA जैसा ही है। दूसरा सेट (P, D, Q)[S] मौसमी पैटर्न का हिसाब रखता है, जहाँ S मौसमी चक्र की लंबाई है। मासिक डेटा में वार्षिक मौसमी पैटर्न के लिए S = 12 होता है। त्रैमासिक डेटा में S = 4।
SARIMA के प्रमुख घटक
SARIMA के सात पैरामीटर शुरुआत में अधिक लग सकते हैं। इन्हें दो समूहों में सोचना सहायक होता है: परिचित ARIMA तिकड़ी (p, d, q) और उनके मौसमी समकक्ष (P, D, Q, S) जो मौसमी स्केल पर इन्हीं का प्रतिबिंब हैं। हर मौसमी पैरामीटर वही करता है जो उसका गैर-मौसमी जुड़वां करता है, बस पास–पास के समय कदमों के बजाय मौसमी गैप्स पर लागू होता है।
ऑटोरेग्रेसिव (AR) भाग
AR घटक शृंखला के पिछले मानों का उपयोग भविष्य के मानों का अनुमान लगाने के लिए करता है। पैरामीटर p यह निर्दिष्ट करता है कि कितने लैग्ड मान शामिल करने हैं। यदि p = 2 है, तो मॉडल वर्तमान मान के लिए पिछले दो समय कदमों को प्रेडिक्टर के रूप में उपयोग करता है।
मौसमी पक्ष में, P यही काम मौसमी लैग्स पर करता है। यदि P = 1 और S = 12 है, तो मॉडल 12 अवधि पहले का मान—एक ही महीना, पिछला वर्ष—को प्रेडिक्टर के रूप में देखता है। यह सीधे वर्ष-दर-वर्ष के पैटर्न को कैप्चर करता है।
इंटीग्रेटेड (I) भाग
पैरामीटर d यह नियंत्रित करता है कि ट्रेंड हटाने और शृंखला को स्टेशनरी बनाने के लिए कितनी बार डिफरेंसिंग की जाए। डिफरेंसिंग का मतलब है हर ऑब्जर्वेशन से पिछला ऑब्जर्वेशन घटाना, जिससे रैखिक ट्रेंड हट जाता है। यदि d = 1 है, तो आप प्रथम डिफरेंस लेते हैं; यदि d = 2 है, तो आप पहले से डिफरेंस की गई शृंखला का फिर डिफरेंस लेते हैं।
मौसमी डिफरेंसिंग भी इसी तरह काम करती है, बस मौसमी लैग्स पर। पैरामीटर D यह बताता है कि कितनी मौसमी डिफरेंसिंग लागू करनी है। D = 1 और S = 12 के साथ, आप हर ऑब्जर्वेशन से 12 अवधि पहले का मान घटाते हैं। जब किसी शृंखला में एक सामान्य ऊपर की ओर ट्रेंड और एक दोहराने वाला मौसमी पैटर्न दोनों हों, तो d = 1 और D = 1 साथ में उपयोग करना सामान्य है।
मूविंग एवरेज (MA) भाग
AR घटक, जो पिछले मानों को देखता है, के विपरीत MA घटक वर्तमान ऑब्जर्वेशन और पिछले पूर्वानुमानों की अवशिष्ट त्रुटियों के बीच संबंध को मॉडल करता है। पैरामीटर q यह निर्धारित करता है कि कितने लैग्ड एरर टर्म शामिल करने हैं। यदि q = 1 है, तो मॉडल अपने वर्तमान फोरकास्ट को समायोजित करने के लिए पिछले कदम की प्रेडिक्शन एरर का उपयोग करता है।
मौसमी समकक्ष Q इसी तर्क को मौसमी लैग्स पर लागू करता है। Q = 1 और S = 12 के साथ, मॉडल 12 अवधि पहले की फोरकास्ट एरर को शामिल करता है। यह तब मायने रखता है जब मौसमी झटके—जैसे असामान्य रूप से गर्मी के कारण ऊर्जा मांग में उछाल—अगले वर्ष के उसी अवधि तक बने रहते हैं।
मौसमी घटक (S)
S पैरामीटर मौसमी चक्र की लंबाई को परिभाषित करता है और तीनों मौसमी पैरामीटर (P, D, Q) को आपस में जोड़ता है। S को सही चुनना अहम है: यदि आपका डेटा मासिक है और वार्षिक पैटर्न है, तो S = 12। साप्ताहिक डेटा में वार्षिक चक्र होने पर S लगभग 52 होगा।
यहाँ मौसमीपन कभी-कभी पेचीदा हो सकता है। एक वर्ष ठीक 52 सप्ताह नहीं होता; यह लगभग 52.18 है। अधिकांश व्यावहारिक उद्देश्यों के लिए S = 52 तक राउंड करना ठीक काम करता है। लेकिन कुछ डेटासेट्स में एक से अधिक मौसमी अवधियाँ होती हैं: दैनिक बिजली मांग अक्सर साप्ताहिक चक्र (S = 7) और वार्षिक चक्र (S = 365) दोनों दिखाती है। मानक SARIMA एक मौसमी अवधि संभालता है, इसलिए बहु-मौसमीपन के लिए TBATS या Facebook Prophet जैसे उन्नत तरीकों की आवश्यकता होती है।
जब S स्पष्ट न हो, तो टाइम सीरीज़ डिकंपोजिशन मदद करता है। शृंखला को उसके ट्रेंड, मौसमी, और अवशिष्ट घटकों में तोड़ने से प्रमुख दोहराने वाली अवधि दृश्य रूप से सामने आती है। आप ऑटोकॉरिलेशन प्लॉट्स में नियमित लैग्स पर स्पाइक्स भी देख सकते हैं।
ARIMA बनाम SARIMA: अंतर क्या है?
आप शायद पहले से यही सोच रहे हैं: वास्तव में SARIMA का उपयोग सरल ARIMA के बजाय कब करना चाहिए?
संक्षिप्त जवाब: जब आपके डेटा में कोई सार्थक मौसमी पैटर्न न हो तो ARIMA का उपयोग करें, और जब हो तो SARIMA का।
ARIMA तीन चीज़ों को मॉडल करता है: शृंखला में स्वयं का ऑटोकॉरिलेशन (AR), स्टेशनैरिटी के लिए आवश्यक डिफरेंस की संख्या (I), और पिछले फोरकास्ट एरर का वर्तमान मान पर बना रहने वाला प्रभाव (MA)। यह ट्रेंड्स, चक्र, और अनियमित शोर को अच्छी तरह संभालता है। जो यह नहीं कर सकता, वह है तय मौसमी आवृत्ति पर दोहराने वाले पैटर्न को मॉडल करना। वे अनपेक्षित परिवर्तनशीलता के रूप में छूट जाते हैं।
SARIMA ठीक उसी क्षमता को जोड़ता है। जब आपके डेटा में स्पष्ट मौसमी चोटियाँ और गर्त दिखाई देते हैं, तो एक साधारण ARIMA मॉडल फिट करने से वे पैटर्न अवशेषों में धकेल दिए जाते हैं, जिसके परिणामस्वरूप बदतर फोरकास्ट और ऐसे अवशेष होते हैं जो व्हाइट नॉइज़ नहीं होते। SARIMA मॉडल उन्हें सीधे कैप्चर करता है।
व्यावहारिक नियम: अपना डेटा प्लॉट करें और तय अंतराल पर दोहराने वाले पैटर्न देखें। यदि वे दिखें—छुट्टियों में बिक्री के उछाल, सर्दियों में ऊर्जा की बढ़त, त्रैमासिक आय के पैटर्न—तो SARIMA अपनाएँ। यदि शृंखला अनियमित है या केवल ट्रेंड-चालित है और कोई नियमित चक्र नहीं है, तो ARIMA सरल और पर्याप्त है।
हमारा ARIMA Models in Python कोर्स दोनों फ्रेमवर्क्स को कवर करता है, व्यावहारिक अभ्यासों के साथ, ताकि आप समझ सकें कि किसका उपयोग कब करना है।
Python में SARIMA मॉडल कैसे बनाएं
SARIMA मॉडल बनाना एक तार्किक क्रम का पालन करता है: डेटा एकत्र करें, स्टेशनैरिटी जाँचें, पैरामीटर पहचानें, मॉडल फिट करें, डायग्नोस्टिक्स चलाएँ, और फोरकास्ट करें। यहाँ Python की
statsmodelsलाइब्रेरी का उपयोग करते हुए हर कदम व्यवहार में कैसे काम करता है।डेटा संग्रह
मौसमीपन कैप्चर करने वाला मॉडल बनाने के लिए, आपके पास इतना इतिहास होना चाहिए कि पैटर्न कम से कम दो बार दिखे, आदर्श रूप से कई चक्र। मासिक रिटेल बिक्री, तापमान रिकॉर्ड, ऊर्जा खपत के आँकड़े, और यात्रियों की संख्या जैसे उदाहरण क्लासिक हैं। सार्वजनिक स्रोत जैसे Federal Reserve Economic Data (FRED), US Census Bureau, या Kaggle अच्छे शुरुआती बिंदु हैं।
इस वर्कफ़्लो के लिए मानक शिक्षण डेटासेट एयरलाइन पैसेंजर काउंट है: 1949 से 1960 तक का मासिक डेटा जिसमें स्पष्ट ऊपर की ओर ट्रेंड और मज़बूत वार्षिक मौसमीपन है। यह
statsmodelsके माध्यम सेget_rdataset()से उपलब्ध है, जो इसे Rdatasets संग्रह से लाता है। इस डेटासेट पर वर्कफ़्लो सीखें, फिर इसे अपने डेटा पर लागू करें।डेटा प्रीप्रोसेसिंग
किसी भी SARIMA मॉडल को फिट करने से पहले, आपको एक स्टेशनरी शृंखला चाहिए, जिसमें औसत और विभेदन समय के साथ न बदलें। ऑगमेंटेड डिकी-फुलर (ADF) टेस्ट इसे औपचारिक रूप से जाँचता है: 0.05 से कम p-वैल्यू शृंखला के स्टेशनरी होने का संकेत देती है।
यदि ऐसा नहीं है, तो डिफरेंसिंग इसे ठीक करती है। ट्रेंड के लिए नियमित डिफरेंसिंग (d = 1) लागू करें, मौसमी गैर-स्टेशनैरिटी के लिए मौसमी डिफरेंसिंग (D = 1, लैग S पर), या आवश्यकता होने पर दोनों। इस कदम से पहले मिसिंग वैल्यूज़ को संभालें। फॉरवर्ड फिल या इंटरपोलेशन टाइम सीरीज़ डेटा के लिए मानक तरीके हैं, क्योंकि पंक्तियाँ हटाने से समय संरचना टूट जाती है।
मॉडल की पहचान
स्टेशनरी शृंखला हाथ में होने पर, आप ACF (Autocorrelation Function) और PACF (Partial Autocorrelation Function) प्लॉट्स का उपयोग करके मॉडल पैरामीटर पहचानते हैं। यह देखें:
व्यवहार में, प्लॉट्स आपको संभावित मान देते हैं, और आप कुछ मॉडलों की तुलना सूचना मापदंडों से करते हैं (डायग्नोस्टिक्स में और विवरण)। यदि आप खोज को स्वचालित करना चाहें, तो pmdarima पैकेज का
auto_arima()पैरामीटर संयोजनों पर ग्रिड सर्च करता है और सबसे उपयुक्त मॉडल चुनता है।पैरामीटर का आकलन
एक बार उम्मीदवार पैरामीटर पहचान लेने पर,
statsmodelsअधिकतम संभाव्यता आकलन (MLE) का उपयोग करके उन्हें अनुमानित करता है, यानी ऐसे कोएफिशिएंट मान ढूँढता है जो मॉडल के तहत देखे गए डेटा को सबसे अधिक संभाव्य बनाते हैं। SARIMA का आकलन साधारण ARIMA से अधिक संगणनात्मक रूप से गहन होता है क्योंकि ऑप्टिमाइज़र को गैर-मौसमी और मौसमी दोनों घटकों को एक साथ फिट करना पड़ता है।फिटिंग प्रक्रिया कभी-कभी ग्लोबल ऑप्टिमम के बजाय लोकल ऑप्टिमम पर अटक सकती है, इसलिए जब परिणाम अटपटे लगें तो कुछ अलग-अलग शुरुआती मान या पैरामीटर संयोजन आज़माना लाभकारी होता है।
मॉडल फिटिंग
एयरलाइन पैसेंजर डेटासेट का उपयोग करते हुए Python में SARIMA मॉडल ऐसे फिट करें:
orderआर्ग्युमेंट गैर-मौसमी भाग के लिए (p, d, q) लेता है;seasonal_order(P, D, Q, S) लेता है।enforce_stationarity=Falseऔरenforce_invertibility=Falseसेट करने से ऑप्टिमाइज़र को अधिक लचीलापन मिलता है, जो वास्तविक दुनिया के डेटा पर अभिसरण में अक्सर मदद करता है।मॉडल आँकड़े और डायग्नोस्टिक्स
फिटिंग के बाद,
sarima_result.plot_diagnostics()से बिल्ट-इन डायग्नोस्टिक प्लॉट्स चलाएँ। आपको चार चीज़ें देखनी हैं:कोरेलग्राम में मौसमी लैग्स पर विशेष ध्यान दें। 12, 24, आदि लैग्स पर स्पाइक्स संकेत देते हैं कि मौसमी घटक पूरी तरह कैप्चर नहीं हुआ है। वैकल्पिक विनिर्देशों की तुलना AIC (Akaike Information Criterion) और BIC (Bayesian Information Criterion) से करें: कम मान बेहतर फिट दर्शाते हैं, जहाँ BIC जटिलता पर अधिक दंड लगाता है।
फोरकास्टिंग
मान्य मॉडल के साथ, फोरकास्ट बनाना सरल है। सटीकता का निष्पक्ष आकलन पाने के लिए अपने डेटा को प्रशिक्षण और परीक्षण सेट में बाँटें:
get_forecast()मेथड पॉइंट प्रेडिक्शंस लौटाती है, साथ ही कॉन्फिडेंस इंटरवल्स भी जो आगे तक फोरकास्ट करने पर चौड़े होते जाते हैं। यह चौड़ाई कोई कमी नहीं; यह मॉडल की अनिश्चितता के बारे में ईमानदारी है। होल्ड-आउट टेस्ट सेट पर RMSE (Root Mean Squared Error) या MAPE (Mean Absolute Percentage Error) का उपयोग करके सटीकता का आकलन करें।SARIMA के व्यावहारिक उपयोग
इतने सारे वास्तविक दुनिया के संकेत मौसमी होते हैं कि SARIMA किसी भी टाइम सीरीज़ टूलकिट में हमेशा के लिए जगह बना लेता है। उद्योगों में कुछ उदाहरण:
हर मामले में, दोहराने वाली संरचना ही सिग्नल है, और SARIMA उसी को पकड़ने के लिए बना है।
SARIMA की सीमाएँ
यह जानना कि कोई टूल कहाँ अच्छा काम करता है, तस्वीर का केवल आधा हिस्सा है। SARIMA मौसमी टाइम सीरीज़ के लिए एक मजबूत बेसलाइन है, लेकिन इसकी सीमाएँ जानना ही अच्छे मॉडल उपयोगकर्ताओं को आँख बंद करके उपयोग करने वालों से अलग करता है।
यह एक समय में ठीक एक मौसमी अवधि संभालता है। यदि आपके डेटा में कई मौसमीपन हैं—दैनिक, साप्ताहिक, और वार्षिक पैटर्न एक-दूसरे पर परतदार—तो SARIMA उन्हें एक साथ मॉडल नहीं करेगा। TBATS, Prophet, या LSTM नेटवर्क जैसे तरीके कई मौसमी आवृत्तियों को अधिक स्वाभाविक रूप से संभालते हैं।
SARIMA रैखिकता मानता है। यह पिछले मानों, पिछली त्रुटियों, और भविष्य के अवलोकनों के बीच रैखिक संबंधों को मॉडल करता है। गैर-रैखिक डाइनैमिक्स, जो वित्तीय टाइम सीरीज़ या अराजक प्रणालियों में आम हैं, के लिए अलग टूल्स की आवश्यकता होती है। और ARIMA की तरह, SARIMA केवल शृंखला के अपने इतिहास पर निर्भर करता है। यदि आपके पूर्वानुमानों को बाहरी चालक प्रभावित करते हैं—प्रमोशन्स, मौसम की घटनाएँ, आर्थिक सूचक—तो SARIMAX देखें, जो SARIMA फ्रेमवर्क में बहिर्ज (exogenous) वेरिएबल्स जोड़ता है।
अंत में, पैरामीटर चयन वास्तव में कठिन हो सकता है। सात पैरामीटर ट्यून करने के साथ, सर्च स्पेस बड़ा होता है, और लंबी शृंखलाओं पर फिटिंग धीमी हो सकती है।
pmdarimaकाauto_arima()इसे स्वचालित करने में मदद करता है। लेकिन पैरामीटर का वास्तविक अर्थ समझे बिना कोई शॉर्टकट नहीं है—इसीलिए हमने किसी भी कोड को छुए बिना पहले घटकों पर चर्चा की।निष्कर्ष
मुझे हमेशा लगा है कि प्रारंभिक फोरकास्टिंग पाठ्यक्रमों में SARIMA को कम आँका जाता है। इसे “ARIMA, लेकिन मौसमी चीज़ों के साथ” के रूप में पढ़ाया जाता है, जो इसे एक मामूली विस्तार जैसा बनाता है। ऐसा नहीं है। मौसमी पैरामीटर जोड़-तोड़ नहीं हैं; वे वास्तविक संरचनात्मक काम करते हैं, आपके डेटा के उस व्यवहार की परत को पकड़ते हैं जहाँ तक ARIMA पहुँच ही नहीं सकता।
व्यवहार में SARIMA तब समझ आता है जब आप समझते हैं कि गैर-मौसमी और मौसमी घटक समानांतर में चलने वाले अलग-अलग मॉडल नहीं हैं। वे परस्पर क्रिया करते हैं। AR और MA टर्म्स अपने मौसमी समकक्षों के साथ काम करते हैं, प्रत्येक अलग समय-स्तर के ऑटोकॉरिलेशन को संभालते हुए। एक बार यह बैठ गया, तो ACF और PACF प्लॉट्स पढ़ना पैटर्न मैचिंग जैसा महसूस होना बंद हो जाता है और आपके डेटा को वास्तव में समझने जैसा लगता है।
यदि आप मासिक, त्रैमासिक, या किसी भी नियमित चक्र वाले डेटा के साथ काम कर रहे हैं, तो SARIMA सही शुरुआती बिंदु है—इसलिए नहीं कि यह हमेशा अंतिम उत्तर है, बल्कि इसलिए कि यह आपको अपनी शृंखला की संरचना के बारे में साफ़-साफ़ सोचने को मजबूर करता है। वहाँ से, SARIMAX बाहरी प्रेडिक्टर्स जोड़ता है, और TBATS या Prophet जैसे तरीके अधिक उलझे हुए बहु-मौसमी मामलों को संभालते हैं। हमारा टाइम सीरीज़ फोरकास्टिंग ट्यूटोरियल और ARIMA Models in Python कोर्स—दोनों अच्छे अगले कदम हैं।