Tsoutliers पैकेज और auto.arima का उपयोग करके पूर्वानुमान और व्याख्या कैसे करें


9

मुझे 1993 से 2015 तक मासिक डेटा मिला है और मैं इन आंकड़ों पर पूर्वानुमान लगाना चाहूंगा। मैंने आउटलेर्स का पता लगाने के लिए tsoutliers पैकेज का उपयोग किया, लेकिन मुझे नहीं पता कि मैं अपने डेटा के सेट के साथ पूर्वानुमान कैसे जारी रखूं।

यह मेरा कोड है:

product.outlier<-tso(product,types=c("AO","LS","TC"))
plot(product.outlier)

यह tsoutliers पैकेज से मेरा आउटपुट है

ARIMA(0,1,0)(0,0,1)[12]                    

Coefficients:
        sma1    LS46    LS51    LS61    TC133   LS181   AO183   AO184   LS185   TC186    TC193    TC200
      0.1700  0.4316  0.6166  0.5793  -0.5127  0.5422  0.5138  0.9264  3.0762  0.5688  -0.4775  -0.4386
s.e.  0.0768  0.1109  0.1105  0.1106   0.1021  0.1120  0.1119  0.1567  0.1918  0.1037   0.1033   0.1040
       LS207    AO237    TC248    AO260    AO266
      0.4228  -0.3815  -0.4082  -0.4830  -0.5183
s.e.  0.1129   0.0782   0.1030   0.0801   0.0805

sigma^2 estimated as 0.01258:  log likelihood=205.91
AIC=-375.83   AICc=-373.08   BIC=-311.19

 Outliers:
    type ind    time coefhat  tstat
1    LS  46 1996:10  0.4316  3.891
2    LS  51 1997:03  0.6166  5.579
3    LS  61 1998:01  0.5793  5.236
4    TC 133 2004:01 -0.5127 -5.019
5    LS 181 2008:01  0.5422  4.841 
6    AO 183 2008:03  0.5138  4.592
7    AO 184 2008:04  0.9264  5.911
8    LS 185 2008:05  3.0762 16.038
9    TC 186 2008:06  0.5688  5.483
10   TC 193 2009:01 -0.4775 -4.624
11   TC 200 2009:08 -0.4386 -4.217
12   LS 207 2010:03  0.4228  3.746
13   AO 237 2012:09 -0.3815 -4.877
14   TC 248 2013:08 -0.4082 -3.965
15   AO 260 2014:08 -0.4830 -6.027
16   AO 266 2015:02 -0.5183 -6.442

यह मेरा प्लॉट है

मेरे पास ये चेतावनी संदेश भी हैं।

Warning messages:
1: In locate.outliers.iloop(resid = resid, pars = pars, cval = cval,  :
  stopped when maxit was reached
2: In locate.outliers.iloop(resid = resid, pars = pars, cval = cval,  :
  stopped when maxit was reached
3: In locate.outliers.oloop(y = y, fit = fit, types = types, cval = cval,  :
  stopped when maxit was reached
4: In arima(x, order = c(1, d, 0), xreg = xreg) :
  possible convergence problem: optim gave code = 1
5: In auto.arima(x = c(5.77, 5.79, 5.79, 5.79, 5.79, 5.79, 5.78, 5.78,  :
  Unable to fit final model using maximum likelihood. AIC value approximated

संदेह:

  1. अगर मैं गलत नहीं हूं, तो tsoutliers पैकेज आउटलेर्स को हटा देगा और यह पता लगाए गए डेटासेट के साथ डेटासेट के उपयोग के माध्यम से निकाल देगा, यह हमें डेटा सेट के लिए सबसे अच्छा arima मॉडल देगा, क्या यह सही है?
  2. स्तर परिवर्तन, आदि को हटाने के कारण समायोजन श्रृंखला डेटा सेट को बहुत नीचे स्थानांतरित किया जा रहा है। क्या इसका मतलब यह नहीं है कि अगर समायोजित श्रृंखला पर पूर्वानुमान लगाया जाता है, तो पूर्वानुमान का आउटपुट बहुत ही गलत होगा, क्योंकि हाल ही के डेटा 12 से अधिक हैं, जबकि समायोजित डेटा इसे 7-8 के आसपास स्थानांतरित कर देता है।
  3. चेतावनी संदेश 4 और 5 का क्या अर्थ है? इसका मतलब यह है कि यह समायोजित श्रृंखला का उपयोग करके auto.arima नहीं कर सकता है?
  4. ARIMA में [12] (0,1,0) (0,0,1) [12] का क्या अर्थ है? क्या यह मेरे डेटासेट की मेरी आवृत्ति / आवधिकता है, जिसे मैंने इसे मासिक पर सेट किया है? और क्या इसका मतलब यह भी है कि मेरी डेटा सीरीज़ मौसमी भी है?
  5. मैं अपने डेटा सेट में मौसम का पता कैसे लगाऊं? जैसा कि टाइम सीरीज़ प्लॉट के विज़ुअलाइज़ेशन से, मुझे कोई स्पष्ट रुझान नहीं दिख रहा है, और अगर मैं विघटित फ़ंक्शन का उपयोग करता हूं, तो यह माना जाएगा कि एक मौसमी प्रवृत्ति है? तो क्या मुझे विश्वास है कि tsoutliers ने मुझे बताया, जहां मौसमी प्रवृत्ति है, क्योंकि ऑर्डर 1 का एमए है?
  6. इन आउटलेर्स की पहचान करने के बाद मैं इस डेटा के साथ अपना पूर्वानुमान कैसे जारी रखूंगा?
  7. इन पूर्वानुमानों को अन्य पूर्वानुमान मॉडल में कैसे शामिल किया जाए - एक्सपोनेंशियल स्मूथिंग, ARIMA, स्ट्रटुरल मॉडल, रैंडम वॉक, थीटा? मुझे यकीन है कि मैं स्तर की पाली के बाद से आउटलेर्स को हटा नहीं सकता हूं, और अगर मैं केवल समायोजित श्रृंखला डेटा लेता हूं, तो मान बहुत छोटा होगा, इसलिए मैं क्या करूं?

क्या मुझे पूर्वानुमान के लिए auto.arima में इन outliers को regressor के रूप में जोड़ना होगा? फिर यह कैसे काम करता है?

जवाबों:


5

ये टिप्पणियां बहुत लंबी हैं ... इस प्रकार एक "उत्तर"

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

  2. सही पूर्वानुमान हमेशा मूल श्रृंखला से किया जाता है इस प्रकार पूर्वानुमान को इतिहास को देखते हुए विश्वसनीय होना चाहिए।

  3. मेरे पास कोई विचार नहीं है क्योंकि मैं इस प्रक्रिया का सक्रिय रूप से उपयोग नहीं करता हूं। मैंने आपसे इसकी सिफारिश की थी क्योंकि आपने मुफ्त आर आधारित समाधानों के लिए कहा था क्योंकि मुझे लगा कि यह अच्छा या पर्याप्त था क्योंकि ARIMA मॉडलिंग एक पुनरावृत्त (बहु-मंच) सेल्फ-चेकिंग प्रक्रिया है।

  4. मॉडल का सुझाव है कि यह सोचता है कि डेटा में एक मा (12) मौसमी घटक है लेकिन यह केवल एक मौसमी पल्स की आवश्यकता को प्रतिबिंबित कर सकता है।

  5. एक मौसमी प्रवृत्ति की अवधारणा सबसे अच्छा अस्पष्ट है।

  6. मेरा उत्तर बहुत स्पष्ट और स्व-स्फूर्त होगा


1
tu very @ricardo
आयरिशस्टैट

4

पैकेज 'tsoutliers' चेन और लियू (1993) [1] द्वारा वर्णित प्रक्रिया को लागू करता है । इस दस्तावेज़ में पैकेज और प्रक्रिया का विवरण भी दिया गया है ।

संक्षेप में, प्रक्रिया में दो मुख्य चरण होते हैं:

  1. एक चुने हुए ARIMA मॉडल पर आउटलेर का पता लगाना।
  2. पिछले चरण में पाए गए आउटलेयर सहित ARIMA मॉडल को चुनें और / या फिर से रिफंड करें और उन आउटलेरों को हटा दें जो नए फिट में महत्वपूर्ण नहीं हैं।

तब श्रृंखला का पता चला आउटलेर के लिए समायोजित किया जाता है और चरणों (1) और (2) को दोहराया जाता है जब तक कि अधिक आउटलेयर का पता नहीं लगाया जाता है या जब तक कि पुनरावृत्तियों की अधिकतम संख्या नहीं पहुंच जाती है।


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

आप maxit.iloopफ़ंक्शन में तर्क के माध्यम से पुनरावृत्तियों की अधिकतम संख्या बढ़ा सकते हैं tso। यह सलाह दी जाती है कि पहले चरण में अधिक संख्या में पुनरावृत्तियों को सेट न करें और प्रक्रिया को दूसरे चरण में ले जाएं जहां ARIMA मॉडल को फिर से चुना या चुना गया है।


चेतावनियाँ 4 और 5 ARIMA मॉडल को फिट करने की प्रक्रिया से संबंधित हैं stats::arimaऔर कार्यों के लिए क्रमशः मॉडल को चुना है forecast:auto.arima। एल्गोरिथ्म जो संभावना फ़ंक्शन को अधिकतम करता है वह हमेशा एक समाधान में परिवर्तित नहीं होता है। आप इन मुद्दों से संबंधित कुछ विवरण पा सकते हैं, उदाहरण के लिए, इस पोस्ट और इस पोस्ट में


[1] चुंग चेन और लोन-म्यू लियू (1993) "समय श्रृंखला में मॉडल पैरामीटर और बाहरी प्रभाव के संयुक्त आकलन", अमेरिकी सांख्यिकीय एसोसिएशन के जर्नल , 88 (421), पीपी। 284-297। DOI: 10.1080 / 01621459.1993.10594321


tso चलाने में कितना समय लगेगा ()?
अनूप टॉफी

@AnopToffy यह वार्षिक, मासिक, त्रैमासिक डेटा, लगभग 120 अवलोकनों का एक नमूना आकार और एक डायनेमिक जिसे ARIMA मॉडल द्वारा यथोचित कैप्चर किया जा सकता है, की लंबाई पर निर्भर करता है, एल्गोरिथ्म सबसे अधिक चलेगा लगभग 10 सेकंड (आमतौर पर बहुत कम)।
javlacalle
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.