601 / 736LOOK

Look-ahead Bias

भविष्य की जानकारी के उपयोग से उत्पन्न पूर्वाग्रह

Look-ahead Bias तब होता है जब पुराने डेटा पर किया गया परीक्षण फैसला लेते समय भविष्य में झाँक लेता है। मसलन, वह सुबह खरीदता है, लेकिन आधार वह कीमत होती है जो शाम को ही पता चलेगी। नतीजा अच्छा दिख सकता है, पर उस समय उपलब्ध जानकारी से ऐसा फैसला संभव नहीं था।

Look-ahead Bias वह गलती है जिसमें बाद में उपलब्ध जानकारी किसी पहले के फैसले, मॉडल के प्रशिक्षण या नियम के चुनाव में पहुँच जाती है। महत्त्वपूर्ण यह है कि जानकारी वास्तव में कब जानी जा सकती थी, केवल तालिका में लिखी तारीख नहीं। पहले लिए गए फैसले का परिणाम बाद में मापना अपने आप में गलती नहीं है।

पीटर कंप्यूटर पर जाँचता है कि उसका नियम अतीत में कैसे कारोबार करता। तालिका में पूरी ऐतिहासिक जानकारी पहले से मौजूद है, इसलिए प्रोग्राम भूल से ऐसी बात भी पढ़ सकता है जो पीटर को तब पता नहीं हो सकती थी। QuantConnect इसी तरह Look-ahead Bias समझाता है। हर इनपुट के लिए पूछें: नियम ने जब फैसला लिया, क्या यह जानकारी उपलब्ध थी? केवल दिन की तारीख पर्याप्त नहीं हो सकती। घटना सुबह हुई हो, खबर बाद में छपी हो और कारोबारी तक और भी देर से पहुँची हो सकती है। परीक्षण को यह क्रम मानना चाहिए, केवल पंक्तियों को तारीख के अनुसार लगाना नहीं। [2]

कीमत की एक कैंडल किसी अवधि के शुरुआती और अंतिम भाव, सबसे ऊँचे और नीचे भाव तथा कारोबार की मात्रा का सार देती है। जब तक अवधि चल रही है, उसके अंतिम मान ज्ञात नहीं हैं। इसलिए पीटर उसी कैंडल के अंतिम ऊँचे भाव के आधार पर अवधि की शुरुआत में नहीं खरीद सकता। QuantConnect का इंजन LEAN पूरा हो चुका डेटा EndTime, यानी समाप्ति के समय, के अनुसार देता है। छोटी और लंबी अवधियाँ मिलाते समय हर शृंखला की उपलब्धता अलग जाँचनी होती है। एक पंक्ति आगे खिसकाना तभी मदद करता है जब वह समय-क्षेत्र और देरी समेत वास्तविक उपलब्धता से मेल खाए। [1]

पीटर पिछले महीनों की तारीखों वाले आर्थिक आँकड़े डाउनलोड करता है। लेकिन कुछ संख्याएँ बाद में संशोधित हो चुकी हैं। आज का सुधारा हुआ मान पुराने फैसले में डालना उसे ऐसी जानकारी देना है जो तब मौजूद नहीं थी। इसलिए St. Louis Fed, FRED में आज की नज़र से दिखने वाले अतीत और ALFRED से मिलने वाले ऐतिहासिक संस्करणों में अंतर करता है। ऐसे डेटा के लिए उस समय प्रकाशित संस्करण चाहिए। जिस महीने को मापा गया उसकी तारीख काफी नहीं; दिन की तारीख वाला ऐतिहासिक संस्करण भी यह नहीं बताता कि उसी दिन ठीक कब वह उपलब्ध हुआ। [3]

पीटर पुराना डेटा प्रशिक्षण के लिए और नया डेटा परीक्षण के लिए अलग करता है। लेकिन इनपुट बदलने के लिए फिर पूरी तालिका का औसत निकालता है। भविष्य की जानकारी दूसरे रास्ते से वापस आ गई। इसलिए मशीन लर्निंग लाइब्रेरी scikit-learn के दस्तावेज़ कहते हैं कि डेटा बदलने के तरीके केवल प्रशिक्षण वाले हिस्से से सीखें और फिर परीक्षण वाले हिस्से पर लागू करें। गायब मान भरना और इनपुट चुनना भी जाँचें। सीखने में इस्तेमाल होने वाले परिणामों पर भी ध्यान दें: अभी खुले सौदे का अंतिम नतीजा ज्ञात नहीं है। बाद में उसे आँक सकते हैं, लेकिन उस नतीजे को पहले के प्रशिक्षण में वापस नहीं डाल सकते। [4]

पुरानी कैंडल ऊँचा और नीचा भाव दिखाती है, लेकिन अकेले उससे वास्तविक सौदों का पूरा क्रम नहीं मिलता। इसलिए TradingView बताता है कि उसका सिमुलेटर कैंडल के भीतर कीमत की चाल के बारे में क्या मान्यताएँ रखता है। पीटर को संकेत बनना, ऑर्डर भेजना और उसके संभव निष्पादन का समय अलग समझना चाहिए। बाद में पता चले उच्चतम भाव पर बेचना केवल इसलिए उस समय उपलब्ध नियम नहीं बन जाता कि सिमुलेशन उस भाव को ढूँढ़ सकता है। भविष्य की जानकारी का रिसाव और बहुत अनुकूल निष्पादन मान लेना अलग गलतियाँ हैं। अधिक बारीक डेटा मदद कर सकता है, पर वास्तविक निष्पादन की गारंटी नहीं देता। [5]

Freqtrade Lookahead Analysis बार-बार किए गए परीक्षणों की तुलना करके इंडिकेटर या संकेतों में बदलाव खोजता है। वह भविष्य की पंक्तियाँ पढ़ने वाली गणना पकड़ सकता है। लेकिन निर्णय की जो शाखा परीक्षण में चली ही नहीं, उसे नहीं जाँच सकता। इसलिए नतीजे के साथ जाँच का दायरा भी जानना चाहिए। दस्तावेज़ गलत चेतावनियों की संभावना भी बताते हैं, जैसे किसी रणनीति का एक बाजार और बाजारों के पूरे समूह पर अलग व्यवहार करना। साफ नतीजा सब कुछ सही होने का प्रमाण नहीं, और मिले अंतर की वजह समझनी होगी। डेटा का मूल जाँचना अभी भी काम का हिस्सा है। [6]

पीटर भविष्य वाला इनपुट हटाता है और शानदार परिणाम बिगड़ जाता है। अब पुराने रिपोर्ट को सुधरे तरीके का परिणाम नहीं कह सकता। मगर सुधार के बाद भी सारी जाँच पूरी नहीं हुई। TradingView, Look-ahead Bias को Overfitting से अलग करता है: नियम उस डेटा की खासियतों से जरूरत से ज्यादा मेल खाने लगता है जिस पर उसे तैयार किया गया था। ऐसा भविष्य की जानकारी के बिना भी हो सकता है। दूसरी ओर, बहुत सरल नियम में भी समय की गलती हो सकती है। पुराने परीक्षण और बाद के प्रदर्शन का अंतर अकेले नहीं बताता कि कौन-सी गलती या बाजार में कौन-सा बदलाव उसका कारण था। [5]

उपयोगी रिकॉर्ड से दोबारा समझ सकें कि पीटर उस समय क्या जानता था: डेटा का संस्करण, नियम, खाते की स्थिति, उपलब्ध इनपुट और भेजे गए ऑर्डर। निष्पादन की मान्यताएँ और खर्च भी जोड़ें। Paper Trading, यानी असली पैसे के बिना अभ्यास के सौदे, चलते हुए रिकॉर्ड दे सकता है, लेकिन सिमुलेशन वास्तविक कारोबार से अलग रहता है। अमेरिकी संगठन National Futures Association (NFA) बताता है कि काल्पनिक परिणामों में तरलता, अपेक्षित और वास्तविक निष्पादन भाव के अंतर तथा नुकसान के दबाव में फैसलों से जुड़ी सीमाएँ हैं; उसके प्रचार-संबंधी नियम तय सदस्यों पर लागू होते हैं। समय की गलती हटाने से अधिक ईमानदार परीक्षण मिलता है, भविष्य के लाभ का वादा नहीं। [7]

उदाहरणउदाहरण · LOOK

जब परीक्षण पहले से जानता हो कि कौन-सी अवधि बढ़ेगी

इस काल्पनिक उदाहरण में पीटर के पास लगातार चार अवधियाँ A, B, C और D हैं। शुरुआती भाव ⁦[100, 100, 100, 100] USD/BTC⁩ और अंतिम भाव ⁦[110, 90, 120, 80] USD/BTC⁩ हैं। A से पहले की अवधि ⁦100 USD/BTC⁩ पर खुली और बंद हुई थी। हर तरीका ⁦1000 USD⁩ से शुरू होता है; कोई पोज़िशन, कर्ज या बाहरी नकदी प्रवाह नहीं है। प्रवेश पर मॉडल के शुरुआती भाव में तय मात्रा ⁦1 BTC⁩ खरीदी जाती है और पहले से तय नियम के अनुसार उसी अवधि के अंतिम भाव पर बेची जाती है। किए गए सौदे की हर खरीद या बिक्री पर ⁦1 USD⁩ लगता है; प्रवेश न हो तो शुल्क नहीं। अन्य खर्च और निष्पादन भाव का अंतर यहाँ छोड़ दिया गया है। गलत तरीका X केवल बढ़ने से पहले खरीदता है, क्योंकि उसने अभी शुरू हुई अवधि का भविष्य का अंतिम भाव पढ़ लिया है। प्रवेश ⁦[1, 0, 1, 0]⁩ और शुद्ध परिणाम ⁦[8, 0, 18, 0] USD⁩ हैं: कुल ⁦26 USD⁩ और अंतिम नकदी ⁦1026 USD⁩। तरीका Y पिछली पूरी हो चुकी अवधि की बढ़त पर निर्णय करता है, जिसे वह जान सकता है। उसके प्रवेश ⁦[0, 1, 0, 1]⁩ और शुद्ध परिणाम ⁦[0, -12, 0, -22] USD⁩ हैं: कुल ⁦-34 USD⁩ और अंतिम नकदी ⁦966 USD⁩। हर अवधि के बाद दोनों की पोज़िशन शून्य है; ग्राफ अवधि के अनुसार शुद्ध परिणामों की तुलना करता है। X का लाभ भविष्य की जानकारी से आया, इसलिए वह उस समय उपलब्ध कारोबारी बढ़त साबित नहीं करता। Y का नुकसान भी यह नहीं कहता कि सही समय-क्रम हमेशा घाटा देता है। ये बनाई हुई कीमतें और सरल किए गए निष्पादन हैं, Bitcoin का इतिहास या वास्तविक निष्पादन की गारंटी नहीं।

पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें Backtesting, Overfitting, Walk-forward Analysis, Survivorship Bias, Paper Trading. इस प्रविष्टि का उल्लेख यहाँ भी है Walk-forward Analysis, Overfitting, Survivorship Bias, On-chain Analysis.

01क्या इंडिकेटर को एक पंक्ति आगे करना काफी है?

कभी इससे एक खास गलती सुधरती है, लेकिन यह सार्वभौमिक हल नहीं। डेटा देर से प्रकाशित हुआ हो सकता है, बाद में बदला गया हो सकता है या पूरी तालिका की तैयारी में पहले ही इस्तेमाल हुआ हो सकता है। अहम बात हर इनपुट का निर्णय के समय उपलब्ध होना है।

02क्या मूल्यांकन में बाद का परिणाम इस्तेमाल कर सकते हैं?

हाँ। पुराने अनुमान को आँकने के लिए बाद का परिणाम जानना जरूरी है। गलती तब है जब उस परिणाम को अतीत में वापस ले जाकर पहले के फैसले, प्रशिक्षण या नियम के चुनाव पर असर डालें, जबकि उस समय वह ज्ञात नहीं था।

DOC · 001QuantConnect — Time Modeling: Timeslicesदस्तावेज़ DOC · 002QuantConnect — Custom Securities: Avoid Look-Ahead Biasदस्तावेज़ DOC · 003Federal Reserve Bank of St. Louis — FRED API Real-Time Periodsदस्तावेज़ DOC · 004scikit-learn — Common Pitfalls: Data Leakageदस्तावेज़ DOC · 005TradingView — Strategies: Broker Emulator and Lookahead Biasदस्तावेज़ DOC · 006Freqtrade — Lookahead Analysisदस्तावेज़ DOC · 007NFA — Use of Promotional Material Containing Hypothetical Performance Resultsदस्तावेज़
समीक्षा की गई: स्रोत पहले · यह निवेश सलाह नहीं है