यह @chmike उत्तर में जोड़ना है।
यह विधि मानक विचलन के लिए बीपी वेल्फ़र्ड के ऑनलाइन एल्गोरिथ्म के समान प्रतीत होती है जो माध्य की गणना भी करती है। जॉन कुक यहां एक अच्छी व्याख्या देता है । टोनी फिंच 2009 में एक घातीय चलती औसत और मानक विचलन के लिए एक विधि प्रदान करता है:
diff := x – mean
incr := alpha * diff
mean := mean + incr
variance := (1 - alpha) * (variance + diff * incr)
पहले से पोस्ट किए गए उत्तर पर झांकना और एक विस्तारित चलती खिड़की को शामिल करने के लिए उस पर विस्तार करना:
init():
meanX = 0, meanY = 0, varX = 0, covXY = 0, n = 0,
meanXY = 0, varY = 0, desiredAlpha=0.01 #additional variables for correlation
update(x,y):
n += 1
alpha=max(desiredAlpha,1/n) #to handle initial conditions
dx = x - meanX
dy = y - meanY
dxy = (x*y) - meanXY #needed for cor
varX += ((1-alpha)*dx*dx - varX)*alpha
varY += ((1-alpha)*dy*dy - varY)*alpha #needed for corXY
covXY += ((1-alpha)*dx*dy - covXY)*alpha
#alternate method: varX = (1-alpha)*(varX+dx*dx*alpha)
#alternate method: varY = (1-alpha)*(varY+dy*dy*alpha) #needed for corXY
#alternate method: covXY = (1-alpha)*(covXY+dx*dy*alpha)
meanX += dx * alpha
meanY += dy * alpha
meanXY += dxy * alpha
getA(): return covXY/varX
getB(): return meanY - getA()*meanX
corXY(): return (meanXY - meanX * meanY) / ( sqrt(varX) * sqrt(varY) )
उपरोक्त "कोड" में, वांछित अल्पफा 0 पर सेट किया जा सकता है और यदि ऐसा है, तो कोड घातीय भार के बिना काम करेगा। यह एक वांछित विंडो आकार के लिए Modified_moving_apret द्वारा सुझाए गए अनुसार वांछित 1 को वांछितअल्प को सेट करने का सुझाव दिया जा सकता है ।
साइड सवाल: ऊपर की वैकल्पिक गणनाओं पर, कोई भी टिप्पणी जिस पर एक सटीक दृष्टिकोण से बेहतर है?
संदर्भ:
chmike (2013) https://stats.stackexchange.com/a/79845/70282
कुक, जॉन (nd) सटीक रूप से कंप्यूटिंग विचरण चल रहा है http://www.johndcook.com/blog/standard_deviation/
फिंच, टोनी। (2009) भारित माध्य और विचरण की वृद्धिशील गणना। https://fanf2.user.srcf.net/hermes/doc/antiforgery/stats.pdf
विकिपीडिया। (nd) Welford का ऑनलाइन एल्गोरिथ्म https://en.wikipedia.org/wiki/Al एल्गोरिदम_for_calculating_variance#Online_al एल्गोरिदम