मूविंग एवरेज गुम डेटा पॉइंट को कैसे हैंडल करना चाहिए?


10

मैं एक ऐसा प्रोग्राम लिख रहा हूं जो उपयोगकर्ता के वजन को अलग-अलग दिनों में औसत करता है। मैं 5-पॉइंट मूविंग-एवरेज (वर्तमान दिन, दो पहले और दो बाद) का उपयोग करने की योजना बना रहा हूं। कभी-कभी, 1-2 दिनों के लिए एक डेटा बिंदु गायब होता है। इन मामलों को आमतौर पर कैसे संभाला जाता है?

(यदि एक बेहतर कम-पास फिल्टर है जिसका मैं उपयोग कर सकता हूं, तो मुझे सुझाव पसंद हैं)


पहली बात जो दिमाग में आती है वह चलती औसत फिल्टर का उपयोग करने से पहले बिंदुओं को प्रक्षेपित करना है
someguy

3
सिग्नल प्रोसेसिंग प्रश्न की तुलना में वास्तव में अधिक सांख्यिकीय प्रश्न, कम से कम अधिक संदर्भ के अभाव में। लेकिन आप बस औसत को फिर से प्रकाशित करना छोड़ सकते हैं, प्रतिस्थापन मूल्य के रूप में वर्तमान औसत का उपयोग कर सकते हैं, या बाद के माप और प्रक्षेप, रैखिक या अन्यथा प्रयास कर सकते हैं।
डैनियल आर हिक्स

जैसा कि अन्य ने उल्लेख किया है, यह आमतौर पर आपके विचार के आधार पर एक एप्लिकेशन-विशिष्ट निर्णय होगा कि आप फ़िल्टर किए गए आउटपुट को कैसे व्यवहार करना चाहते हैं। अधिकांश सिग्नल प्रोसेसिंग सिद्धांत समान रूप से अंतरित नमूनों पर आधारित है, इसलिए आप ऐसा कुछ प्राप्त नहीं करने जा रहे हैं, जिसे उद्देश्यपूर्ण रूप से "उत्तर" कहा जा सकता है।
जेसन आर

@JasonR मैं उस बिंदु पर उपयोगकर्ता के वजन का अधिक उचित अनुमान देने के लिए फ़िल्टर करता हूं। डेटा समान रूप से नमूना लिया गया है (नमूना आवृत्ति = 1 / दिन), सिवाय इसके कि कुछ डेटा बिंदु गायब हैं।
अन्ना

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

जवाबों:


4

एक सामान्य धारणा के रूप में, प्रतिगमन आपके द्वारा चुनी गई चलती औसत फिल्टर के बजाय लापता बिंदुओं को स्वचालित रूप से फिट करने में बेहतर काम करेगा।

यदि आप AR (ऑटो रिग्रेसिव फ़िल्टर) या ARMA फ़िल्टर का उपयोग करते हैं - आपके पास पिछले इनपुट के आधार पर एक नमूना आउटपुट का अनुमानित मूल्य हो सकता है।

एक्स^[मैं]=Σω*एक्स[मैं-1-]+η

कहाँ एक्स [ मैं ] भविष्यवाणी मूल्य है।एक्स^[मैं]

विशेष रूप से आपके मामले में, कहते हैं कि आप जानते हैं कि व्यक्ति के वजन का एक विशिष्ट रेंज । आप की जरूरत नहीं है अब अगर एक्स [ मैं - 1 ] मूल्य - न्यूनतम के साथ एक और मैक्स के साथ एक और उपलब्ध मॉडल के आधार पर आप के लिए दो चरम मामले परिणाम होगा - दो अलग अलग प्रतिस्थापन लागू एक्स [ मैं ] और आप चुन सकते हैं उनके बीच कुछ है।एक्सएक्स,एक्समैंnएक्स[मैं-1]एक्स^[मैं]

अन्य विभिन्न विकल्प हैं - आप रख सकते हैं

एक्स^[मैं]=एक्स[मैं-1]
एक्स^[मैं]=एक्स का दीर्घकालिक नमूना औसत 

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


2
आप यह क्यों कहते हैं कि प्रतिगमन फिटिंग में बेहतर काम करेगा? धन्यवाद
स्पेसी

3

अनुपलब्ध डेटा को भरने के लिए एक सरल और सामान्य विधि, यदि आपके पास पूरा डेटा है, तो
रैखिक प्रतिगमन का उपयोग करना है । मान लें कि आपके पास एक पंक्ति में 5 के 1000 रन हैं और कोई भी नहीं है।
1000 x 1 वेक्टर y और 1000 x 4 मैट्रिक्स X सेट करें:

y       X
wt[0]   wt[-2] wt[-1] wt[1] wt[2]
---------------------------------
68      67     70     70    68
...

रिग्रेशन आपको 4 नंबर abcd देगा जो एक बेहतरीन मैच देता है

wt[0] ~= a * wt[-2]  + b * wt[-1]  + c * wt[1]  + d * wt[2]

डेटा की अपनी 1000 पंक्तियों के लिए - अलग डेटा, अलग एबीसी डी।
फिर आप इन abcd का उपयोग wt [0] गुम होने का अनुमान (अनुमान, प्रक्षेप) करने के लिए लगाते हैं।
(मानव भार के लिए, मुझे उम्मीद है कि abcd 1/4 के आसपास होगी।)

अजगर में, numpy.linalg.lstsq देखें ।

(सभी स्तरों पर प्रतिगमन पर पुस्तकों और पत्रों के क्षेत्र हैं। हालांकि, प्रक्षेप के साथ संबंध के लिए, मुझे अच्छे परिचय का पता नहीं है? कोई भी?)


1

यदि आप कुछ डेटा नहीं जानते हैं, तो आपका सबसे अच्छा शर्त यह है कि वह इस पर औसतन न चलें। इसे रैखिक प्रतिगमन के साथ अनुमान लगाने और पसंद करने में मदद मिल सकती है, लेकिन यह आपके डेटा में अतिरिक्त जटिलता और अनपेक्षित पूर्वाग्रह भी पेश कर सकता है। मैं कहूंगा कि यदि आप इन पांच डेटा बिंदुओं पर औसत हैं:[,,सी,?,], आपका जवाब होना चाहिए

++सी+4

1

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

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