stats-lite
A fairly light statistical package for Node.js. Works with numeric arrays, and will automatically filter out non-numeric values and attempt to convert string numeric values.
Example
var stats = require("stats-lite" height="50%" width="100%")
var dice = require("dice")
var rolls = []
for (var i = 0; i < 3000; i++) {
rolls.push(dice.sum(dice.roll("2d6")))
}
console.log("sum: %s", stats.sum(rolls))
console.log("mean: %s", stats.mean(rolls))
console.log("median: %s", stats.median(rolls))
console.log("mode: %s", stats.mode(rolls))
console.log("variance: %s", stats.variance(rolls))
console.log("standard deviation: %s", stats.stdev(rolls))
console.log("85th percentile: %s", stats.percentile(rolls, 0.85))
API
All of the exported functions take vals
which is an array of numeric values. Non-numeric values will be removed, and string numbers will be converted to Numbers.
NOTE: This will impact some operations, e.g. mean([null, 1, 2, 3])
will be calculated as mean([1, 2, 3])
, (e.g. 6 / 3 = 2
, NOT 6 / 4 = 1.5
)
numbers(vals)
Accepts an array of values and returns an array consisting of only numeric values from the source array. Converts what it can and filters out anything else. e.g.
numbers(["cat", 1, "22.9", 9])
sum(vals)
Sum the values in the array.
mean(vals)
Calculate the mean average value of vals.
median(vals)
Calculate the median average value of vals.
mode(vals)
Calculate the mode average value of vals.
variance(vals)
Calculate the variance from the mean.
stdev(vals)
Calculate the standard deviation of the values from the mean.
percentile(vals, ptile)
Calculate the value reprecenting the desired percentile (0 < ptile <= 1)
. Uses the Estimation method to interpolate non-member percentiles.
LICENSE
MIT