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

Spe*_*cer 17 php mean standard-deviation

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

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

Nea*_*eal 33

计算你可以做的平均值:

$mean = array_sum($array)/count($array)
Run Code Online (Sandbox Code Playgroud)

标准差是这样的:

// 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) );
}
Run Code Online (Sandbox Code Playgroud)

就在这个页面之外

  • stats_standard_deviation 中的 php “内置”返回的值与您提供的 `sd()` 函数不同。我使用 Excel STDDEV 进行了检查,它与您的相匹配,但有趣的是,stats_standard_deviation 似乎返回了 95% 的置信度……与 Excel CONFIDENCE 函数返回的不完全相同,但非常接近。 (2认同)

roc*_*est 14

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

  • 然后有一个upvote :-)鉴于这是最好的答案("最小步数"和(可能)"最有效的方式").(也许有人对说_built-in_感到不满;你必须做"sudo pecl install stats"然后编辑php.ini) (2认同)

小智 5

   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);
}
Run Code Online (Sandbox Code Playgroud)