public static function sampleCovariance(array $X, array $Y)
{
if (count($X) !== count($Y)) {
throw new Exception\BadDataException('X and Y must have the same number of elements.');
}
$x = Average::mean($X);
$y = Average::mean($Y);
$∑⟮xᵢ − x⟯⟮yᵢ − y⟯ = array_sum(array_map(function ($xᵢ, $yᵢ) use($x, $y) {
return ($xᵢ - $x) * ($yᵢ - $y);
}, $X, $Y));
$n = count($X);
return $∑⟮xᵢ − x⟯⟮yᵢ − y⟯ / ($n - 1);
}