php 实现方差
方差的计算方法
方差是统计学中衡量一组数据离散程度的重要指标,计算公式为各数据点与均值之差的平方的平均值。在PHP中实现方差计算可通过以下步骤完成。
计算样本方差
样本方差公式为: [ s^2 = \frac{1}{n-1} \sum_{i=1}^{n} (x_i - \bar{x})^2 ] 其中 ( n ) 为样本数量,( \bar{x} ) 为样本均值。
function sampleVariance(array $data): float {
$n = count($data);
if ($n <= 1) return 0.0; // 方差至少需要2个数据点
$mean = array_sum($data) / $n;
$sumSquares = 0.0;
foreach ($data as $value) {
$sumSquares += ($value - $mean) 2;
}
return $sumSquares / ($n - 1);
}
计算总体方差
总体方差公式为: [ \sigma^2 = \frac{1}{n} \sum_{i=1}^{n} (x_i - \mu)^2 ] 其中 ( \mu ) 为总体均值。
function populationVariance(array $data): float {
$n = count($data);
if ($n === 0) return 0.0;
$mean = array_sum($data) / $n;
$sumSquares = 0.0;
foreach ($data as $value) {
$sumSquares += ($value - $mean) 2;
}
return $sumSquares / $n;
}
使用示例
$data = [2, 4, 6, 8, 10];
echo "样本方差: " . sampleVariance($data); // 输出 10.0
echo "总体方差: " . populationVariance($data); // 输出 8.0
注意事项
- 样本方差的分母是 ( n-1 )(无偏估计),总体方差的分母是 ( n )。
- 空数组或单元素数组的方差为0,需在函数中做边界检查。
- 对于大数据集,可使用更高效的算法(如Welford方法)减少浮点误差。







