Collecting statistics for time dependent data?

John Lamb J.D.Lamb@btinternet.com
Thu Dec 9 19:31:00 GMT 2004


Raimondo Giammanco wrote:
> Hello,
> 
>  I was wondering if there is a way to compute "running" statistics with
> gsl.
> 
Yes you can do it, but there's nothing in GSL that does it and its eay 
enough that you don't need GSL. Something like (untested)

double update_mean( double* mean, int* n, double x ){
   if( *n == 1 )
     *mean = x;
   else
     *mean = (1 - (double)1 / *n ) * *mean + x / n;
}

will work and you can derive a similar method for updating the variance 
using the usual textbook formula.

var[x] = (1/n) sum x^2_i - mean(x)^2

I don't know if there is a method that avoids the rounding errors. I 
don't know why so many textbooks repeat this formula without the 
slightest warning that it can go so badly wrong.

-- 
JDL



More information about the Gsl-discuss mailing list