🎶 Sym - 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台

📕 思源笔记 - 一款桌面端笔记应用,支持 Windows、Mac 和 Linux

🎸 Solo - B3log 分布式社区的博客端节点,欢迎加入下一代社区网络

♏ Vditor - 一款浏览器端的 Markdown 编辑器

JavaScript - 标准偏差

2020-05-18

描述

返回一个数字数组的标准偏差。

提示

  • 全程使用 Array.prototype.reduce() 进行辅助计算
  • 使用原始数据分别减去数组的平均值
  • 将上一步所得的各个数值的平方相加
  • 将上一步结果除以 n-1/n
  • 用上一步结果的数值求平方根
  • 第二个参数的默认值为 false,可获取抽样的标准偏差,将其设置为 true 可获取总体的标准偏差

代码

const standardDeviation = (arr, usePopulation = false) => {
  const mean = arr.reduce((acc, val) => acc + val, 0) / arr.length;
  return Math.sqrt(
    arr.reduce((acc, val) => acc.concat((val - mean) ** 2), []).reduce((acc, val) => acc + val, 0) /
      (arr.length - (usePopulation ? 0 : 1))
  );
};

示例

求下列数组的标准偏差:

standardDeviation([10, 2, 38, 23, 38, 23, 21]); // 13.284434142114991 (抽样的标准偏差)
standardDeviation([10, 2, 38, 23, 38, 23, 21], true); // 12.29899614287479 (总体的标准偏差)

返回总目录

每天 30 秒系列之 JavaScript 代码


欢迎注册黑客派社区,开启你的博客之旅。让学习和分享成为一种习惯!

留下你的脚步