JavaScript计算标准差


有的时候为了考虑执行效率等,我们把数据处理会放在前端js中,而不选择在SQL中执行。首先什么是标准差?干嘛的?

 

那如何在JS中求标准差呢?

var baseData=[0,1,2,3,4];

var avg = function (arr) { //计算平均值 函数
var len = arr.length;
var sum = 0;
for(var i = 0; i < len ; i++){
sum += arr[i]*1;
}

return sum/len;
}

var sampleAvg1 =avg(baseData).toFixed(2);

var length = baseData.length;
var temp = new Array(length); //定义一个临时空数组,用来存储每个数组元素与平均值的差的平方。

for (var i = 0; i < length; i++) {
var dev = parseFloat(baseData[i]) - sampleAvg1 ; //计算数组元素与平均值的差
temp[i] = Math.pow(dev, 2); //计算差的平方
}
var powSum = 0; //用来存储差的平方总和

for (var j = 0; j < temp.length; j++) {
if (temp[j].toString() != "" || temp[j].toString() != null) {
powSum = parseFloat(powSum) + parseFloat(temp[j].toString()); //计算差的平方总和
}
}
var stddev = Math.sqrt(parseFloat(powSum) / parseFloat(length)).toFixed(2); //用差的平方总和除以数组长度即可得到标准差

alert(stddev);

结果如下:

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM