16 KiB
Change Log
All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
6.1.1 (2018-09-24)
Bug Fixes
- permutationTest: Add TypeScript definition for permutationTest (e7fa9db), closes #298
- array quantile on certain kinds of input (#334) (e9d007e)
6.1.0 (2018-06-23)
Features
- gammaln (9d03631)
6.0.1 (2018-05-11)
6.0.0 (2018-04-30)
Bug Fixes
build
Features
- Gamma Function (39c8ecd)
BREAKING CHANGES
- package.json: simple-statistics is no longer supported as a component module or a bower module. All other forms of support - script tag, unpkg, npm - continue.
5.4.0 (2018-04-21)
Features
- Permutation test (1be011e)
5.3.1 (2018-03-23)
Bug Fixes
- Someone simple-statistics dependend on itself... (12acd40)
5.3.0 (2018-03-23)
Features
5.2.1 (2017-12-20)
5.2.0 (2017-11-29)
Features
5.1.0 (2017-10-23)
Features
- Add TypeScript definition (688538b)
5.0.1 (2017-10-15)
Bug Fixes
5.0.0 (2017-09-26)
Features
BREAKING CHANGES
- simple-statistics now uses ES6 modules internally, and exposes a entry point for other modules to use it as an ES6 module.
This means:
- If you use Rollup or another library that supports the
jsnext:mainormodulefields of package.json, you'll likely automatically start using this feature. When you use simple-statistics as an ES6 module,import {min} from "simple-statistics"and other imports of only a few of its methods will automatically do 'tree-shaking' and only pull in the parts you use (if your bundling tool supports tree-shaking) - Sub-requiring parts of simple-statistics, like
require('simple-statistics/min')is deprecated and will not work. Its components are now written with ES6 syntax.
4.1.1 (2017-08-05)
Bug Fixes
- expose BayesianClassifier & PerceptronModel instead of bayesian and perceptron (1d03671)
4.1.0 (2017-04-27)
Features
- sampleKurtosis (1d9eec2)
4.0.0 (2017-04-25)
Bug Fixes
Performance Improvements
- binomialDistribution: avoid expensive factorial calculations (#205) (525f9c0)
- core: Improve performance of min, max, sumNthPowerDeviations, variance, sampleVariance (#195) (9d2569a)
- distributions: return array instead of object (#209) (6c5df5f)
- poissonDistribution: avoid expensive factorial calculation (#206) (b34aceb)
- poissonDistribution: use Math.exp instead of Math.pow (#208) (6491dfa)
- sampleSkewness: Improve sampleSkewness performance (#197) (03d37eb)
- sum: Switch from Kahan to Kahan-Babuska algorithm (1b42d7f)
BREAKING CHANGES
- Removes .mixin(). Instead use simple-statistics in a functional style.
- distributions: The return value of bernoulliDistribution, binomialDistribution, and poissonDistribution is no longer an Object with number keys, it is now an Array of numbers.
3.0.0 (2017-04-06)
Breaking change: before this release, simple-statistics would return NaN
when provided with invalid input. After 3.0.0, simple-statistics will throw
exceptions when provided with invalid input. If you previously used isNaN to
test for these error cases, switch to using try and catch, or make sure
that valid input is given to simple-statistics.
Features
- mean: combineMeans, a method for combining calculated means (d9e3ebc)
- mean: subtractFromMean, a method to remove a value from the mean (afe76e9)
- variance: combineVariances, a method for combining pre-calculated variances of two dataset (68133f7)
2.5.0 (2017-02-24)
Features
- mean: addToMean, a method to update an mean with a new element (b6637b4)
2.4.0 (2017-02-22)
Bug Fixes
- build: Ignore conventional-changelog-core for Flow (4874868)
Features
- mode: Implement modeFast, an indexed mode implementation (#183) (59b7191)
2.3.0 (2017-02-17)
Features
- core: sampleWithReplacement (#174) (a8d05d1)
CHANGELOG
2.2.0
- Improved Ckmeans algorithm from the updated R project that dramatically increases performance.
- Adds
permutationHeapmethod for computing all permutations of an array. - Adds
combinationsfor combinations without replacement - Adds
combinationsReplacementfor combinations with replacement
2.1.0
- Adds
bisectmethod that implements the bisection method for root-finding. Thanks Jamie Neubert Pedersen for the contribution!
2.0.0
New features:
product: returns the product of a series of numbersmedianSorted: exposes the internal method ofmedianthat only operates on sorted arrays and works in constant timemodeSorted: exposes the internal method ofmodeand works in linear time.
Specifications:
- Adds Flow annotations to all methods, allowing up-front typechecking if you use Flow in your application.
Changes:
- Invalid input now uniformly produces the value
NaNinstead of previously a mix ofnullandundefined. - The method
sortedUniqueCountis now calleduniqueCountSortedto match the other sorted methods,medianSortedandmodeSorted
Fixes:
equalIntervalBreakswas not exported byindex.js, and now is.
1.0.1
Fixes:
- Fixes to ckmeans algorithm (thanks to @llimllib) (#125)
Housekeeping:
- Add keywords to package. Fixes #120
- Standardize indentation, add example for epsilon
- Browser testing with Sauce Labs
Bundle size optimizations:
- Add external sourcemaps for minified and unminified standalone bundles
- Use bundle-collapser for smaller bundles
- Indicate numericSort as an internal method.
1.0.0
Breaking Changes
- Removed the .m() and .b() shortcuts from the linear regression
class. Use
.mb().band.mb().minstead. - linearRegression is now a function, and linearRegressionLine is a separate function.
UPGRADING
Linear Regression
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
Jenks -> ckmeans
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];
});
BayesModelis now a classPerceptronModelis now a class, and theweightsandbiasmembers 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_squaredis now accessible asss.rSquared
New Features
- Ckmeans replaces Jenks
sortedUniqueCountprovides an extremely fast method for counting unique values of sorted arrays.sumNthPowerDeviationsis now exposed, providing a simple way to calculate the fundamental aspect of measures like variance and skewness.
Non-Breaking Changes
- 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.
0.9.2
- Improved test coverage
- Switched linting from JSHint to eslint and fixed style issues this uncovered.
0.9.1
- Fixes
.jenkscorner cases.
0.9.0
- Adds
.samplefor simple random sampling - Adds
.shuffleand.shuffleInPlacefor random permutations - Adds
.chunkfor splitting arrays into chunked subsets
0.8.1
- fixes a bug in
modethat favored the last new number
0.8.0
mixincan now take an array in order to mixin functions into a single array instance rather than the global Array prototype.
0.7.0
- Adds
simple_statistics.harmonicMeanthanks to jseppi
0.6.0
- Adds
simple_statistics.quantileSortedthanks to rluta simple_statistics.quantilenow accepts a sorted list of quantiles as a second argument- Improved test coverage
0.5.0
- Adds
simple_statistics.cumulativeStdNormalProbabilityby doronlinder - Adds
simple_statistics.zScoreby doronlinder - Adds
simple_statistics.standardNormalTable
0.4.0
- 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
0.3.0
- Adds
simple_statistics.jenks() - Adds
simple_statistics.jenksMatrices() - Improves test coverage and validation
0.2.0
- Adds
simple_statistics.quantile() - Adds
simple_statistics.mixin() - Adds
simple_statistics.geometricMean() - Adds
simple_statistics.sampleVariance() - Adds
simple_statistics.sampleCovariance()
0.1.0
- Adds
simple_statistics.tTest() - Adds
simple_statistics.min() - Adds
simple_statistics.max()