@bmancini55/finance
Version:
Finance utilities for JavaScript
75 lines • 1.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.calcZScore = exports.calcStdDev = exports.calcVariance = exports.calcDeviance = exports.calcMean = exports.calcSum = void 0;
/**
* Calculates the sum of a vector
*/
function calcSum(vals) {
let sum = 0;
for (const val of vals) {
sum += val;
}
return sum;
}
exports.calcSum = calcSum;
/**
* Calculates the mean of a list a vector
*/
function calcMean(vals) {
const sum = calcSum(vals);
return sum / vals.length;
}
exports.calcMean = calcMean;
/**
* Calculates the deviance of each value from the mean
* @returns deviance off mean
*/
function calcDeviance(vals, mean) {
if (mean === undefined) {
mean = calcMean(vals);
}
const devs = new Array(vals.length);
for (let i = 0; i < vals.length; i++) {
devs[i] = vals[i] - mean;
}
return devs;
}
exports.calcDeviance = calcDeviance;
/**
* Calculates the variance for a set of numbers
* @param vals vector of values
* @param devs optional deviance of each value
* @param mean optional mean
* @returns variance for values
*/
function calcVariance(vals, devs, mean) {
if (!devs) {
devs = calcDeviance(vals, mean);
}
let sum = 0;
for (let i = 0; i < devs.length; i++) {
sum += Math.pow(devs[i], 2);
}
const n = devs.length - 1;
return sum / n;
}
exports.calcVariance = calcVariance;
/**
* Calculates the standard deviation for a set of values
*/
function calcStdDev(vals, variance) {
if (variance === undefined) {
variance = calcVariance(vals);
}
return Math.sqrt(variance);
}
exports.calcStdDev = calcStdDev;
/**
* Returns the z-score for a given value against the mean and standard
* deviation
*/
function calcZScore(x, mean, stddev) {
return (x - mean) / stddev;
}
exports.calcZScore = calcZScore;
//# sourceMappingURL=stats-basic.js.map