"ऑन-लाइन" (इटरेटर) सांख्यिकीय मंझला, मोड, तिरछापन, कुर्तोसिस का आकलन करने के लिए एल्गोरिदम?


86

क्या मूल्यों के समुच्चय के माध्य, विधा, तिरछापन और / या कर्टोसिस का अनुमान लगाने के लिए एक एल्गोरिथ्म है, लेकिन इसके लिए एक ही बार में सभी मूल्यों को संग्रहीत करने की आवश्यकता नहीं है?

मैं बुनियादी आँकड़ों की गणना करना चाहता हूँ:

  • माध्य: अंकगणितीय औसत
  • विचरण: औसत से चुकता विचलन का औसत
  • मानक विचलन: विचरण का वर्गमूल
  • माध्यिका: मान जो संख्याओं के बड़े आधे को छोटे आधे से अलग करता है
  • मोड: सबसे लगातार मूल्य सेट में मिला
  • तिरछापन: टीएल; डॉ
  • कुर्टोसिस: टीएल; डॉ

इनमें से किसी की गणना के लिए मूल सूत्र ग्रेड-स्कूल अंकगणित हैं, और मैं उन्हें जानता हूं। कई आँकड़े पुस्तकालय हैं जो उन्हें लागू करते हैं, साथ ही साथ।

मेरी समस्या बड़ी संख्या में (अरबों) मूल्यों की है जो मैं संभाल रहा हूं: पायथन में काम करना, मैं अरबों तत्वों के साथ सिर्फ एक सूची या हैश नहीं बना सकता। भले ही मैंने इसे C में लिखा हो, लेकिन अरब-तत्व सरणियाँ बहुत व्यावहारिक नहीं हैं।

डेटा सॉर्ट नहीं किया गया है। यह अन्य प्रक्रियाओं द्वारा, बेतरतीब ढंग से, मक्खी पर निर्मित होता है। प्रत्येक सेट का आकार अत्यधिक परिवर्तनशील है, और आकार पहले से ज्ञात नहीं होंगे।

मैंने पहले ही पता लगा लिया है कि कैसे माध्य और विचरण को बहुत अच्छी तरह से संभालना है, किसी भी क्रम में सेट में प्रत्येक मूल्य के माध्यम से पुनरावृत्ति करना। (वास्तव में, मेरे मामले में, मैं उन्हें उस क्रम में ले जाता हूं जिसमें वे उत्पन्न होते हैं।) यहां मैं उपयोग किया जा रहा एल्गोरिथ्म है, सौजन्य http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#On-line_algorithm :

  • आरंभिक तीन चर: गिनती, योग और sum_of_squares
  • प्रत्येक मूल्य के लिए:
    • वृद्धि की गिनती।
    • योग करने के लिए मान जोड़ें।
    • मान का वर्ग जोड़ें sum_of_squares।
  • गणना का योग, चर माध्य के रूप में संग्रहीत करें।
  • संख्या के अनुसार sum_of_squares को विभाजित करें, चर माध्य_of_squares के रूप में संग्रहीत करें।
  • स्क्वायर का मतलब है, स्क्वायर_ऑफ़_मेन के रूप में संग्रहीत करना।
  • वर्जन_ के रूप में भंडारण, माध्य_ऑफ_क्वायर से स्क्वायर_ऑफ_मेन को घटाएं।
  • आउटपुट माध्य और विचरण।

इस "ऑन-लाइन" एल्गोरिथ्म में कमजोरियां हैं (उदाहरण के लिए, sum_of_squares के रूप में सटीकता की समस्याएं जल्दी ही पूर्णांक सीमा या फ्लोट परिशुद्धता से बड़ी हो जाती हैं), लेकिन यह मूल रूप से मुझे वह देता है जो मुझे चाहिए, प्रत्येक सेट में प्रत्येक मूल्य को संग्रहीत किए बिना।

लेकिन मुझे नहीं पता कि अतिरिक्त आँकड़ों (मीडियन, मोड, स्केवनेस, कुर्टोसिस) के आकलन के लिए समान तकनीक मौजूद है या नहीं। मैं एक पक्षपाती अनुमानक के साथ रह सकता था, या यहां तक ​​कि एक विधि जो एक निश्चित डिग्री तक सटीकता से समझौता करती है, जब तक कि एन मूल्यों को संसाधित करने के लिए आवश्यक मेमोरी ओ (एन) से काफी कम होती है।

मुझे एक मौजूदा सांख्यिकी पुस्तकालय की ओर इशारा करने से मदद मिलेगी, अगर पुस्तकालय के पास "ऑन-लाइन" इन कार्यों में से एक या अधिक की गणना करने के लिए फ़ंक्शन हैं।


क्या डेटा को क्रमबद्ध रूप से पारित किया जाएगा, और क्या आप पहले से इनपुट की संख्या जान पाएंगे?
चिलीसैपियन


क्या वह पूर्णांक डेटा या फ्लोट डेटा है? क्या आपके पास अधिकतम या न्यूनतम मूल्य है?
Stephan

dmckee: मैं वास्तव में मानक विचलन के लिए Welford की विधि का उपयोग कर रहा हूं। लेकिन मुझे मोड, माध्यिका, कुर्तोसिस या तिरछापन के बारे में उस लिंक में कुछ भी दिखाई नहीं दे रहा है ... क्या मुझे कुछ याद आ रहा है?
रयान बी। लिंच

stephan: कुछ डेटा सेट पूर्णांक हैं, अन्य फ्लोट हैं। जनसंख्या वितरण सामान्य (गाऊसी) के बहुत करीब है, इसलिए हम एक आत्मविश्वास अंतराल स्थापित कर सकते हैं, लेकिन कुछ मामलों में कोई हार्ड सीमा सीमा (x> 0 को छोड़कर) नहीं है।
रयान बी लिंच

जवाबों:


53

तिरछापन और कुर्तोसिस

स्केवनेस और कर्टोसिस के लिए ऑन-लाइन एल्गोरिदम (विचरण की रेखा के साथ) के लिए, यहां एक ही विकी पृष्ठ देखें, जो उच्चतर क्षणों के लिए समानांतर एल्गोरिदम है।

मंझला

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

मेडियन और मोड फ्रिक्वेंसी काउंट्स के साथ

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

सामान्य रूप से वितरित यादृच्छिक चर

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

आगे की टिप्पणी

उपरोक्त सभी एल्गोरिदम को समानांतर में चलाया जा सकता है (यदि कई छँटाई और चयन एल्गोरिथ्म, जैसे क्विकॉर्ट और क्विकसेलेक्ट सहित), अगर यह मदद करता है।

मैंने हमेशा (सामान्य वितरण पर अनुभाग के अपवाद के साथ) मान लिया है कि हम नमूना क्षणों, मंझला और मोड के बारे में बात करते हैं, न कि सैद्धांतिक क्षणों के लिए अनुमानकों को एक ज्ञात वितरण दिया जाता है।

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


57

मैं इन वृद्धिशील / पुनरावर्ती माध्य और माध्य अनुमानक का उपयोग करता हूं, जो दोनों निरंतर भंडारण का उपयोग करते हैं:

mean += eta * (sample - mean)
median += eta * sgn(sample - median)

जहां एटा एक छोटा सा सीखने की दर पैरामीटर है (जैसे 0.001), और sgn () एक साइनम फ़ंक्शन है जो {-1, 0, 1} में से एक को लौटाता है। ( यदि डेटा गैर-स्थिर है और आप समय के साथ परिवर्तनों को ट्रैक करना चाहते हैं, तो एक निरंतर एटा का उपयोग करें ; अन्यथा, स्थिर स्रोतों के लिए आप अर्थ अनुमानक के लिए एटा = 1 / n जैसे कुछ का उपयोग कर सकते हैं , जहां n नमूनों की संख्या इतनी देखी गई है दूर ... दुर्भाग्य से, यह औसत अनुमानक के लिए काम नहीं करता है।)

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

मुझे एक समान रूप के वृद्धिशील मोड अनुमानक को देखना अच्छा लगेगा ...

अपडेट करें

मैंने सिर्फ मनमानी मात्राओं का अनुमान लगाने के लिए वृद्धिशील मंझला अनुमानक को संशोधित किया। सामान्य तौर पर, एक मात्रात्मक फ़ंक्शन ( http://en.wikipedia.org/wiki/Quantile_function ) आपको वह मान बताता है जो डेटा को दो भागों में विभाजित करता है: p और 1-p। निम्न मान इस मान को बढ़ाकर:

quantile += eta * (sgn(sample - quantile) + 2.0 * p - 1.0)

मान p [0,1] के भीतर होना चाहिए। यह अनिवार्य रूप से sgn () फ़ंक्शन के सममित आउटपुट {-1,0,1} को एक तरफ झुकाने के लिए बदलता है, डेटा के नमूनों को दो असमान आकार के डिब्बे में विभाजित करता है (अंश p और 1-p डेटा डेटा की तुलना में कम / अधिक होते हैं) क्रमशः मात्रात्मक अनुमान)। ध्यान दें कि पी = 0.5 के लिए, यह औसत अनुमानक को कम कर देता है।


3
यह मंझला अनुमानक महान है। क्या आप जानते हैं कि 0.25 / 0.75 मात्राओं के लिए समान अनुमानक हैं?
गेसक

1
@ गेसक, सुनिश्चित करें: इनपुट स्ट्रीम को लफ़्फ़ <मंझन और हायफ़ल> माध्यिका में विभाजित करें, और प्रत्येक आधे पर रनिंग-माध्यिका का उपयोग करें।
डेनिस

2
@ गेसक: मैंने किसी भी मात्रात्मक का अनुमान लगाने के लिए एक वृद्धिशील विधि के साथ अपना जवाब अपडेट किया, जहां आप पी को ०.२५, ०. 0.५, या किसी भी मूल्य [०,१] के भीतर सेट कर सकते हैं ।
टायलर स्ट्रीटर

10
यह मीन के लिए बहुत अच्छा काम करता है, लेकिन मैं यह नहीं देख रहा हूं कि यह दूरस्थ रूप से माध्यिका के करीब कैसे पैदा करता है। उदाहरण के लिए मिलीसेक टाइमस्टैम्प का एक क्रम लें: [1328083200000, 981014400000, -628444800000, 318240000000, 949392000000]जिसका एक माध्य है 318240000000। यह समीकरण पिछली माध्यिका को +/- etaसे बदलता है, जिसमें अनुशंसित मूल्य था 0.001। यह इन जैसी बड़ी संख्या के लिए कुछ भी नहीं करने जा रहा है, और यह वास्तव में छोटी संख्या के लिए बहुत बड़ा हो सकता है। etaआप उस प्राथमिकता को कैसे जानेंगे , जो वास्तव में उत्तर को प्राथमिकता दिए बिना आपको सही उत्तर देती है?
मकेमी

9
कल्पना कीजिए कि संख्याओं की इकाइयाँ हैं, उदाहरण के लिए, मिलीमीटर। फिर यह स्पष्ट एटा है (माध्यिका के अनुमान के लिए) माप के रूप में एक ही इकाइयां हैं, और इसलिए 0.001 जैसा एक सामान्य मूल्य का कोई मतलब नहीं है। बेहतर प्रतीत होता है कि एटा को पूर्ण विचलन के चल रहे अनुमान से निर्धारित करना है: प्रत्येक नए मूल्य के लिए sample, अपडेट करें cumadev += abs(sample-median)। फिर सेट करें eta = 1.5*cumadev/(k*k), kअब तक देखे गए नमूनों की संख्या कहां है।
13:13

12

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


FYI करें: पी-स्क्वायर एल्गोरिथ्म C ++ बूस्ट में है <boost/accumulators/statistics/weighted_p_square_cumul_dist.hpp>:।
नील जी

7

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

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


पुन: skewness and kurtosisहाँ। इस लेख को देखें: johndcook.com/blog/skewness_kurtosis
जेसी चिशोल्म

3

प्रश्न में उद्धृत विकिपीडिया लेख में ऑन-लाइन स्केवलेसनेस और कर्टोसिस के सूत्र हैं।

मोड के लिए - मेरा मानना ​​है - इस तरह से ऑन-लाइन करने का कोई तरीका नहीं है। क्यों? मान लें कि आपके इनपुट के सभी मूल्य पिछले एक के अलावा अलग हैं जो पिछले एक को डुप्लिकेट करता है। इस स्थिति में आपको इनपुट में देखे गए सभी मानों को याद रखना होगा ताकि यह पता लगाया जा सके कि अंतिम मान एक देखा गया मान को डुप्लिकेट करता है और इसे सबसे अधिक बार बनाता है।

मंझला के लिए यह लगभग एक ही है - अंतिम इनपुट तक आप यह नहीं जानते हैं कि यदि सभी इनपुट मान अलग-अलग हैं, तो क्या मूल्य औसतक बन जाएगा, क्योंकि यह वर्तमान मंझला से पहले या बाद में हो सकता है। यदि आप इनपुट की लंबाई जानते हैं, तो आप स्मृति में सभी मानों को संग्रहीत किए बिना मध्यिका पा सकते हैं, लेकिन आपको अभी भी उनमें से कई को संग्रहीत करना होगा (मुझे आधे के आसपास अनुमान है) क्योंकि एक बुरा इनपुट अनुक्रम औसतन को भारी रूप से स्थानांतरित कर सकता है दूसरी छमाही संभवतः पहली छमाही के मध्य से किसी भी मूल्य बना रही है।

(ध्यान दें कि मैं केवल सटीक गणना का उल्लेख कर रहा हूं।)


2

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

इन परिस्थितियों में, ऑन-लाइन, कम मेमोरी, क्वांटाइल्स का अनुमान (मध्यमा 0.5 का एक विशेष मामला है) के लिए एल्गोरिदम मौजूद हैं , साथ ही साथ मोड, यदि आपको सटीक उत्तर की आवश्यकता नहीं है। यह सांख्यिकी का एक सक्रिय क्षेत्र है।

मात्रात्मक अनुमान उदाहरण: http://www.computer.org/portal/web/csdl/doi/10.1109/WSC.2006.323014

मोड अनुमान उदाहरण: बिकल डॉ। निरंतर डेटा के मोड और तिरछापन के मजबूत आकलनकर्ता। कम्प्यूटेशनल सांख्यिकी और डेटा विश्लेषण। 2002; 39: 153-163। doi: 10.1016 / S0167-9473 (01) 00057-3।

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

अंतिम सवाल यह है कि क्या आपको वास्तव में स्वयं द्वारा तिरछापन और कुर्तोसिस की आवश्यकता है, या अधिक संभावना है कि कुछ अन्य पैरामीटर जो संभाव्यता वितरण को चिह्नित करने में अधिक विश्वसनीय हो सकते हैं (यह मानते हुए कि आपके पास संभावना वितरण है!)। क्या आप गॉसियन की उम्मीद कर रहे हैं?

क्या आपके पास डेटा को साफ करने के तरीके हैं / इसे अधिकांशतः गॉसियनिश बनाने के लिए डेटा को प्रीप्रोसेस करना है? (उदाहरण के लिए, वित्तीय लेन-देन की मात्रा अक्सर लॉगरिदम लेने के बाद कुछ गॉसियन होती है)। क्या आप परिमित मानक विचलन की अपेक्षा करते हैं? क्या आप वसा पूंछ की उम्मीद करते हैं? क्या राशियों की आपको परवाह है या पूंछ में?


2

हर कोई यह कहता रहता है कि आप मोड को ऑनलाइन तरीके से नहीं कर सकते, लेकिन यह सच नहीं है। येल विश्वविद्यालय के माइकल ई। फिशर और स्टीवन एल। साल्ज़बर्ग द्वारा 1982 में आविष्कार की गई इस बहुत ही समस्या को करने के लिए एक एल्गोरिदम का वर्णन करने वाला एक लेख यहां दिया गया है । लेख से:

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

इसे अधिक एन के साथ शीर्ष एन को खोजने के लिए भी बढ़ाया जा सकता है लेकिन इसे मोड के लिए हल करना चाहिए।


4
यह एक दिलचस्प एल्गोरिथ्म है, लेकिन जब तक मैं कुछ याद नहीं कर रहा हूं, जबकि सभी बहुमत मूल्य मोड होंगे, सभी मोड बहुमत मान नहीं होंगे।
jkebinger

लिंक मर गया है, इसलिए मुझे खुशी है कि विवरण शामिल है। लेकिन, जैसा कि वर्णन किया गया है, काउंटर केवल वेतन वृद्धि करता है यदि बहुसंख्यक उम्मीदवार 2 की घटना 1 घटना के निकट है। कौन सी इम्प्लॉइज ने डेटा सॉर्ट किया। ऑनलाइन (स्ट्रीमिंग) डेटा मामले में इसकी गारंटी नहीं है। बेतरतीब ढंग से ऑर्डर किए गए डेटा के साथ, यह किसी भी मोड को खोजने की संभावना नहीं है।
जेसी चिशोल्म

1

अंतत: यदि आपको वितरण का कोई प्राथमिक ज्ञान नहीं है, तो मुझे लगता है कि आपको सभी मूल्यों को संग्रहीत करना होगा।

कहा कि जब तक आप किसी प्रकार की रोग संबंधी स्थिति से नहीं निपटते, रेमेडियन (रूसो और बैसेट 1990) आपके उद्देश्यों के लिए पर्याप्त रूप से अच्छे हो सकते हैं।

बहुत सरलता से इसमें मंझले बैचों के माध्य की गणना करना शामिल है।


0

माध्यिका और मोड की गणना केवल उपलब्ध निरंतर स्थान का उपयोग करके ऑनलाइन नहीं की जा सकती। हालाँकि, चूंकि माध्यिका और मोड "मात्रात्मक" की तुलना में अधिक "वर्णनात्मक" हैं, इसलिए आप उन्हें डेटा सेट का नमूना करके अनुमान लगा सकते हैं।

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

आप निम्न तकनीक का उपयोग करके माध्यिका का अनुमान भी लगा सकते हैं: प्रत्येक के लिए माध्य अनुमान M [i] स्थापित करें, कहते हैं, डेटा स्ट्रीम में 1,000,000 प्रविष्टियाँ हैं, ताकि M [0] पहली एक मिलियन प्रविष्टियों का M, [1] है। दूसरी दस लाख प्रविष्टियों आदि का माध्यिका तब माध्यिका के रूप में M [0] ... M [k] के माध्यिका का उपयोग करें। यह निश्चित रूप से स्थान बचाता है, और आप यह नियंत्रित कर सकते हैं कि आप पैरामीटर 1,000,000 "ट्यूनिंग" द्वारा अंतरिक्ष का कितना उपयोग करना चाहते हैं। इसे पुनरावर्ती रूप से सामान्यीकृत भी किया जा सकता है।


0

ठीक है यार इन कोशिश करो:

सी ++ के लिए:

double skew(double* v, unsigned long n){
    double sigma = pow(svar(v, n), 0.5);
    double mu = avg(v, n);

    double* t;
    t = new double[n];

    for(unsigned long i = 0; i < n; ++i){
        t[i] = pow((v[i] - mu)/sigma, 3);
    }

    double ret = avg(t, n);

    delete [] t;
    return ret;
}

double kurt(double* v, double n){
    double sigma = pow(svar(v, n), 0.5);
    double mu = avg(v, n);

    double* t;
    t = new double[n];

    for(unsigned long i = 0; i < n; ++i){
        t[i] = pow( ((v[i] - mu[i]) / sigma) , 4) - 3;
    }

    double ret = avg(t, n);

    delete [] t;
    return ret;
}

जहां आप कहते हैं कि आप पहले से ही नमूना विचरण (svar) और औसत (औसत) की गणना कर सकते हैं, आप उन कार्यों के लिए इंगित करते हैं जो।

इसके अलावा, पियर्सन की अंदाजे बयां में एक नजर। इतने बड़े डेटासेट पर यह काफी हद तक समान होगा। 3 (माध्य - माध्यिका) / मानक विचलन आपके पास माध्य - अधिकतम / 2 है

फ्लोट्स मोड का कोई मतलब नहीं है। एक आमतौर पर उन्हें एक साइज के आकार के डिब्बे (जैसे 1/100 * (अधिकतम - मिनट)) में चिपका दिया जाएगा।



-1

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

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


-1
for j in range (1,M):
    y=np.zeros(M) # build the vector y
    y[0]=y0

    #generate the white noise
    eps=npr.randn(M-1)*np.sqrt(var)

    #increment the y vector
    for k in range(1,T):
        y[k]=corr*y[k-1]+eps[k-1]

    yy[j]=y

list.append(y)

मूल प्रश्न को बेहतर ढंग से बाँधने के लिए कुछ स्पष्टीकरण का उपयोग कर सकता है।
एरिका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.