कोर्स
आइए ARIMA पर नज़र डालते हैं, जो समय श्रृंखला पूर्वानुमान तकनीकों में सबसे लोकप्रिय (यदि सबसे लोकप्रिय नहीं) में से एक है। ARIMA लोकप्रिय है क्योंकि यह ऑटोरिग्रेसिव (AR) और मूविंग एवरेज (MA) दोनों घटकों को पकड़कर समय श्रृंखला डेटा का प्रभावी ढंग से मॉडल करता है, साथ ही डिफरेंसिंग (I) के माध्यम से गैर-स्टेशनैरिटी को भी संबोधित करता है। यह संयोजन ARIMA मॉडलों को विशेष रूप से लचीला बनाता है, इसी कारण वे वित्त और मौसम पूर्वानुमान जैसे बहुत अलग उद्योगों में उपयोग होते हैं।
ARIMA मॉडल अत्यधिक तकनीकी होते हैं, लेकिन मैं इनके हिस्सों को तोड़कर समझाऊंगा ताकि आप ठोस समझ विकसित कर सकें। शुरू करने से पहले, कुछ बुनियादी टूल्स से खुद को परिचित करना अच्छा होता है। DataCamp बहुत से अच्छे संसाधन प्रदान करता है, जैसे हमारे ARIMA Models in Python या ARIMA Models in R कोर्स। आप अपनी पसंद की भाषा के अनुसार किसी एक को चुन सकते हैं।
ARIMA फोरकास्टिंग का उपयोग क्यों करें?
वित्त, अर्थशास्त्र और पर्यावरण विज्ञान आदि में, ARIMA में काफी रुचि है क्योंकि यह हमारी पिछली टिप्पणियों के कई जटिल पैटर्न की पहचान कर सकता है और भविष्य की ज़रूरतों के साथ उन्हें जोड़ सकता है, जिससे यह एक अत्याधुनिक तकनीक बन जाती है। स्टॉक्स की कीमतों का पूर्वानुमान लगाने से लेकर मौसम के पैटर्न का पूर्वानुमान करने और उपभोक्ता मांग का अंदाजा लगाने तक, ARIMA सटीक और क्रियान्वयन योग्य प्रेडिक्टिव विश्लेषण करने का एक बेहतरीन तरीका है।
ARIMA का उपयोग करके, हम पैटर्न, रुझान और मौसमीपन को ध्यान में रखते हुए समय श्रृंखला डेटा का परिष्कृत ढंग से विश्लेषण और पूर्वानुमान कर सकते हैं। यह अंतर्निहित गतिशीलताओं का 360-डिग्री दृश्य प्रदान करता है, जिससे सूचित निर्णय लेना आसान होता है।
ARIMA मॉडलों के प्रमुख घटक
ARIMA को वास्तव में समझने के लिए, हमें इसके निर्माण खंडों को समझना होगा। एक बार जब हम घटकों को समझ लेते हैं, तो यह देखना आसान हो जाएगा कि यह समय श्रृंखला पूर्वानुमान विधि समग्र रूप से कैसे काम करती है। यहां, मैं हर घटक की विस्तृत व्याख्या दूंगा।
ऑटोरिग्रेसिव (AR) भाग
ऑटोरिग्रेसिव (AR) घटक प्रेडिक्टिव मॉडलों के लिए AR फ्रेमवर्क में पिछले मानों से एक रुझान बनाता है। स्पष्ट करने के लिए, 'ऑटोरिग्रेशन फ्रेमवर्क' एक रिग्रेशन मॉडल की तरह काम करता है जहां आप समय श्रृंखला के अपने ही पिछले मानों के लैग्स को रिग्रेसर के रूप में उपयोग करते हैं।
इंटीग्रेटेड (I) भाग
इंटीग्रेटेड (I) भाग में समय श्रृंखला को डिफरेंस करना शामिल होता है, ध्यान रखते हुए कि हमारी समय श्रृंखला स्टेशनरी होनी चाहिए, जिसका अर्थ है कि औसत और वैरिएंस समय के साथ स्थिर रहें। मूल रूप से, हम एक अवलोकन को दूसरे से घटाते हैं ताकि रुझान और मौसमीपन हट जाएं। डिफरेंसिंग करके हमें स्टेशनैरिटी मिलती है। यह कदम आवश्यक है क्योंकि यह मॉडल को डेटा के अनुरूप फिट होने में मदद करता है, शोर के नहीं।
मूविंग एवरेज (MA) भाग
मूविंग एवरेज (MA) घटक एक अवलोकन और अवशिष्ट त्रुटि के बीच संबंध पर केंद्रित होता है। यह देखते हुए कि वर्तमान अवलोकन का संबंध पिछली त्रुटियों से कैसे है, हम अपने डेटा में किसी संभावित रुझान के बारे में कुछ उपयोगी जानकारी निकाल सकते हैं।
हम अवशेषों को इन त्रुटियों में से एक मान सकते हैं, और मूविंग एवरेज मॉडल की अवधारणा उनके प्रभाव का हमारे नवीनतम अवलोकन पर अनुमान लगाती है या उसे ध्यान में रखती है। यह विशेष रूप से डेटा में अल्पकालिक परिवर्तनों या यादृच्छिक झटकों को ट्रैक और पकड़ने के लिए उपयोगी है। समय श्रृंखला के (MA) भाग में, हम इसके व्यवहार के बारे में मूल्यवान जानकारी प्राप्त कर सकते हैं, जो बदले में हमें अधिक सटीकता से पूर्वानुमान लगाने की अनुमति देती है।
Python में ARIMA मॉडल कैसे बनाएं
सोने की कीमतों जैसे फोरकास्टिंग के लिए ARIMA मॉडल बनाने के लिए, आप इन चरणों का पालन कर सकते हैं। आइए इसे साथ में तोड़कर समझते हैं।
डेटा संग्रह
पहला कदम एक उपयुक्त डेटासेट जुटाना और अपना वातावरण तैयार करना है।
डेटासेट खोजें
डेटा स्रोत प्लेटफ़ॉर्म से कोई डेटासेट एकत्र करें या खोजें। आपको ऐसा डेटासेट चाहिए जिसमें समय के साथ ऐतिहासिक डेटा हो। यहां सोने के फ्यूचर प्राइस से संबंधित Kaggle डेटासेट का एक लिंक है।
पैकेज इंस्टॉल करें
हम जिन पैकेजों की ज़रूरत है, उन्हें इंस्टॉल करते हैं, जिनमें statsmodels और sklearn शामिल हैं।
import pandas as pdimport matplotlib.pyplot as pltfrom statsmodels.tsa.stattools import adfullerfrom statsmodels.graphics.tsaplots import plot_acf, plot_pacffrom statsmodels.tsa.arima.model import ARIMAfrom sklearn.metrics import mean_squared_errorडेटा लोड करें
इसके बाद हम डेटा को अपने लोकल वातावरण में पढ़ते हैं। मैं यह अतिरिक्त कदम उठाता हूं ताकि सुनिश्चित कर सकूं कि तारीखें क्रम में पहचानी जा रही हैं।
# Define the path to your CSV file# You may have to make this path more specific to the location of your file.csv_path = "future-gc00-daily-prices.csv"# Read the CSV, parse 'Date' column as datetime, and set it as the indexdata = pd.read_csv( csv_path, parse_dates=["Date"], dayfirst=False, index_col="Date")# Sort the DataFrame by the Date index in ascending orderdata.sort_index(inplace=True)डेटा प्रीप्रोसेसिंग
हमारा डेटासेट काफ़ी साफ़ है, लेकिन अन्य संदर्भों में हमें इंडेक्सिंग से जुड़ी समस्याओं को संभालना पड़ता, जो समय श्रृंखला पूर्वानुमान में महत्वपूर्ण हैं। उदाहरण के लिए, यदि हम किसी विशेष एक्सचेंज पर किसी स्टॉक के क्लोज़िंग मान का पूर्वानुमान लगा रहे हैं, तो हमें यह मानना होगा कि सप्ताहांत पर स्टॉक मार्केट खुला नहीं होता।
आगे बढ़ने से पहले, मैं Close वेरिएबल से कॉमा हटाने का भी त्वरित कदम उठा रहा हूं, जिसका मैं उपयोग करूंगा।
# Clean the "Close" columndata["Close"] = data["Close"].replace(',', '', regex=True)data["Close"] = pd.to_numeric(data["Close"], errors='coerce')data["Close"].replace([np.inf, -np.inf], np.nan, inplace=True)data.dropna(subset=["Close"], inplace=True)मिसिंग वैल्यूज़ संभालें
डेटा प्रीप्रोसेसिंग के हिस्से के रूप में, हमें अक्सर मिसिंग वैल्यूज़ को कैसे हैंडल करें इस पर विचार करना पड़ता है, जैसे फॉरवर्ड फिलिंग या औसत प्रतिस्थापन जैसी इम्प्यूटेशन विधि का उपयोग करके। यह जान लें कि एक भी NA मान, प्रोग्रामिंग भाषा और उपयोग की जा रही लाइब्रेरी पर निर्भर करते हुए, ARIMA को चलने से रोक सकता है।
मैंने उल्लेख किया था कि सप्ताहांत के दिन NA के रूप में पहचाने जा सकते हैं। ऐसा हो सकता है, और तब एक अतिरिक्त कदम की ज़रूरत होगी। सौभाग्य से, statsmodels डेटा को एक श्रेणीबद्ध इंडेक्स के रूप में मानता है और नियमित समय अंतराल को सख्ती से लागू नहीं करता, जिससे हमारा मॉडल सप्ताहांत के गैप्स के बावजूद भी कंपाइल हो जाता है।
टाइम प्लॉट बनाएं
अब टाइम प्लॉट बनाने का अच्छा समय है ताकि हम उस श्रृंखला को देख सकें जिस पर हम काम कर रहे हैं:
# Plotting the original Close priceplt.figure(figsize=(14, 7))plt.plot(data.index, data["Close"], label='Close Price')plt.title('Close Price Over Time')plt.xlabel('Date')plt.ylabel('Close Price')plt.legend()plt.show()
स्टेशनैरिटी जाँचें और आवश्यक हो तो डिफरेंसिंग करें
हालांकि ARIMA मॉडल एक हद तक गैर-स्टेशनैरिटी से निपट सकते हैं, वे समय-परिवर्ती वैरिएंस का प्रभावी रूप से हिसाब नहीं कर सकते। दूसरे शब्दों में, ARIMA मॉडल के वास्तव में काम करने के लिए, डेटा स्टेशनरी होना चाहिए।
ऊपर दिए गए प्लॉट को देखते हुए, हम देख सकते हैं कि डेटा वास्तव में स्टेशनरी नहीं है क्योंकि एक स्पष्ट ट्रेंड है। साथ ही, अलग-अलग समय बिंदुओं पर वैरिएंस भी अस्थिर दिखती है। हम ऑगमेंटेड डिक्की-फुलर टेस्ट का उपयोग करके अपनी सहज समझ की जांच कर सकते हैं और देख सकते हैं कि क्या हमारे डेटा में स्थिर औसत और वैरिएंस है, और इसे संख्याओं में व्यक्त कर सकते हैं।
# Perform the Augmented Dickey-Fuller test on the original seriesresult_original = adfuller(data["Close"])print(f"ADF Statistic (Original): {result_original[0]:.4f}")print(f"p-value (Original): {result_original[1]:.4f}")if result_original[1] < 0.05: print("Interpretation: The original series is Stationary.\n")else: print("Interpretation: The original series is Non-Stationary.\n")# Apply first-order differencingdata['Close_Diff'] = data['Close'].diff()# Perform the Augmented Dickey-Fuller test on the differenced seriesresult_diff = adfuller(data["Close_Diff"].dropna())print(f"ADF Statistic (Differenced): {result_diff[0]:.4f}")print(f"p-value (Differenced): {result_diff[1]:.4f}")if result_diff[1] < 0.05: print("Interpretation: The differenced series is Stationary.")else: print("Interpretation: The differenced series is Non-Stationary.")ADF Statistic (Original): -1.4367p-value (Original): 0.5646Interpretation: The original series is Non-Stationary.ADF Statistic (Differenced): -19.1308p-value (Differenced): 0.0000Interpretation: The differenced series is Stationary.हमारे ऑगमेंटेड डिक्की-फुलर टेस्ट के परिणाम दर्शाते हैं कि हमारी मूल श्रृंखला वास्तव में गैर-स्टेशनरी है, इसलिए मूल डेटा पर सीधे ARIMA लागू करना गलती होगी।
हालांकि, डेटा के डिफरेंस्ड संस्करण पर ADF टेस्ट संकेत करता है कि डिफरेंस्ड संस्करण स्टेशनरी है।
डिफरेंसिंग पर एक त्वरित टिप्पणी। मैं इसे समझाने के लिए समय लेना चाहता हूं, क्योंकि परदे के पीछे बहुत कुछ हो रहा होता है। डिफरेंसिंग करने के लिए, हम हर अवलोकन को पिछले वाले से घटाते हैं ताकि हमें फर्स्ट डिफरेंसेज़ की एक नई समय श्रृंखला मिले। (नई समय श्रृंखला अब मूल से एक तत्व छोटी हो जाती है।) यदि डिफरेंस्ड श्रृंखला अभी भी स्टेशनरी नहीं है, तो हम मूल श्रृंखला को दोबारा डिफरेंस करके सेकंड डिफरेंस ले सकते हैं, और हम इस प्रक्रिया को तब तक जारी रख सकते हैं जब तक कि श्रृंखला स्टेशनरी न हो जाए। आवश्यक डिफरेंसिंग का क्रम वह न्यूनतम संख्या है जो किसी श्रृंखला में आत्म सहसंबंध न रहे।
अंत में मैं यह कहना चाहता हूं—ज़रूरत से ज़्यादा डिफरेंसिंग न करें, अन्यथा आप अपने डेटा में झूठी गतिशीलताएं पैदा कर सकते हैं। साथ ही, यदि आप मौसमी ARIMA मॉडल करने जा रहे होते, जो हम इस ट्यूटोरियल में नहीं कर रहे, तो आप हमेशा फर्स्ट डिफरेंस से पहले सीज़नल डिफरेंस पर विचार करते।
# Plotting the differenced Close priceplt.figure(figsize=(14, 7))plt.plot(data.index, data['Close_Diff'], label='Differenced Close Price', color='orange')plt.title('Differenced Close Price Over Time')plt.xlabel('Date')plt.ylabel('Differenced Close Price')plt.legend()plt.show()
मॉडल की पहचान
जब हम ARIMA मॉडल बनाते हैं, तो हमें अपने ARIMA मॉडल में जाने वाले p, d, और q पदों पर विचार करना पड़ता है।
- पहला पैरामीटर, p, लैग्ड अवलोकनों की संख्या है। p पर विचार करके, हम प्रभावी रूप से तय करते हैं कि वर्तमान अवलोकन की भविष्यवाणी करते समय हम समय में कितनी दूर पीछे जाते हैं। हम यह अपने समय श्रृंखला की ऑटोकॉरिलेशन को देखकर करते हैं, जो पिछले समय लैग्स पर श्रृंखला के सहसंबंध होते हैं।
- दूसरा पैरामीटर, d, डिफरेंसिंग के क्रम को संदर्भित करता है, जिसके बारे में हमने बात की थी। फिर से, डिफरेंसिंग का अर्थ लगातार टाइमस्टेप्स के बीच अंतर निकालना है। यह हमारे डेटा को स्टेशनरी बनाने का एक तरीका है, यानी समय के साथ रुझान और वैरिएंस में बदलाव को हटाना। d यह दर्शाता है कि किस क्रम की डिफरेंसिंग पर आपको स्टेशनरी प्रक्रिया मिलती है।
- तीसरा पैरामीटर q मॉडल के मूविंग एवरेज (MA) भाग के क्रम को संदर्भित करता है। यह मॉडल में शामिल लैग्ड फोरकास्ट त्रुटियों की संख्या का प्रतिनिधित्व करता है। साधारण मूविंग एवरेज, जो डेटा को स्मूद करता है, के विपरीत, ARIMA में मूविंग एवरेज किसी अवलोकन और लैग्ड अवलोकनों पर लागू मूविंग एवरेज मॉडल से प्राप्त अवशिष्ट त्रुटियों के बीच संबंध को पकड़ता है।
ARIMA पद ढूंढना
हम p, d, और q के मान निर्धारित करने के लिए ACF (Autocorrelation Function) और PACF (Partial Autocorrelation Function) जैसे टूल का उपयोग करते हैं। जहां ACF कट ऑफ होता है वहां लैग्स की संख्या q होती है, और जहां PACF कट ऑफ होता है वहां p होता है। हमें d का उपयुक्त मान भी चुनना होता है, ताकि डिफरेंसिंग के बाद डेटा व्हाइट नॉइज़ जैसा दिखे। हमारे डेटा के लिए, हम p और q दोनों के लिए 1 चुनते हैं क्योंकि प्रत्येक के पहले लैग पर एक महत्वपूर्ण स्पाइक दिखाई देता है।
from statsmodels.graphics.tsaplots import plot_acf, plot_pacfimport matplotlib.pyplot as plt# Plot ACF and PACF for the differenced seriesfig, axes = plt.subplots(1, 2, figsize=(16, 4))# ACF plotplot_acf(data['Close_Diff'].dropna(), lags=40, ax=axes[0])axes[0].set_title('Autocorrelation Function (ACF)')# PACF plotplot_pacf(data['Close_Diff'].dropna(), lags=40, ax=axes[1])axes[1].set_title('Partial Autocorrelation Function (PACF)')plt.tight_layout()plt.show()
पैरामीटर का आकलन
स्पष्ट करने के लिए, ARIMA में p, d, और q मान मॉडल के ऑर्डर का प्रतिनिधित्व करते हैं (ऑटोरिग्रेशन के लिए लैग्स, डिफरेंसिंग, और मूविंग एवरेज टर्म), लेकिन ये वास्तविक अनुमानित पैरामीटर नहीं होते। एक बार p, d, और q के मान चुन लिए जाने पर, मॉडल मैक्सिमम लाइकलिहुड एस्टीमेशन (MLE) के माध्यम से ऑटोरिग्रेसिव और मूविंग एवरेज टर्म्स के गुणांक जैसे अतिरिक्त पैरामीटरों का अनुमान लगाता है।
फोरकास्टिंग
ARIMA मॉडल का उपयोग करके फोरकास्ट करने के लिए, फिट किए गए मॉडल से डेटा के आधार पर भविष्य के मानों की भविष्यवाणी करना शुरू करें। एक बार भविष्यवाणियां कर लेने के बाद, वास्तविक मानों के साथ पूर्वानुमानित मानों को प्लॉट करके उन्हें विज़ुअलाइज़ करना सहायक होता है। यह इसलिए संभव है क्योंकि हम ट्रेन/टेस्ट वर्कफ़्लो का उपयोग करते हैं, जहां डेटा को प्रशिक्षण और परीक्षण सेट में विभाजित किया जाता है। ऐसा करने से हमें यह देखने में मदद मिलती है कि मॉडल अनदेखे डेटा पर कितना अच्छा प्रदर्शन करता है। यदि यह स्पष्ट नहीं है, तो हमारा Model Validation in Python कोर्स लें, जो प्रशिक्षण और परीक्षण की बारीकियों को सीखने का बढ़िया साधन है।
1. ट्रेन/टेस्ट वर्कफ़्लो का उपयोग करें
पहला कदम डेटा को प्रशिक्षण और परीक्षण संस्करणों में विभाजित करना है।
# Split data into train and testtrain_size = int(len(data) * 0.8)train, test = data.iloc[:train_size], data.iloc[train_size:]# Fit ARIMA modelmodel = ARIMA(train["Close"], order=(1,1,1))model_fit = model.fit()2. हमारी समय श्रृंखला का विज़ुअलीकरण
अगला कदम हमारा पूर्वानुमान बनाना और उसका दृश्य निरीक्षण करना है। हम देख सकते हैं कि हमारा पूर्वानुमान हमारे डेटा के परीक्षण संस्करण के मुकाबले कैसा प्रदर्शन करता है।
# Forecastforecast = model_fit.forecast(steps=len(test))# Plot the results with specified colorsplt.figure(figsize=(14,7))plt.plot(train.index, train["Close"], label='Train', color='#203147')plt.plot(test.index, test["Close"], label='Test', color='#01ef63')plt.plot(test.index, forecast, label='Forecast', color='orange')plt.title('Close Price Forecast')plt.xlabel('Date')plt.ylabel('Close Price')plt.legend()plt.show()
ARIMA पूर्वानुमान: वास्तविक बनाम अनुमानित मान। इमेज लेखक द्वारा
3. मॉडल सांख्यिकी का मूल्यांकन करें
हम AIC और BIC मॉडल सांख्यिकी देखते हैं। कम मान बेहतर फिट का संकेत देते हैं, लेकिन ओवरफिटिंग से बचने के लिए हम परिणामों की तुलना सरल मॉडलों से भी कर सकते हैं। मैं यहां संख्याएं प्रिंट कर रहा हूं, लेकिन वे सबसे अधिक समझ तब आती हैं जब हम उसी डेटा पर अन्य ARIMA मॉडलों से तुलना करते हैं, ताकि सबसे अच्छा काम करने वाला ARIMA मॉडल खोजा जा सके।
print(f"AIC: {model_fit.aic}")print(f"BIC: {model_fit.bic}")AIC: 24602.97426066606BIC: 24620.97128230579हम मीन स्क्वेयर्ड एरर का भी मूल्यांकन कर सकते हैं, ताकि अपने मॉडल के फिट का आकलन कर सकें। यह एक प्रैक्टिकल मीट्रिक है। कम RMSE एक बेहतर ARIMA मॉडल को दर्शाता है, जो वास्तविक और पूर्वानुमानित मानों के बीच छोटे अंतर को परिलक्षित करता है, और यह डेटा के स्केल पर होता है। यानी, 118.5339 का RMSE दर्शाता है कि औसतन, हमारे मॉडल की भविष्यवाणियां वास्तविक Close कीमतों से लगभग $118.53 तक भिन्न होती हैं।
forecast = forecast[:len(test)]test_close = test["Close"][:len(forecast)]# Calculate RMSErmse = np.sqrt(mean_squared_error(test_close, forecast))print(f"RMSE: {rmse:.4f}")RMSE: 118.5339ARIMA फोरकास्टिंग के सामान्य उपयोग
अब, आइए विभिन्न उद्योगों में ARIMA के अनुप्रयोगों पर चर्चा करें। अर्थशास्त्र और वित्त से लेकर मौसम पूर्वानुमान और स्वास्थ्य तक—कई क्षेत्रों में डेटा से अंतर्दृष्टि प्राप्त करने और भविष्यवाणी की सटीकता की खोज में ARIMA मॉडलों का उपयोग किया जाता है। कुछ प्रमुख उपयोग इस प्रकार हैं:
अर्थशास्त्र और वित्त
ARIMA की ताकत वित्तीय समय श्रृंखला को संभालने की क्षमता में निहित है, जिसमें अक्सर जटिल ऑटोकॉरिलेशन और कई आर्थिक संकेतकों के बीच अंतःक्रियाएं होती हैं। लैग प्रभावों को मॉडल करने और डिफरेंसिंग को शामिल करने की इसकी क्षमता इसे स्टॉक कीमतों या विनिमय दरों जैसी अस्थिर मीट्रिक्स के पूर्वानुमान के लिए आदर्श बनाती है।
- वित्तीय पूर्वानुमान: स्टॉक कीमतों, विनिमय दरों और अन्य वित्तीय साधनों की भविष्यवाणी करके, ARIMA निवेश रणनीतियों का समर्थन कर सकता है।
- आर्थिक मॉडलिंग: ARIMA मॉडल किसी देश या वैश्विक अर्थव्यवस्था के भविष्य का पूर्वानुमान लगाने में मदद करते हैं, जिससे नीतिगत निर्णयों को सूचित किया जा सके।
- डिमांड प्लानिंग: ARIMA उपभोक्ता वस्तुओं और सेवाओं की मांग का पूर्वानुमान लगाता है, जिससे उत्पादन योजना का अनुकूलन और इन्वेंट्री नियंत्रण में मदद मिलती है।
मौसम पूर्वानुमान
ARIMA मॉडल ऐतिहासिक मौसम पैटर्न का लाभ उठाकर अल्पकालिक और दीर्घकालिक पूर्वानुमान प्रदान करते हैं, इसलिए वे सामान्य और चरम दोनों मौसम स्थितियों की भविष्यवाणी के लिए पर्याप्त लचीले हैं।
- तापमान और वर्षा की भविष्यवाणी: ARIMA मॉडल अल्पकालिक और दीर्घकालिक मौसम पूर्वानुमानों में उपयोग होते हैं, जिसमें वायुमंडल-समुद्र अंतःक्रिया और अन्य कई कारकों को शामिल किया जाता है।
- जलवायु परिवर्तन मॉडलिंग: ARIMA मॉडल ऐतिहासिक मौसम डेटा का उपयोग करके जलवायु में रुझानों को बेहतर ढंग से समझते हैं और भविष्य की जलवायु कैसी दिखेगी इसका अनुमान लगाते हैं।
सप्लाई चेन मैनेजमेंट
लैग प्रभावों को मॉडल करने की ARIMA की क्षमता सप्लाई चेन मैनेजरों को ऐतिहासिक पैटर्न और लीड टाइम के आधार पर इन्वेंट्री प्रबंधन या व्यवधानों का पूर्वानुमान लगाने में मदद करती है।
- डिमांड फोरकास्टिंग: ARIMA उत्पादों की भविष्य की मांग का पूर्वानुमान लगाने और उत्पादन शेड्यूल या स्टॉक स्तरों की योजना बनाने में सक्षम है।
- इन्वेंट्री प्रबंधन: ARIMA यह सुनिश्चित करता है कि वस्तुओं पर सही स्तर का स्टॉक बनाए रखा जाए ताकि बहुत अधिक पूंजी इन्वेंट्री में न फंसे और ओवर- या अंडरस्टॉकिंग से जुड़ी लागतें कम हों।
- सप्लाई चेन ऑप्टिमाइज़ेशन: ARIMA कई चर के बीच अंतःक्रियाओं का विश्लेषण करके—जैसे परिवहन में देरी या मांग में उतार-चढ़ाव—सप्लाई चेन व्यवधानों का पूर्वानुमान लगा सकता है।
हेल्थकेयर
हेल्थकेयर में, ARIMA मॉडल विशेष रूप से मूल्यवान हैं क्योंकि वे रोगी प्रवेश और अन्य महत्वपूर्ण रुझानों की भविष्यवाणी कर सकते हैं।
- रोग प्रकोप की भविष्यवाणी: ARIMA मॉडल संक्रामक रोगों के प्रसार की भविष्यवाणी करके उपयोगिता साबित करते हैं, जो अग्रिम सार्वजनिक स्वास्थ्य हस्तक्षेपों का मार्ग प्रशस्त करता है।
- अस्पताल में भर्ती का पूर्वानुमान: ARIMA अस्पताल में भर्ती दरों का पूर्वानुमान लगाता है और संसाधन व स्टाफ शेड्यूल को अनुकूलित करने में मदद करता है।
- रोगी मॉनिटरिंग: ARIMA उन पेशेवरों के लिए उपयोगी टूल है जो स्वास्थ्य समस्याओं के शुरुआती संकेतों की चेतावनी देने और अनुकूलित उपचार रणनीतियों के लिए मेडिकल डेटा की जांच करना चाहते हैं।
बेहतर ARIMA फोरकास्टिंग के लिए ध्यान देने योग्य बातें
ARIMA मॉडल बनाते समय बचने योग्य कुछ आम गलतियां यहां दी गई हैं:
ओवरफिटिंग और अंडरफिटिंग
यदि हम गलत p, d, और q मान चुनते हैं, तो यह ओवरफिटिंग या अंडरफिटिंग की ओर ले जा सकता है। जब हमारा मॉडल बहुत जटिल हो जाता है और हमारे डेटा के शोर से चिपक जाता है, तो वह नए अवलोकनों पर अच्छी तरह सामान्यीकृत नहीं होता—इसे ओवरफिटिंग कहते हैं। दूसरी चरम स्थिति में, अंडरफिटिंग का अर्थ है कि हमारा मॉडल कम जटिल है और सभी अंतर्निहित पैटर्नों को पकड़ नहीं पाता।
ओवरफिटिंग को रोकने के लिए, कम लैग टर्म और संभवतः कम डिफरेंसिंग टर्म का उपयोग करना एक तरीका हो सकता है। अंडरफिटिंग को, उपयुक्त होने पर, ऑटोरिग्रेसिव टर्म की संख्या बढ़ाकर ठीक किया जा सकता है। जटिलता और सादगी के बीच संतुलन बनाना आवश्यक है। वैलिडेशन/क्रॉस-वैलिडेशन जैसी तकनीकें मदद कर सकती हैं।
स्टेशनैरिटी
स्टेशनैरिटी एक सांख्यिकीय धारणा है जो डेटा की समय-निर्भरता से जुड़ी है। गैर-स्टेशनरी डेटा अविश्वसनीय पूर्वानुमान और भ्रामक संबंधों का कारण बन सकता है। गैर-स्टेशनरी डेटा को स्टेशनरी बनाने के लिए डिफरेंसिंग या लॉग ट्रांसफॉर्मेशन या मौसमी समायोजन जैसी रूपांतरणों का उपयोग किया जा सकता है।
मौसमीपन
मौसमीपन की उपस्थिति समय-श्रृंखला विश्लेषण से निपटते समय विचार करने के लिए एक और महत्वपूर्ण घटक है। कई वास्तविक दुनिया के डेटासेट निश्चित अंतराल—दैनिक, साप्ताहिक और वार्षिक—पर दोहराए जाने वाले पैटर्न प्रदर्शित करते हैं। इन मौसमी पैटर्नों की अनदेखी करने से गलत पूर्वानुमान हो सकते हैं। मौसमीपन के संदर्भ में, हमें p और q मानों के अलावा मौसमी डिफरेंस और मौसमी AR और MA टर्म की आवश्यकता होती है। ध्यान रखें कि किसी श्रृंखला में एक से अधिक प्रकार का मौसमीपन हो सकता है।
अवशेष विश्लेषण
ARIMA मॉडलिंग के सबसे महत्वपूर्ण चरणों में से एक यह जांचना है कि उत्पन्न अवशेष श्रृंखला स्टेशनरी है या नहीं। अवशेष देखे गए मानों और मॉडल द्वारा उत्पन्न मानों के बीच का अंतर होते हैं। अवशेषों को देखकर, हम जांच सकते हैं कि हमारा मॉडल डेटा में गतिशीलताओं को खोजने और उन पर काम करने में सक्षम है या नहीं। अवशेषों को किसी भी रुझान या सहसंबंध का संकेत दिए बिना एक यादृच्छिक बिखराव दिखाना चाहिए।
जब अवशेष पैटर्न या सहसंबंध दिखाते हैं, तो इसका मतलब है कि कहीं न कहीं ऐसी जानकारी है जिसे मॉडल ने पूरी तरह से कैप्चर नहीं किया है। सांख्यिकीय परीक्षण और दृश्य डायग्नोस्टिक्स—जिनमें Ljung-Box टेस्ट, हिस्टोग्राम और अन्य डायग्नोस्टिक प्लॉट शामिल हैं—का उपयोग करके मॉडल की उपयुक्तता की पुष्टि की जा सकती है।
ARIMA और संबंधित मॉडलों के साथ आगे के कदम
कई मामलों में, ARIMA अंतिम कदम नहीं होता। जैसे ARIMA ऑटोरिग्रेसिव या मूविंग एवरेज मॉडलों का विकास है, वैसे ही नए विचार भी विकसित हुए हैं। एक बात यह है कि ARIMA मॉडल स्वयं समय श्रृंखला में रैखिक और गैर-रैखिक दोनों पैटर्न को संभाल सकते हैं। यदि आप मौसमी पूर्वानुमान चाहते हैं, तो SARIMA मॉडलों पर विचार करें, जो हमारी समय श्रृंखला में बहु-अवधि/आवधिक पैटर्न को संभाल सकते हैं। SARIMA मॉडल विशेष रूप से उन क्षेत्रों में उपयोगी हैं जहां डेटा में आवर्ती पैटर्न या चक्रीय व्यवहार होता है, जैसे बिक्री पूर्वानुमान और मौसम पूर्वानुमान। ARIMAX मॉडल एक और लोकप्रिय विकल्प हैं। ARIMAX मॉडल वे ARIMA मॉडल हैं जो किसी बाहरी चर या एक्सोजेनस रिग्रेसर को लेते हैं। वे हमारे पूर्वानुमानों के प्रदर्शन और सटीकता में काफी मदद कर सकते हैं।
इसके अलावा, मशीन लर्निंग के क्षेत्र में आगे बढ़ते हुए, हम समय श्रृंखला विश्लेषण में और गहराई से जाने के बारे में सोच सकते हैं, जैसे उपकरणों का उपयोग करके recurrent neural networks (RNN) और LSTM ताकि जटिल कालिक निर्भरताओं की भविष्यवाणी की जा सके। एक अंतिम विचार के रूप में, बेयज़ियन समय श्रृंखला विश्लेषण का क्षेत्र और यह समझना कि ऐसी विधि पूर्वानुमान और निर्णय-निर्माण में कैसे लाभ प्रदान कर सकती है।
निष्कर्ष / अंतिम विचार
जैसा कि हमने देखा, ARIMA एक सामान्य सांख्यिकीय मॉडल है जो समय श्रृंखला का आकलन करता है और ऑटोरिग्रेसिव और मूविंग एवरेज दोनों तत्वों को ध्यान में रखते हुए भविष्य के मानों का पूर्वानुमान लगाता है। यह हमें ऐतिहासिक डेटा का पूर्वानुमान बनाने की अनुमति देता है, भले ही किसी विशेष डेटासेट की विशेषताएं किसी अन्य डेटासेट की विशेषताओं से बहुत अलग हों। इसकी अनुकूलन क्षमता ही इसे एक सामान्य और व्यापक रूप से उपयोग की जाने वाली पूर्वानुमान विधि बनाती है।
ARIMA की बुनियाद में महारत हासिल करने के लिए हाथों-हाथ अनुभव महत्वपूर्ण है। DataCamp आपके सीखने की ज़रूरतों के आधार पर ARIMA मॉडलिंग के विषय में सुधार और महारत हासिल करने के लिए संपूर्ण कोर्स प्रदान करता है। इन शीर्ष ऑनलाइन ट्यूटोरियल्स में, ARIMA मॉडलिंग की मूल बातें और विश्लेषणात्मक समाधान लागू करने के लिए सबसे व्यावहारिक टूल और तकनीकें सीखें, जो वास्तविक दुनिया की कठिन समस्याओं को बहुत कम मेहनत (और कम समय) में हल करती हैं जितना आपने संभव सोचा था। अंत तक, आपको अपने भविष्य के डेटा साइंस कार्य में ARIMA मॉडलिंग लागू करने में सहज महसूस होना चाहिए। DataCamp पर उपलब्ध ARIMA मॉडलिंग कोर्स देखें और समय श्रृंखला विश्लेषण में अपनी अधिकतम क्षमता प्राप्त करें: Forecasting in R, Time Series with R, ARIMA Models in Python, ARIMA Models in R.
मैं अन-नजह नेशनल यूनिवर्सिटी के कंप्यूटर साइंस अप्रेंटिसशिप कार्यक्रम में अंशकालिक व्याख्याता हूँ, सॉफ्टवेयर इंजीनियरिंग में 5 वर्षों और डेटा साइंस के क्षेत्रों में 5+ वर्षों का अनुभव रखता/रखती हूँ। मेरा वर्तमान शोध शिक्षा, एडटेक, और एआई में (FATE) • सामाजिक भलाई/प्रभाव के लिए डेटा साइंस पर केंद्रित है। व्याख्यता की भूमिका के अतिरिक्त, मैं स्कूल के बाद का कोडिंग शिक्षाक/शिक्षक हूँ, जहाँ मैं Python प्रोग्रामिंग पढ़ाता/पढ़ाती हूँ, और एक तकनीकी मेंटर के रूप में अन्य लोगों के साथ ज्ञान साझा करता/करती हूँ तथा नवीनतम रुझानों और तकनीकों पर अंतर्दृष्टि प्रदान करता/करती हूँ। मैं विश्वविद्यालय के छात्रों के लिए टेक जगत में नौकरी खोज कौशल (इंटरव्यू, सीवी निर्माण, नौकरी चयन, पोर्टफोलियो, करियर कोचिंग) पर एक पेशेवर प्रशिक्षक भी हूँ।
Frequently Asked Time Series Forecasting Questions
ARIMA मॉडल क्या है?
ARIMA (Autoregressive Integrated Moving Average) मॉडल समय श्रृंखला पूर्वानुमान के लिए एक लोकप्रिय सांख्यिकीय विधि है, जो अतीत के अवलोकनों (AR), स्टेशनैरिटी प्राप्त करने के लिए डिफरेंसिंग (I), और भविष्यवाणी को परिष्कृत करने के लिए पिछले एरर्स (MA) को मिलाकर भविष्य के मानों का अनुमान लगाती है।
ARIMA बनाम एक्सपोनेंशियल स्मूदिंग में क्या अंतर है?
हम कह सकते हैं कि ARIMA मॉडल किसी श्रृंखला को उसके ऑटोकॉरिलेशंस द्वारा वर्णित करते हैं। यह एक अधिक शक्तिशाली और लचीली तकनीक है, जिसका उपयोग आमतौर पर स्थिर, दीर्घकालिक पूर्वानुमान प्रदान करने के लिए किया जाता है। एक्सपोनेंशियल स्मूदिंग अधिकतर ट्रेंड और मौसमीपन पर ध्यान देती है और सामान्यतः छोटी, अस्थिर श्रृंखलाओं के लिए बेहतर मानी जाती है।
ARIMA फोरकास्टिंग रिग्रेशन मॉडलिंग से कैसे संबंधित है?
ARIMA फोरकास्टिंग रिग्रेशन मॉडलिंग से संबंधित है क्योंकि यह भविष्य के डेटा बिंदुओं की भविष्यवाणी करने के लिए पिछले मानों और त्रुटियों का उपयोग करती है, ठीक वैसे ही जैसे रिग्रेशन मॉडल स्वतंत्र चर का उपयोग करके आश्रित चर की भविष्यवाणी करते हैं। ARIMA गैर-स्टेशनरी समय श्रृंखला को डिफरेंसिंग के माध्यम से संभालती है, जो इसे स्टेशनरी डेटा पर उपयोग होने वाली रिग्रेशन तकनीकों के अनुरूप बनाता है। पारंपरिक रिग्रेशन मॉडलों के विपरीत, ARIMA स्पष्ट रूप से समय-निर्भर प्रभावों का हिसाब रखती है, जिससे यह समय श्रृंखला पूर्वानुमान के लिए अधिक उपयुक्त होती है।
