4.3.0 • Published 2 years ago
lazy-stats v4.3.0
lazy-stats
online average, variance, covariance and correlation
• Example • Features • Limitations • API • License
Example
import LazyStats from 'lazy-stats'
const stat = new LazyStats(3), // for 3 random variables
stat.push(2,1,0)
stat.push([1,1,1])
stat.push(0,1,2)
const average0 = stat.ave(0),
average1 = stat.ave(1),
variance2 = stat.var(2),
covariance12 = stat.cov(1,2),
correlation20 = stat.cor(2,0)Features
- very small code and footprint for large number of instances
- only stores the summary values (average and covariances)
- uses Welford-style online single pass variance and covariance algorithm
- less than 100 sloc, no dependencies
Limitations
- all variables must have the same number of samples, pushed at the same time
- no skew and kurtosis
API
Properties
.Nnumber: total samples received.dataFloat64Array: transferable memorycopy = new LazyStats( main.data )
Methods
.push(number0, number1, ...) => {number} sampleSize- add sample value(s) and returns the sampe size.push([number0, number1, ...]) => {number} sampleSize- add array of sample value(s) and returns the sampe size.ave(index) => {number}- average of a given dataset.var(index) => {number}- variance of a given dataset.dev(index) => {number}- standard deviation of a given dataset.cov(j, i) => {number}- covariance between two datasets.cor(j, i) => {number}- correlation between two datasets.slope(j, i) => {number}- slope fory=set[j]andx=set[i].intercept(j, i) => {number}- intercept fory=set[j]andx=set[i].reset() => {object} this- clears all sums and counts back to 0
License
Released under the MIT License