समय-श्रृंखला मॉडल चयन के लिए k- गुना क्रॉस-सत्यापन का उपयोग करना


70

प्रश्न: मैं कुछ सुनिश्चित करना चाहता हूं, क्या समय श्रृंखला के साथ k- गुना क्रॉस-सत्यापन का उपयोग सीधा है, या किसी को उपयोग करने से पहले विशेष ध्यान देने की आवश्यकता है?

बैकग्राउंड: मैं हर 5 मिनट में डेटा सैंपल के साथ 6 साल की टाइम सीरीज़ (सेमी-मार्कोव चेन के साथ) मॉडलिंग कर रहा हूं। कई मॉडलों की तुलना करने के लिए, मैं 6 साल में डेटा को अलग करके 6-गुना क्रॉस-सत्यापन का उपयोग कर रहा हूं, इसलिए मेरे प्रशिक्षण सेट (मापदंडों की गणना करने के लिए) की लंबाई 5 साल है, और परीक्षण सेट की लंबाई 1 है साल। मैं समय क्रम को ध्यान में नहीं रख रहा हूं, इसलिए मेरे अलग सेट हैं:

  • गुना 1: प्रशिक्षण [1 2 3 4 5], परीक्षण [6]
  • तह 2: प्रशिक्षण [1 2 3 4 6], परीक्षण [5]
  • गुना 3: प्रशिक्षण [1 2 3 5 6], परीक्षण [4]
  • तह 4: प्रशिक्षण [1 2 4 5 6], परीक्षण [3]
  • तह 5: प्रशिक्षण [1 3 4 5 6], परीक्षण [2]
  • तह 6: प्रशिक्षण [2 3 4 5 6], परीक्षण [1]।

मैं यह परिकल्पना कर रहा हूं कि प्रत्येक वर्ष एक-दूसरे से स्वतंत्र होते हैं। मैं इसे कैसे सत्यापित कर सकता हूं? क्या समय श्रृंखला के साथ k- गुना क्रॉस-सत्यापन की प्रयोज्यता दिखाने वाला कोई संदर्भ है।


इस लेख पर एक नज़र डालें, जो मुझे असहाय francescopochetti.com/ पर
हेनोक एस मेंगिस्टू

जवाबों:


69

समय-श्रृंखला (या अन्य आंतरिक रूप से ऑर्डर किए गए डेटा) क्रॉस-मान्यता के लिए समस्याग्रस्त हो सकते हैं। यदि कुछ पैटर्न वर्ष 3 में उभरता है और 4-6 साल तक रहता है, तो आपका मॉडल उस पर उठा सकता है, भले ही यह 1 और 2 साल का हिस्सा नहीं था।

समय श्रृंखला के लिए कभी-कभी अधिक प्रिंट किए जाने वाला एक तरीका आगे की श्रृंखला है, जहां आपकी प्रक्रिया कुछ इस तरह होगी:

  • गुना 1: प्रशिक्षण [1], परीक्षण [2]
  • तह 2: प्रशिक्षण [1 2], परीक्षण [3]
  • गुना 3: प्रशिक्षण [1 2 3], परीक्षण [4]
  • तह 4: प्रशिक्षण [1 2 3 4], परीक्षण [5]
  • तह 5: प्रशिक्षण [1 2 3 4 5], परीक्षण [6]

वह अधिक सटीक मॉडल जिस स्थिति को आप भविष्यवाणी समय पर देखेंगे, जहां आप पिछले डेटा पर मॉडल करेंगे और फॉरवर्ड दिखने वाले डेटा पर भविष्यवाणी करेंगे। यह आपको डेटा आकार पर अपने मॉडलिंग की निर्भरता का भी एहसास दिलाएगा।


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

मुझे डर है कि मुझे इस तरह के संदर्भ का पता नहीं है, लेकिन अगर किसी और को पता है तो मुझे एक को देखने में दिलचस्पी होगी।
केन विलियम्स

1
@Wayne, मेरा मतलब है कि यह समाधान प्रत्येक गुना पर अधिक से अधिक वर्षों के प्रशिक्षण डेटा का उपयोग करता है। मेरे डेटा में निश्चित रूप से वर्षों के बीच अंतर हैं, लेकिन कोई स्पष्ट प्रवृत्ति या मौसमीता नहीं है।
मिकाएल एस

3
@ मिकेल: आप 1: ट्रेन [1 2] परीक्षण [3] का उपयोग कर सकते हैं; तह 2: ट्रेन [2 3] परीक्षण [4]; गुना 3: ट्रेन [3 4] परीक्षण [5], आदि, यदि आप प्रत्येक गुना के साथ अधिक से अधिक डेटा का उपयोग करने के बारे में चिंतित हैं। मेरा अनुमान है कि एक सेमी-एमसी तकनीक के साथ आप वास्तव में वर्षों के आसपास घसीट नहीं सकते, भले ही कोई प्रवृत्ति न हो।
वेन

3
@ MickaëlS: मैं इस पत्र पाया sciencedirect.com/science/article/pii/S0020025511006773 और सोचा कि यह ब्याज की हो सकती है। वे इस 'विहित' दृष्टिकोण की तुलना दो अन्य तरीकों से करते हैं - एक 'ब्लॉक बूस्टरैप' और 'लीव आउट डिपेंडेंट' दृष्टिकोण।
thebigdog

26

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

चीजों को सहज बनाने के लिए, यहाँ एक ही छवि है:

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

एक बराबर आर कोड होगा:

i <- 36    #### Starting with 3 years of monthly training data 
pred_ets <- c()
pred_arima <- c()
while(i <= nrow(dt)){
  ts <- ts(dt[1:i, "Amount"], start=c(2001, 12), frequency=12)

  pred_ets <- rbind(pred_ets, data.frame(forecast(ets(ts), 3)$mean[1:3]))
	  pred_arima <- rbind(pred_arima, data.frame(forecast(auto.arima(ts), 3)$mean[1:3]))

  i = i + 3
}
names(pred_arima) <- "arima"
names(pred_ets) <- "ets"

pred_ets <- ts(pred_ets$ets, start=c(2005, 01), frequency = 12)
	pred_arima <- ts(pred_arima$arima, start=c(2005, 01), frequency =12)

accuracy(pred_ets, ts_dt)
accuracy(pred_arima, ts_dt)

आर का उपयोग करके लॉजिस्टिक रिग्रेशन जैसे तरीकों के लिए ऐसा करने का कोई तरीका है?
hlyates

1
@hlyates, मेरी समझ में यह संभव है, आपको बस उपरोक्त कोड को थोड़ा संशोधित करने की आवश्यकता है। Pred_lr (लॉजिस्टिक रिग्रेशन द्वारा भविष्यवाणियां) को शामिल करें और तदनुसार कॉलम का नाम बदलें।
जतिन गर्ग

22

टाइम-सीरीज़ क्रॉस- वेलिडेशन करने के लिए "कैनोनिकल" तरीका (कम से कम जैसा कि @Rob Hyndman द्वारा बताया गया है) डेटासेट के माध्यम से "रोल" करना है।

अर्थात:

  • गुना 1: प्रशिक्षण [1], परीक्षण [2]
  • तह 2: प्रशिक्षण [1 2], परीक्षण [3]
  • गुना 3: प्रशिक्षण [1 2 3], परीक्षण [4]
  • तह 4: प्रशिक्षण [1 2 3 4], परीक्षण [5]
  • तह 5: प्रशिक्षण [1 2 3 4 5], परीक्षण [6]

मूल रूप से, आपके प्रशिक्षण सेट में परीक्षण सेट के बाद होने वाली जानकारी नहीं होनी चाहिए।


13

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

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

इस दृष्टिकोण को क्रॉस सत्यापन कहा जाता है ( आउट छोड़ें , परीक्षण नमूना के दोनों ओर टिप्पणियों को हटा दें ) और इस पेपर में वर्णित है आपके उदाहरण में, यह इस तरह दिखेगा:hvvh

  • गुना 1: प्रशिक्षण [1 2 3 4 5h], परीक्षण [6]
  • तह 2: प्रशिक्षण [1 2 3 4h h6], परीक्षण [5]
  • गुना 3: प्रशिक्षण [1 2 3h h5 6], परीक्षण [4]
  • तह 4: प्रशिक्षण [1 2h h4 5 6], परीक्षण [3]
  • तह 5: प्रशिक्षण [1 h h3 4 5 6], परीक्षण [2]
  • गुना 6: प्रशिक्षण [h2 3 4 5 6], परीक्षण [1]

जहाँ h इंगित करता है कि प्रशिक्षण नमूने के h अवलोकन उस तरफ हटा दिए गए हैं।


3

जैसा कि @thebigdog द्वारा टिप्पणी की गई है, "बर्गमीर एट अल द्वारा" टाइम सीरीज़ प्रेडिक्टर मूल्यांकन के लिए क्रॉस-मान्यता के उपयोग पर। स्थिर समय-श्रृंखला के संदर्भ में क्रॉस-वैधीकरण पर चर्चा करता है और फॉरवर्ड चेनिंग (अन्य उत्तरदाताओं द्वारा प्रस्तावित) को अनैच्छिक बनाने के लिए निर्धारित करता है। नोट, फॉरवर्ड चेनिंग को इस पत्र में अंतिम-ब्लॉक मूल्यांकन कहा जाता है:

मानक 5-गुना क्रॉस-वैलिडेशन का उपयोग करते हुए, डेटा के भीतर निर्भरता का कोई व्यावहारिक प्रभाव नहीं पाया जा सकता है, इस बारे में कि क्या अंतिम त्रुटि कम या अधिक है। इसके विपरीत, अंतिम ब्लॉक मूल्यांकन में क्रॉस-सत्यापन और अवरुद्ध क्रॉस-सत्यापन की तुलना में कम मजबूत त्रुटि उपायों का उत्पादन होता है।

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

री-होल्डआउट चित्रण

यह उपर्युक्त पेपर लंबा है और इस प्रश्न के उत्तर में उल्लिखित लगभग सभी तरीकों का सार्वजनिक रूप से उपलब्ध कोड के साथ परीक्षण किया गया है । इसमें परीक्षण डेटा से पहले और बाद में अंतराल सहित @Matthias Schmidtblaicher का दावा शामिल है। इसके अलावा, मैंने केवल कागज को संक्षेप में प्रस्तुत किया है। कागज के वास्तविक निष्कर्ष में समय-श्रृंखला मॉडल के मूल्यांकन के लिए एक निर्णय वृक्ष शामिल है!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.