कई बार श्रृंखला में एक ही मॉडल का अनुमान लगाना


26

मेरे पास समय श्रृंखला (कुछ ARIMA आकलन / पूर्वानुमान) में एक नौसिखिया पृष्ठभूमि है और एक ऐसी समस्या का सामना कर रहा हूं जिसे मैं पूरी तरह से नहीं समझता। किसी भी तरह की सहायता का स्वागत किया जाएगा।

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

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

मेरा सवाल है: मैं ऐसे मॉडल को क्या कहूंगा, और मैं इसका अनुमान लगाने / पूर्वानुमान लगाने के बारे में कैसे जा सकता हूं? यदि आपके लिए कोड उदाहरणों का उपयोग करना आसान है, तो मैं एसएएस और आर दोनों बोलता हूं।

जवाबों:


8

आप एक ग्रिड खोज कर सकते हैं: ARIMA (1,0,0) से शुरू करें और ARIMA (5,2,5) या कुछ करने के लिए सभी संभावनाओं का प्रयास करें। प्रत्येक श्रृंखला के लिए मॉडल को फिट करें, और एमएपीई या एमएएसई (एमएएसई शायद बेहतर होगा) जैसे पैमाने-स्वतंत्र त्रुटि माप का अनुमान लगाएं। अपने सभी मॉडलों में सबसे कम औसत MASE वाला ARIMA मॉडल चुनें।

आप प्रत्येक श्रृंखला के लिए अपनी त्रुटि माप को क्रॉस-वैरिफाई करके, और अपने परिणामों की तुलना भोले पूर्वानुमान से भी कर सकते हैं

यह पूछने के लिए एक अच्छा विचार हो सकता है कि आप सभी श्रृंखलाओं का वर्णन करने के लिए एकल मॉडल की तलाश क्यों कर रहे हैं। जब तक वे एक ही प्रक्रिया से उत्पन्न नहीं होते हैं, यह एक अच्छा विचार नहीं लगता है।


2
धन्यवाद - मैं इसका प्रयास करूंगा। मैं मानता हूं कि यह सबसे अच्छा विचार नहीं है। मेरे पास तर्क यह था कि प्रत्येक श्रृंखला में अच्छे अनुमान के लिए पर्याप्त अवलोकन (~ 28) नहीं है और यह सभी श्रृंखलाओं पर अनुमान लगाने के लिए अधिक मजबूत होगा। मुझे यकीन नहीं है कि मैं उस तर्क से सहमत हूं।
स्पार्क_स्प्रेड

21

ऐसा करने का एक तरीका यह है कि आपके सभी डेटा के साथ एक लंबी समय श्रृंखला का निर्माण किया जाए, और उन्हें अलग करने के लिए श्रृंखला के बीच लापता मूल्यों के अनुक्रमों के साथ। उदाहरण के लिए, आर में, आप तीन श्रृंखला (अगर x, yऔर z) लंबाई 100 और आवृत्ति 12 में से प्रत्येक के लिए, आप उन्हें इस प्रकार शामिल हो सकते हैं

combined <- ts(c(x,rep(NA,56),y,rep(NA,56),z,rep(NA,56)),frequency=12)

ध्यान दें कि मौसमी अवधि को बनाए रखने के लिए लापता मूल्यों की संख्या को चुना जाता है। मैंने अंतिम वर्ष को 8 लापता मानों के साथ रखा है और फिर अगली श्रृंखला से पहले चार लापता वर्ष (48 मान) जोड़े हैं। श्रृंखला के बीच किसी भी धारावाहिक संबंध को धोना सुनिश्चित करने के लिए यह पर्याप्त होना चाहिए।

तो आप auto.arima()सबसे अच्छा मॉडल खोजने के लिए उपयोग कर सकते हैं :

library(forecast)
fit <- auto.arima(combined)

अंत में, आप पूर्वानुमान प्राप्त करने के लिए अलग-अलग प्रत्येक श्रृंखला में संयुक्त मॉडल लागू कर सकते हैं:

fit.x <- Arima(x,model=fit)
fit.y <- Arima(y,model=fit)
fit.z <- Arima(z,model=fit)

5
+1, स्वच्छ चाल। एक अन्य जवाब में ओपी की टिप्पणी को देखते हुए, मैं कुछ प्रकार के पैनल डेटा मॉडल का सुझाव देने जा रहा था, लेकिन यह बेहतर है।
mpiktas

यह एक बड़ी मदद है, बहुत सराहना की। क्या आप फिर से समझा सकते हैं: मौसमी अवधि को बनाए रखने के लिए लापता मूल्यों की संख्या को चुना जाता है ? क्षमा करें, मैंने पूरी तरह से अनुसरण नहीं किया - धन्यवाद।
sparc_spread

1
यदि डेटा में मौसमीता है (जैसा कि अक्सर मासिक टिप्पणियों के साथ होता है), तो आप चाहते हैं कि लंबी श्रृंखला अभी भी जनुअरीज़ को 12 के अतिरिक्त, फेहरुरीज को 12 से अधिक की एक बहु के रूप में, और इसी तरह। फिर, जब मॉडल को चुना जा रहा हो, तो मौसमी को उचित रूप से मॉडल किया जा सकता है।
रोब हंडमैन

3
इस ट्रिक में जोड़ने के लिए - आप श्रेणी सदस्यता का संकेत देते हुए बाहरी रजिस्टरों (xreg) को जोड़ सकते हैं। यह अलग-अलग श्रृंखलाओं के लिए अलग-अलग साधनों के लिए होगा, जबकि अन्य गुणांक को सामान्य रखते हुए।
जेम्सन क्विन

6

कई समय श्रृंखला के लिए एकल मॉडल का अनुमान लगाना पैनल डेटा अर्थमिति का क्षेत्र है। हालाँकि, आपके मामले में कोई व्याख्यात्मक चर @Rob Hyndman उत्तर के साथ शायद सबसे उपयुक्त है। हालाँकि अगर यह पता चलता है कि टाइम सीरीज़ के साधन अलग-अलग हैं (इसका परीक्षण करें, क्योंकि इस मामले में @Rob Hyndman का तरीका विफल होना चाहिए!), लेकिन ARMA संरचना समान है, तो आपको Arellano-Bond (क्षमा करें wadipedia) का उपयोग करना होगा इस पर कोई पृष्ठ नहीं है, इसलिए इसे Google पर खोजें) टाइप अनुमानक। उस मामले में मॉडल होगा:

yमैंटी=αमैं+ρ1yमैं,टी-1++ρपीyमैं,टी-पी+εमैंटी

मैंεमैंटीमैं


1
वास्तव में आपके समाधान और दूसरों की भी सराहना करें। आप इसका उल्लेख करते हैं: हालाँकि यदि यह पता चलता है कि समय श्रृंखला के साधन भिन्न हैं (इसका परीक्षण करें, क्योंकि इस मामले में @Rob Hyndman का तरीका विफल होना चाहिए!) क्या आप इस बारे में अधिक बता सकते हैं कि यह क्यों है? धन्यवाद।
sparc_spread

2
@ sparc_spread, मान लीजिए कि यह सिर्फ दो श्रृंखलाएँ हैं। एक विचरण 1 के साथ लगभग 0 पर केंद्रित है और दूसरा विचरण 1 के साथ 1000 पर केंद्रित है। तब यदि दोनों श्रृंखलाएं समान गुणांक का उपयोग करके फिट हैं, तो इसका मतलब है कि हम अल्फा_1 = अल्फ़ा_2 को विवश कर रहे हैं, इसलिए दोनों श्रृंखलाओं की भविष्यवाणियाँ चारों ओर होंगी। 500, बुरी तरह से बंद। मूल रूप से, सभी श्रृंखला को एक ही मॉडल से संबंधित मानकर संयुक्त मॉडल को फिट करने से पहले कुछ पुनरावृत्ति / सामान्यीकरण की आवश्यकता हो सकती है।
zkurtz

4

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

नोट: आप अभी भी केवल 28 रीडिंग, कम शोर के साथ समाप्त होते हैं, इसलिए यह आपकी स्थिति के लिए उपयुक्त नहीं हो सकता है।

t1=xts(jitter(sin(1:28/10),amount=0.2),as.Date("2012-01-01")+1:28)
t2=xts(jitter(sin(1:28/10),amount=0.2),as.Date("2012-01-01")+1:28)
t3=(t1+t2)/2

यहाँ छवि विवरण दर्ज करें


यह केवल तभी काम करेगा जब सभी सिग्नल प्रकृति में समान हों (जैसे आवधिक) सभी चरण में हैं - आपके उदाहरण में यदि साइन लहरों में से दो 180 डिग्री चरण से बाहर थे तो वे पूरी तरह से रद्द कर देंगे!
tdc

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

1

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


0

मैं वही काम करने की कोशिश कर रहा हूं। जाहिर है, वहाँ एक 'Multivariate AutoRegressive' मॉडल कहा जाता है। मुझे इसका संदर्भ मिला है, लेकिन इसका उपयोग करने का तरीका नहीं। लिंक किए गए कागज के आधार पर, मुझे लगता है कि यह आर में लागू किया गया है।

http://journal.r-project.org/archive/2012-1/RJournal_2012-1_Holmes~et~al.pdf


मानक दृष्टिकोण है वेक्टर autoregression और वहाँ एक आर पैकेज कहा जाता है वर
शीआन

क्या एक वेक्टर ऑटोरोगेशन पैनल डेटा पर ऑटोरेजेशन से अलग है? या यह अलग-अलग क्षेत्रों, अलग-अलग नामों की बात है? पैनल डेटा के लिए plm पैकेज का सुझाव दिया गया था। cran.r-project.org/web/packages/plm/vignettes/plm.pdf clidyn.ethz.ch/papers/arfit.pdf
Mox
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.