Compute an incremental sample covariance while ignoring
NaN
values.
var nancovariance = require( '@stdlib/stats/incr/nancovariance' );
Returns an accumulator function which incrementally computes a sample covariance, ignoring any input pairs that contain NaN values. The accumulator returns null until at least two valid data pairs have been provided.
var accumulator = nancovariance();
If provided a pair of numeric input values [x, y]
, the accumulator updates and returns the sample covariance. If not provided any input values, the accumulator returns the current sample covariance.
var accumulator = nancovariance();
var cov = accumulator();
// returns null
cov = accumulator( 2.0, 1.0 );
// returns null
cov = accumulator( NaN, 1.0 );
// returns null
cov = accumulator( 4.0, 5.0 );
// returns 4.0
cov = accumulator();
// returns 4.0
var randu = require( '@stdlib/random/base/randu' );
var nancovariance = require( '@stdlib/stats/incr/nancovariance' );
var accumulator;
var i;
var x;
var y;
accumulator = nancovariance();
for ( i = 0; i < 100; i++ ) {
x = ( randu() < 0.2 ) ? NaN : randu() * 100.0;
y = ( randu() < 0.2 ) ? NaN : randu() * 100.0;
accumulator( x, y );
}
console.log( accumulator() );
@stdlib/stats/incr/nansum
: compute a sum incrementally, ignoring NaN values.