stats-analysis

Engineering statistics and data analysis

Statistics and Data Analysis

Mini javascript statistics library for nodejs or the browser.
No production dependencies.

  • Standard Deviation
  • Mean
  • Median (sorts before calculating)
  • Median Absolute Deviation (MAD)
  • Outlier Detection & Filtering using Iglewicz and Hoaglin's method (MAD) - Use this if the order of your data does not matter.
  • Outlier Detection & Filtering using Median Differencing (Default method) - Use this if the order of your data matters. This looks at the difference between adjacent points best for time series data.
$ npm install stats-analysis
 
var stats = require("./stats-analysis") // include statistics library 
<script src="https://npmcdn.com/stats-analysis"></script>
window.stats
var arr = [-2, 1, 2, 3, 3, 4, 15]
 
//standard deviation 
stats.stdev(arr).toFixed(2) * 1 // Round to 2dp and convert to number 
> 4.98
 
//mean 
stats.mean(arr).toFixed(2) * 1
> 3.57
 
//median 
stats.median(arr)
> 2
 
//median absolute deviation 
stats.MAD(arr)
> 1
 
// Outlier detection. Returns indexes of outliers 
stats.indexOfOutliers(arr)  // Default theshold of 3 
> [6]
 
stats.indexOfOutliers(arr, 6) // Supply higher threshold to allow more outliers. 
 
// Outlier filtering. Returns array with outliers removed. 
stats.filterOutliers(arr)
> [-2, 1, 2, 3, 3, 4]

To use different outlier methods:

stats.filterOutliers(arr, stats.outlierMethod.medianDiff)
stats.filterOutliers(arr, stats.outlierMethod.medianDiff, 6) // Different threshold
stats.filterOutliers(arr, stats.outlierMethod.MAD) // Default
 
stats.indexOfOutliers(arr, stats.outlierMethod.medianDiff)
stats.indexOfOutliers(arr, stats.outlierMethod.medianDiff, 6) // Different threshold
stats.indexOfOutliers(arr, stats.outlierMethod.MAD) // Default

Mocha is used as the testing framework.
Istanbul and codecov used for code coverage.

Commands:

$ npm install   // Grab mocha 
$ npm run lint  // Ensure code consistency with standard 
$ npm test      // Run tests 
$ npm run cov   // Run code coverage. (Ensure 100%) 

Engineering statistics handbook:
http://www.itl.nist.gov/div898/handbook/index.htm

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Make changes and ensure tests and code coverage all pass.
  4. Commit your changes: git commit -m 'Add some feature'
  5. Push to the branch: git push origin my-new-feature
  6. Submit a pull request :D

MIT