import sumNthPowerDeviations from "./sum_nth_power_deviations.js";
/**
* [方差](http://en.wikipedia.org/wiki/Variance)
* 是数据点与均值之间偏差的平方和。
*
* 这是方差的实现,不是样本方差:
* 如果你需要一个样本度量,请使用 `sampleVariance` 方法。
*
* @param {Array<number>} x 一个包含一个或多个数据点的总体
* @returns {number} 方差:一个大于或等于零的值。
* 零表示所有值都相同。
* @throws {Error} 如果 x 的长度为 0
* @example
* variance([1, 2, 3, 4, 5, 6]); // => 2.9166666666666665
*/
function variance(x) {
if (x.length === 0) {
throw new Error("计算方差需要至少一个数据点");
}
// 计算均值与每个值之间的偏差平方的均值。
return sumNthPowerDeviations(x, 2) / x.length;
}
export default variance;