Security News
PyPI Introduces Digital Attestations to Strengthen Python Package Security
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
simple-statistics
Advanced tools
The simple-statistics npm package provides a comprehensive set of statistical tools and functions for performing various statistical analyses. It is designed to be easy to use and covers a wide range of statistical operations, from basic descriptive statistics to more complex regression analysis.
Descriptive Statistics
This feature allows you to calculate basic descriptive statistics such as mean, median, and variance. The code sample demonstrates how to compute these statistics for a given dataset.
const ss = require('simple-statistics');
const data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const mean = ss.mean(data);
const median = ss.median(data);
const variance = ss.variance(data);
console.log(`Mean: ${mean}, Median: ${median}, Variance: ${variance}`);
Probability Distributions
This feature provides functions to work with various probability distributions, including normal and binomial distributions. The code sample shows how to generate a random normal value and a binomial distribution.
const ss = require('simple-statistics');
const normal = ss.randomNormal(0, 1);
const binomial = ss.binomialDistribution(10, 0.5);
console.log(`Random Normal Value: ${normal}, Binomial Distribution: ${binomial}`);
Regression Analysis
This feature allows you to perform regression analysis, including linear regression. The code sample demonstrates how to compute a linear regression line for a given dataset.
const ss = require('simple-statistics');
const data = [[0, 1], [1, 2], [2, 3], [3, 4], [4, 5]];
const regression = ss.linearRegression(data);
const regressionLine = ss.linearRegressionLine(regression);
console.log(`Regression Line: y = ${regression.m}x + ${regression.b}`);
Hypothesis Testing
This feature provides functions for performing hypothesis testing, such as t-tests. The code sample shows how to perform a two-sample t-test on two datasets.
const ss = require('simple-statistics');
const tTest = ss.tTestTwoSample([1, 2, 3, 4, 5], [6, 7, 8, 9, 10]);
console.log(`T-Test Result: ${tTest}`);
jstat is a JavaScript library for statistical operations. It offers a wide range of statistical functions similar to simple-statistics, including descriptive statistics, probability distributions, and hypothesis testing. However, jstat has a more extensive API and supports matrix operations, making it suitable for more complex statistical analyses.
mathjs is a comprehensive mathematics library for JavaScript and Node.js. It includes a variety of mathematical functions, including statistical operations. While it is not solely focused on statistics like simple-statistics, it provides a broader range of mathematical tools, making it a versatile choice for projects that require both statistical and general mathematical computations.
ssjs (Statistical Software in JavaScript) is another library that provides statistical functions for JavaScript. It offers similar functionalities to simple-statistics, such as descriptive statistics and probability distributions. However, ssjs is less popular and has a smaller community compared to simple-statistics, which may affect the availability of support and updates.
A project to learn about and make simple reference implementations of statistics algorithms.
This code is designed to work in browsers (including IE) as well as in node.js.
// Require simple statistics
var ss = require('simple-statistics');
// The input is a simple array
var list = [1, 2, 3];
// Many different descriptive statistics are supported
var sum = ss.sum(list),
mean = ss.mean(list),
min = ss.min(list),
geometric_mean = ss.geometric_mean(list),
max = ss.max(list),
quantile = ss.quantile(0.25);
// For a linear regression, it's a two-dimensional array
var data = [ [1, 2], [2, 3] ];
// simple-statistics can produce a linear regression and return
// a friendly javascript function for the line.
var line = ss.linear_regression()
.data(data)
.line();
// get a point along the line function
line(0);
var line = ss.linear_regression()
// Get the r-squared value of the line estimation
ss.r_squared(data, line);
This is optional and not used by default. You can opt-in to mixins
with ss.mixin()
.
This mixes simple-statistics
methods into the Array prototype - note that
extending native objects is a
tricky move.
This will only work if defineProperty
is available, which means modern browsers
and nodejs - on IE8 and below, calling ss.mixin()
will throw an exception.
// mixin to Array class
ss.mixin();
// The input is a simple array
var list = [1, 2, 3];
// The same descriptive techniques as above, but in a simpler style
var sum = list.sum(),
mean = list.mean(),
min = list.min(),
max = list.max(),
quantile = list.quantile(0.25);
var bayes = ss.bayesian();
bayes.train({ species: 'Cat' }, 'animal');
bayes.score({ species: 'Cat' });
// { animal: 1 }
To use it in browsers, grab simple_statistics.js. To use it in node, install it with npm or add it to your package.json.
npm install simple-statistics
To use it with component,
component install tmcw/simple-statistics
FAQs
Simple Statistics
The npm package simple-statistics receives a total of 105,784 weekly downloads. As such, simple-statistics popularity was classified as popular.
We found that simple-statistics demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.