2012-05-15 12 views
7

में पूर्वानुमान के लिए मुझे forecast() में R में बाहरी regressors लागू करता है के सिंटैक्स को समझ में नहीं आता है।ऑटो। सेरिमा से आर

मेरे फिट इस तरह दिखता है:

fit <- auto.arima(Y,xreg=factors)

जहां Y एक timeSeries वस्तु 100 एक्स 1 और कारक एक timeSeries वस्तु 100 x 5.

जब मैं पूर्वानुमान में जाओ, मैं लागू है ...

forecast(fit, h=horizon)

और

Error in forecast.Arima(fit, h = horizon) : No regressors provided

यह मुझे फिट से xregressors वापस जोड़ने के लिए चाहता है: मैं कोई त्रुटि मिलती है? मैंने सोचा कि इन्हें fit ऑब्जेक्ट में fit$xreg के रूप में शामिल किया गया था। क्या इसका मतलब है कि यह xregressors के भविष्य के मूल्यों के लिए पूछ रहा है, या मुझे फिट सेट में उपयोग किए गए वही मान दोहराएंगे? दस्तावेज पूर्वानुमान चरण में xreg के अर्थ को शामिल नहीं करता है।

मेरा मानना ​​है कि यह सब का मतलब है मैं

forecast(fit, h=horizon,xreg=factors)

या

forecast(fit, h=horizon,xreg=fit$xreg)

कौन सा एक ही परिणाम देता है का उपयोग करना चाहिए। लेकिन मुझे यकीन नहीं है कि पूर्वानुमान चरण कारकों को भविष्य के मूल्यों के रूप में व्याख्या कर रहा है या उचित रूप से पिछले के रूप में। तो,

  1. क्या यह उम्मीद है कि यह पूरी तरह से पिछले मूल्यों का पूर्वानुमान कर रहा है, जैसा कि मुझे उम्मीद है?
  2. मैं क्यों xreg मूल्यों दो बार निर्दिष्ट करने के लिए है? अगर मैं उन्हें बहिष्कृत करता हूं तो यह नहीं चलता है, इसलिए यह एक विकल्प की तरह व्यवहार नहीं करता है।
+1

यदि आप कुछ कोड पोस्ट कर सकते हैं जो समस्या को पुन: उत्पन्न कर सकता है तो यह आपकी सहायता करने के लिए हमारे लिए बहुत आसान है। –

+0

मैं देखता हूं कि आपका क्या मतलब है, लेकिन मेरा कोड वास्तव में ऊपर दो पंक्तियों को दोहराया गया है, 'auto.arima() 'और' पूर्वानुमान() '। मेरा सवाल यह है कि पूर्वानुमान फ़ंक्शन कॉल बाहरी regressors की व्याख्या कैसे कर रहा है। – Mittenchops

+0

अभी भी, मेरे पास आपका डेटा नहीं है (या उस मामले के लिए कुछ उदाहरण डेटा) जो आपके द्वारा प्राप्त त्रुटि संदेश को पुन: पेश कर सकता है। –

उत्तर

12

अगर मैं गलत हूं तो मुझे सही करें, लेकिन मुझे लगता है कि आप पूरी तरह से समझ नहीं सकते कि regressors के साथ ARIMA मॉडल कैसे काम करता है।

जब आप एक सरल ARIMA मॉडल (regressors के बिना) के साथ की भविष्यवाणी, यह बस भविष्य मूल्यों की भविष्यवाणी करने के लिए अपना समय श्रृंखला के पिछले मूल्यों का उपयोग करता। ऐसे मॉडल में, आप बस अपने क्षितिज को निर्दिष्ट कर सकते हैं, और यह आपको उस क्षितिज तक पूर्वानुमान देगा।

जब आप एआरआईएमए मॉडल बनाने के लिए regressors का उपयोग करते हैं, तो आपको पूर्वानुमान के लिए के भविष्य के मूल्यों को शामिल करने की आवश्यकता है। उदाहरण के लिए, यदि आपने तापमान को एक रिग्रेशर के रूप में उपयोग किया है, और आप बीमारी की घटनाओं की भविष्यवाणी कर रहे थे, तो आपको बीमारी की घटनाओं की भविष्यवाणी करने के लिए तापमान के भविष्य के मूल्यों की आवश्यकता होगी।

वास्तव में, प्रलेखन विशेष रूप से xreg के बारे में बात करता है। ?forecast.Arima को देखने और दोनों बहस h और xreg को देखो। आप देखेंगे कि xreg का उपयोग किया जाता है, तो h अनदेखा किया जाता है। क्यूं कर?क्योंकि यदि आपका फ़ंक्शन xreg का उपयोग करता है, तो यह को भविष्यवाणी के लिए की आवश्यकता है।

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

+0

आप बिल्कुल सही हैं। मुझे यह आवश्यक भविष्य के मूल्यों को समझ में नहीं आया, क्योंकि ये मेरी सूचना सेट से परे थे। मैं देखता हूं कि ये विकल्प मुझे अलग-अलग धारणाओं के साथ अपने प्रतिद्वंद्वी पथ का बाहरी रूप से पूर्वानुमान करने के लिए लचीलापन देते हैं। मुझे लगता है कि मेरी धारणा यह होनी चाहिए कि पूर्वानुमान() मुझे एक यादृच्छिक चलने का भविष्य मार्ग देगा। VAR() भविष्यवाणी शायद बाहरी जरूरतों से बेहतर मेरी आवश्यकताओं के अनुरूप है। धन्यवाद! – Mittenchops

संबंधित मुद्दे