compute-pcorr
v1.0.0
Published
Computes Pearson product-moment correlation coefficients between one or more numeric arrays.
Downloads
1,165
Maintainers
Readme
Correlation Matrix
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
Copyright
Copyright © 2014. Athan Reines.