compute-gmean v1.1.0
Geometric Mean
Computes the geometric mean of an array.
Installation
$ npm install compute-gmeanUsage
var gmean = require( 'compute-gmean' );gmean( arr, accessor )
Computes the geometric mean of an array. For numeric arrays,
var data = [ 1, 5, 2, 3, 7 ];
var mu = gmean( data );
// returns ~2.914For non-numeric arrays, provide an accessor function for accessing numeric values
var arr = [
{'x':1},
{'x':5},
{'x':2},
{'x':3},
{'x':7}
]:
function getValue( d ) {
return d.x;
}
var value = prod( arr, getvalue );
// returns ~2.194Examples
var gmean = require( 'compute-gmean' );
var data = new Array( 1000 );
for ( var i = 0; i < data.length; i++ ) {
data[ i ] = Math.random() * 100;
}
console.log( gmean( data ) );To run the example code from the top-level application directory,
$ node ./examples/index.jsNotes
- Only calculate the geometric mean of an
arrayof positive numbers. The textbook formula for calculating the geometric mean involves taking the product of allarrayelements. If one element is0, then the product is0, even if all other values are>>> 0, yielding a nonsensical geometric mean (and measure of the central tendency). Nonsensical results also arise when anarraycontains negative values leading to a product without positive roots and a geometric mean which does not map to the measure's geometric interpretation. For more information, see Handbook of Parametric and Nonparametric Statistical Procedures: Third Edition by David J. Sheskin. - If an
arraycontains values less than or equal to0, the function returnsNaN. - If provided an empty
array, the function returnsnull. - For arrays exceeding memory constraints, you are encouraged to use streams; see flow-gmean.
Tests
Unit
Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:
$ make testAll new feature development should have corresponding unit tests to validate correct functionality.
Test Coverage
This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:
$ make test-covIstanbul creates a ./reports/coverage directory. To access an HTML version of the report,
$ make view-covLicense
Copyright
Copyright © 2014-2015. Rebekah Smith.