incrrss

Compute the residual sum of squares (RSS) incrementally.

The residual sum of squares (also referred to as the sum of squared residuals (SSR) and the sum of squared errors (SSE)) is defined as

upper R upper S upper S equals sigma-summation Underscript i equals 0 Overscript n minus 1 Endscripts left-parenthesis y Subscript i Baseline minus x Subscript i Baseline right-parenthesis squared

Usage

var incrrss = require( '@stdlib/stats/incr/rss' );

incrrss()

Returns an accumulator function which incrementally computes the residual sum of squares.

var accumulator = incrrss();

accumulator( [x, y] )

If provided input values x and y, the accumulator function returns an updated residual sum of squares. If not provided input values x and y, the accumulator function returns the current residual sum of squares.

var accumulator = incrrss();

var r = accumulator( 2.0, 3.0 );
// returns 1.0

r = accumulator( -1.0, -4.0 );
// returns 10.0

r = accumulator( -3.0, 5.0 );
// returns 74.0

r = accumulator();
// returns 74.0

Notes

  • Input values are not type checked. If provided NaN or a value which, when used in computations, results in NaN, the accumulated value is NaN for all future invocations. If non-numeric inputs are possible, you are advised to type check and handle accordingly before passing the value to the accumulator function.

Examples

var randu = require( '@stdlib/random/base/randu' );
var incrrss = require( '@stdlib/stats/incr/rss' );

var accumulator;
var v1;
var v2;
var i;

// Initialize an accumulator:
accumulator = incrrss();

// For each simulated datum, update the residual sum of squares...
for ( i = 0; i < 100; i++ ) {
    v1 = ( randu()*100.0 ) - 50.0;
    v2 = ( randu()*100.0 ) - 50.0;
    accumulator( v1, v2 );
}
console.log( accumulator() );