[Numpy-discussion] online (1-shot) calculation of variance (complex)

Neal Becker ndbecker2 at gmail.com
Thu May 8 19:05:35 EDT 2008


Robert Kern wrote:

> On Thu, May 8, 2008 at 5:45 PM, Neal Becker <ndbecker2 at gmail.com> wrote:
>> I saw some links on 1-pass recursive calculation of mean/variance.  When
>> I tried the algorithms, it did not seem to give correct results for
>> complex
>> values.  Anyone know how to correctly implement this?
> 
> Well, exactly what did you try?
> 
Here's my python translation:
It seems to give a variance that just converges to 0 given a vector of
gaussian r.v.:

class stat2 (object):
    def __init__(self):
        self.n = 0
        self._mean = 0
        self.M2 = 0

    def __iadd__(self, x):
        self.n += 1
        delta = x - self._mean
        self._mean += delta/self.n
        self.M2 += delta*(x - self._mean)      # This expression uses the
new value of mean

    def mean(self):
        return self._mean

    def var(self):
        return self.M2/(self.n - 1)





More information about the NumPy-Discussion mailing list