Я пытаюсь вычислить Z-баллы с помощью PHP. По сути, я ищу наиболее эффективный способ вычисления среднего и стандартного отклонения набора данных (массив PHP). Любые предложения о том, как это сделать в PHP?
Я пытаюсь сделать это с наименьшим количеством шагов.
для вычисления среднего значения, которое вы можете сделать:
$mean = array_sum($array)/count($array)
стандартное отклонение выглядит так:
// Function to calculate square of value - mean function sd_square($x, $mean) { return pow($x - $mean,2); } // Function to calculate standard deviation (uses sd_square) function sd($array) { // square root of sum of squares devided by N-1 return sqrt(array_sum(array_map("sd_square", $array, array_fill(0,count($array), (array_sum($array) / count($array)) ) ) ) / (count($array)-1) ); }
прямо с этой страницы
Как насчет использования встроенного статистического пакета, такого как stats_standard_deviation и stats_harmonic_mean . Я не могу найти функцию для стандартных средств, но если вы знаете что-нибудь о статистике, я уверен, что вы можете что-то понять, используя встроенные функции.
function standard_deviation($aValues) { $fMean = array_sum($aValues) / count($aValues); //print_r($fMean); $fVariance = 0.0; foreach ($aValues as $i) { $fVariance += pow($i - $fMean, 2); } $size = count($aValues) - 1; return (float) sqrt($fVariance)/sqrt($size); }