की गणना के लिए ऑनलाइन एल्गोरिदम मैं एक वेक्टर online के पूर्ण विचलन की गणना करने की कोशिश कर रहा हूं, जैसा कि पूरे वेक्टर का उपयोग किए बिना वेक्टर में प्रत्येक आइटम प्राप्त होता है।पूर्ण विचलन
मुझे पता है कि एक वेक्टर के विचरण को इस तरीके से गणना की जा सकती: निरपेक्ष विचलन एक वेक्टर में प्रत्येक आइटम के बीच पूर्ण अंतर और मतलब का योग है। विचरण निरपेक्ष विचलन के समान है, लेकिन प्रत्येक अंतर चुकता है:
इस प्रकार
विचरण के लिए ऑनलाइन एल्गोरिथ्म है:
n = 0
mean = 0
M2 = 0
def calculate_online_variance(x):
n = n + 1
delta = x - mean
mean = mean + delta/n
M2 = M2 + delta*(x - mean) # This expression uses the new value of mean
variance_n = M2/n
return variance_n
वहाँ पूर्ण की गणना के लिए इस तरह के एक एल्गोरिथ्म है विचलन? मैं खुद को एक पुनरावर्ती परिभाषा तैयार नहीं कर सकता, लेकिन बुद्धिमान सिर प्रबल हो सकते हैं!
+1: दिलचस्प ऑनलाइन विचरण गणना एल्गोरिथ्म। – EOL
ध्यान दें कि ओपी द्वारा दिए गए भिन्नता के लिए ऑनलाइन एल्गोरिदम एक अनुमान है। –
@ जस्टिन छील सभी फ़्लोटिंग पॉइंट गणना अनुमान हैं। यह एल्गोरिदम वास्तव में अन्य दृष्टिकोणों की तुलना में कई वास्तविक दुनिया स्थितियों में अधिक सटीक है: http://www.johndcook.com/standard_deviation.html – fmark