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.
// 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 );
};
Testing with numbers from wiki
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
Please read this for more information “http://easycalculation.com/statistics/learn-standard-deviation.php”
What REALLY is Data Science? Told by a Data Scientist - By Joma Tech
Writing perfect code is a challenging process. That's where code reviews come in to help…
"The Next Leap: How A.I. will change the 3D industry - Andrew Price - Blender"
"Captain Disillusion: World's Greatest Blenderer - Live at the Blender Conference 2018 - CaptainDisillusion"
My 5 Favorite Linux Shell Tricks for SPEEEEEED (and efficiency) - By tutoriaLinux > What's…
View Comments
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.
Hey Larry, what's the license for those above functions?
MIT license