Package Exports
- lazy-stats
- lazy-stats/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (lazy-stats) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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
.N
number: total samples received.data
Float64Array: 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