## Javascript Standard Deviation, Variance, Average functions.

Hey everyone,
I just installed WP-Syntax for the WordPress and I want to test it out by posting javascript code for finding Standard Deviation, Variance, Average among numbers.

Without WP-Syntax
``` var str = 'This is a string.'; console.log( str ); //Boring! ```

With WP-Syntax

```var str = 'hello world. Here I am!'; console.log( str ); //Nice colors!!```

Without more delay, here are the Statistics functions.

## Code

```1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 // Programmer: Larry Battle // Date: Mar 06, 2011 // Purpose: Calculate standard deviation, variance, and average among an array of numbers. var isArray = function (obj) { return Object.prototype.toString.call(obj) === "[object Array]"; }, getNumWithSetDec = function( num, numOfDec ){ var pow10s = Math.pow( 10, numOfDec || 0 ); return ( numOfDec ) ? Math.round( pow10s * num ) / pow10s : num; }, getAverageFromNumArr = function( numArr, numOfDec ){ if( !isArray( numArr ) ){ return false; } var i = numArr.length, sum = 0; while( i-- ){ sum += numArr[ i ]; } return getNumWithSetDec( (sum / numArr.length ), numOfDec ); }, getVariance = function( numArr, numOfDec ){ if( !isArray(numArr) ){ return false; } var avg = getAverageFromNumArr( numArr, numOfDec ), i = numArr.length, v = 0;   while( i-- ){ v += Math.pow( (numArr[ i ] - avg), 2 ); } v /= numArr.length; return getNumWithSetDec( v, numOfDec ); }, getStandardDeviation = function( numArr, numOfDec ){ if( !isArray(numArr) ){ return false; } var stdDev = Math.sqrt( getVariance( numArr, numOfDec ) ); return getNumWithSetDec( stdDev, numOfDec ); };```

## Usage

Testing with numbers from wiki

```1 2 3 4 5 6 var arrOfNums = [ 2,4,4,4,5,5,7,9 ], precision = 4;   getAverageFromNumArr( arrOfNums, precision ); //returns 5 getVariance( arrOfNums, precision ); // returns 4 getStandardDeviation( arrOfNums, precision ); //returns 2```

Enjoy! ðŸ™‚
Update
For those wanting more statistical functions, use jStat : a JavaScript statistical library. by John Resig.

jStat is a statistical library written in JavaScript that allows you to perform advanced statistical operations without the need of a dedicated statistical language (i.e. MATLAB or R).

Update 2

### Larry Battle

I love to program, and discover new tech. Check out my stackoverflow and github accounts.

• Hey Larry, thanks for the post. I ran your script on an array of numbers and got different results from Excel’s STDEV function. I found the bug as I suspected: the variance formula script forgets to divide by the “array length -1”. Simple fix. Just change one line of code in the variance function and voila:
v /= numArr.length; //wrong way
v /= (numArr.length – 1); //corrected way

• I updated the article. Thanks for your help Dayton! I can’t believe I missed that for so long.

• Johannes Wilm

Hey Larry, what’s the license for those above functions?

• Larry Battle