incrmstdev

Compute a moving corrected sample standard deviation incrementally.

Usage

var incrmstdev = require( '@stdlib/math/stats/incr/mstdev' );

incrmstdev( window )

Returns an accumulator function which incrementally computes a moving corrected sample standard deviation. The window parameter defines the number of values over which to compute the moving corrected sample standard deviation.

var accumulator = incrmstdev( 3 );

accumulator( [x] )

If provided an input value x, the accumulator function returns an updated corrected sample standard deviation. If not provided an input value x, the accumulator function returns the current corrected sample standard deviation.

var s = accumulator();
// returns null

// Fill the window...
s = accumulator( 2.0 ); // [2.0]
// returns 0.0

s = accumulator( 1.0 ); // [2.0, 1.0]
// returns ~0.7071

s = accumulator( 3.0 ); // [2.0, 1.0, 3.0]
// returns 1.0

// Window begins sliding...
s = accumulator( -7.0 ); // [1.0, 3.0, -7.0]
// returns ~5.29

s = accumulator( -5.0 ); // [3.0, -7.0, -5.0]
// returns ~5.29

s = accumulator();
// returns ~5.29

Notes

Examples

var randu = require( '@stdlib/random/base/randu' );
var incrmstdev = require( '@stdlib/math/stats/incr/mstdev' );

var accumulator;
var v;
var i;

// Initialize an accumulator:
accumulator = incrmstdev( 5 );

// For each simulated datum, update the moving corrected sample standard deviation...
for ( i = 0; i < 100; i++ ) {
    v = randu() * 100.0;
    accumulator( v );
}
console.log( accumulator() );