z-得分(标准偏差和平均值)在PHP中

时间:2011-03-25 15:33:19

标签: php mean standard-deviation

我正在尝试使用PHP计算Z分数。基本上,我正在寻找最有效的方法来计算数据集(PHP数组)的平均值和标准差。有关如何在PHP中执行此操作的任何建议吗?

我试图以最少的步骤执行此操作。

5 个答案:

答案 0 :(得分:31)

计算你可以做的意思:

$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) );
}

关闭this page

答案 1 :(得分:14)

如何使用stats_standard_deviationstats_harmonic_mean等内置统计信息包。我找不到标准方法的功能,但如果您对统计数据一无所知,我相信您可以使用内置函数来解决问题。

答案 2 :(得分:4)

   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);
}

答案 3 :(得分:0)

这与顶部答案中提到的php页面中的标准开发人员代码相同,但进行了一些现代化,没有单行数组魔术和单独的辅助函数:

function calculateStdDev(array $array): float
{
    $size = count($array);
    $mean = array_sum($array) / $size;
    $squares = array_map(function ($x) use ($mean) {
        return pow($x - $mean, 2);
    }, $array);

    return sqrt(array_sum($squares) / ($size - 1));
}

答案 4 :(得分:0)

主题很老,但实际上我想您可以使用以下功能轻松地从Excel中替代STDEV.P功能。

function stdev_p($arr) {
    $arr2 = array();
    $mean = array_sum($arr)/count($arr);
    for ($x = 0; $x <count($arr); $x++) {
        $arr2[$x] = pow($arr[$x] - $mean,2);
    }
    return sqrt(array_sum($arr2)/count($arr));
}