我写了一个函数来计算一组值的几何平均值和几何标准差。我让GM得到了正确的答案。但是GSD是错误的。我在哪里弄错了?
<?php
function geometric_mean($a) {
foreach($a as $i=>$n) {$mul = $i == 0 ? $n : $mul*$n;}
$gm= pow($mul,1/count($a));
foreach($a as $i=>$n) {$gsd = $i == 0 ? $n : $gsd+=pow(log($i/$gm),2);}
$temp=exp(sqrt($gsd/count($a)));
return array($gm,$temp);
}
$values=array(12.05,18,24,56,8.9,5.4);
$g=geometric_mean($values);
print_r($g);
?>
在这种情况下,GSD是2.11,但我得到了别的东西
请参阅http://en.wikipedia.org/wiki/Geometric_standard_deviation了解公式