- Removed the .m() and .b() shortcuts from the linear regression
class. Use
.mb().b
and.mb().m
instead. - linearRegression is now a function, and linearRegressionLine is a separate function.
UPGRADING
Before:
var l = ss.linear_regression().data([[0, 0], [1, 1]]);
l.line()(0); // 0
After:
var line = ss.linearRegressionLine(ss.linearRegression([[0, 0], [1, 1]]));
line(0); // 0
The implementation of Jenks natural breaks was removed: an implementation of Ckmeans, an improvement on its technique, is added. Ckmeans should work better for nearly all Jenks usecases.
Before:
ss.jenks([1, 2, 4, 5, 7, 9, 10, 20], 3) //= [1, 7, 20, 20]
After:
ss.ckmeans([1, 2, 4, 5, 7, 9, 10, 20], 3))
[ [ 1,
2,
4,
5,
7,
9 ],
[ 10 ],
[ 20 ] ]
Instead of class breaks, ckmeans returns clustered data. Class breaks can be derived by taking the first value from each cluster:
var breaks = ss.ckmeans([1, 2, 4, 5, 7, 9, 10, 20], 3)).map(function(cluster) {
return cluster[0];
});
BayesModel
is now a classPerceptronModel
is now a class, and theweights
andbias
members are accessable as properties rather than methods.- All multi-word method names are now camelCase rather than underscore_cased:
this means that a method like
ss.r_squared
is now accessible asss.rSquared
- Ckmeans replaces Jenks
sortedUniqueCount
provides an extremely fast method for counting unique values of sorted arrays.sumNthPowerDeviations
is now exposed, providing a simple way to calculate the fundamental aspect of measures like variance and skewness.
- JSDoc documentation throughout
- Each function is now its own file, and simple-statistics is assembled with CommonJS-style require() statements. simple-statistics can still be used in a browser with browserify.
- The standard normal table is now calculated using the cumulative distribution function, rather than hardcoded.
- Improved test coverage
- Switched linting from JSHint to eslint and fixed style issues this uncovered.
- Fixes
.jenks
corner cases.
- Adds
.sample
for simple random sampling - Adds
.shuffle
and.shuffleInPlace
for random permutations - Adds
.chunk
for splitting arrays into chunked subsets
- fixes a bug in
mode
that favored the last new number
mixin
can now take an array in order to mixin functions into a single array instance rather than the global Array prototype.
- Adds
simple_statistics.harmonicMean
thanks to jseppi
- Adds
simple_statistics.quantileSorted
thanks to rluta simple_statistics.quantile
now accepts a sorted list of quantiles as a second argument- Improved test coverage
- Adds
simple_statistics.cumulativeStdNormalProbability
by doronlinder - Adds
simple_statistics.zScore
by doronlinder - Adds
simple_statistics.standardNormalTable
- Adds
simple_statistics.median_absolute_deviation()
by siculars - Adds
simple_statistics.iqr()
by siculars - Adds
simple_statistics.skewness()
by Doron Linder - Lower-level accessors for linear regression allow users to do the line equation themselves
- Adds
simple_statistics.jenks()
- Adds
simple_statistics.jenksMatrices()
- Improves test coverage and validation
- Adds
simple_statistics.quantile()
- Adds
simple_statistics.mixin()
- Adds
simple_statistics.geometricMean()
- Adds
simple_statistics.sampleVariance()
- Adds
simple_statistics.sampleCovariance()
- Adds
simple_statistics.tTest()
- Adds
simple_statistics.min()
- Adds
simple_statistics.max()