Home
plant-holly

Variance and Standard Deviation the JavaScript Way

Array.prototype.sumSquared = function() {
    return this.reduce(function(a, b) { return a * a + b });
}

Array.prototype.variance = function() {
    var mean = this.mean();
    if (mean) {
        var sum = this.sum();
        return (this.length * this.sumSquared() - sum * sum) /
               (this.length * (this.length - 1));
    } else {
        return Number.NaN;
    }
}

Array.prototype.standardDeviation = function() {
    return Math.sqrt(this.variance());
}