क्या मूल्यों के समुच्चय के माध्य, विधा, तिरछापन और / या कर्टोसिस का अनुमान लगाने के लिए एक एल्गोरिथ्म है, लेकिन इसके लिए एक ही बार में सभी मूल्यों को संग्रहीत करने की आवश्यकता नहीं है?
मैं बुनियादी आँकड़ों की गणना करना चाहता हूँ:
- माध्य: अंकगणितीय औसत
- विचरण: औसत से चुकता विचलन का औसत
- मानक विचलन: विचरण का वर्गमूल
- माध्यिका: मान जो संख्याओं के बड़े आधे को छोटे आधे से अलग करता है
- मोड: सबसे लगातार मूल्य सेट में मिला
- तिरछापन: टीएल; डॉ
- कुर्टोसिस: टीएल; डॉ
इनमें से किसी की गणना के लिए मूल सूत्र ग्रेड-स्कूल अंकगणित हैं, और मैं उन्हें जानता हूं। कई आँकड़े पुस्तकालय हैं जो उन्हें लागू करते हैं, साथ ही साथ।
मेरी समस्या बड़ी संख्या में (अरबों) मूल्यों की है जो मैं संभाल रहा हूं: पायथन में काम करना, मैं अरबों तत्वों के साथ सिर्फ एक सूची या हैश नहीं बना सकता। भले ही मैंने इसे 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 के रूप में सटीकता की समस्याएं जल्दी ही पूर्णांक सीमा या फ्लोट परिशुद्धता से बड़ी हो जाती हैं), लेकिन यह मूल रूप से मुझे वह देता है जो मुझे चाहिए, प्रत्येक सेट में प्रत्येक मूल्य को संग्रहीत किए बिना।
लेकिन मुझे नहीं पता कि अतिरिक्त आँकड़ों (मीडियन, मोड, स्केवनेस, कुर्टोसिस) के आकलन के लिए समान तकनीक मौजूद है या नहीं। मैं एक पक्षपाती अनुमानक के साथ रह सकता था, या यहां तक कि एक विधि जो एक निश्चित डिग्री तक सटीकता से समझौता करती है, जब तक कि एन मूल्यों को संसाधित करने के लिए आवश्यक मेमोरी ओ (एन) से काफी कम होती है।
मुझे एक मौजूदा सांख्यिकी पुस्तकालय की ओर इशारा करने से मदद मिलेगी, अगर पुस्तकालय के पास "ऑन-लाइन" इन कार्यों में से एक या अधिक की गणना करने के लिए फ़ंक्शन हैं।