compute-pcorr

Computes Pearson product-moment correlation coefficients between one or more numeric arrays.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
compute-pcorr
1.0.08 years ago8 years agoMinified + gzip package size for compute-pcorr in KB

Readme

Correlation Matrix
!NPM versionnpm-imagenpm-url !Build Statustravis-imagetravis-url !Coverage Statuscoveralls-imagecoveralls-url !Dependenciesdependencies-imagedependencies-url
Computes Pearson product-moment correlation coefficients between one or more numeric arrays.

Installation

$ npm install compute-pcorr

For use in the browser, use browserify.

Usage

To use the module,
var pcorr = require( 'compute-pcorr' );

pcorr( arr1, arr2,... )

Computes Pearson product-moment correlation coefficients between one or more numeric arrays.
var x = [ 1, 2, 3, 4, 5 ],
	y = [ 5, 4, 3, 2, 1 ];

var mat = pcorr( x, y );
// returns [[1,-1],[-1,1]]

Note: for univariate input, the returned correlation matrix contains a single element equal to unity.
If the number of arrays is dynamic, you may want the flexibility to compute linear correlation coefficients for an arbitrary array collection. To this end, the function also accepts an array of arrays.
var mat = pcorr( [x,y] );
// returns [[1,-1],[-1,1]]

Notes

Beware of floating point errors. Computing a linear correlation coefficient requires computing square roots and involves division. Both operations can introduce small errors during calculation.
Efforts have been made to ensure no value exceeds +-1. Note, however, that perfectly correlated arrays are not guaranteed to yield precise correlation coefficients of +-1.

Examples

var pcorr = require( 'compute-pcorr' );

// Simulate some data...
var N = 100,
	x = new Array( N ),
	y = new Array( N ),
	z = new Array( N );

for ( var i = 0; i < N; i++ ) {
	x[ i ] = Math.round( Math.random()*100 );
	y[ i ] = Math.round( Math.random()*100 );
	z[ i ] = 100 - x[ i ];
}
var mat = pcorr( x, y, z );
console.log( mat );

To run the example code from the top-level application directory,
$ node ./examples/index.js

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 test

All 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-cov

Istanbul creates a ./reports/coverage directory. To access an HTML version of the report,
$ make view-cov

License

MIT license.

Copyright

Copyright © 2014. Athan Reines.