在PHP中将Z值转换为百分位数

3

我需要一个PHP中的z-scorepercentile计算器。是否有适用于PHP的简单公式或已经编写好的函数。我该使用什么?


2
也许这是你想要的吗?PHP中的z分数(标准差和平均值) - Joshua Lückers
@Truth 这不适合在M.SE上讨论 - 这是一个PHP问题,而不是数学问题。 - Chris Taylor
2
@JoshuaLückers 这个问题对此并没有帮助。那是关于如何从样本计算z分数,而这是关于如何从z分数计算百分位数(即如何实现正态分布函数)。 - Chris Taylor
1
@ChrisTaylor 对不起,我误解了你的问题。 - Joshua Lückers
1个回答

6

最简单的方法是在PHP手册上参考aboulang2002@yahoo.com的贡献:

<?
function erf($x)
{
    $pi = 3.1415927;
    $a = (8*($pi - 3))/(3*$pi*(4 - $pi));
    $x2 = $x * $x;

    $ax2 = $a * $x2;
    $num = (4/$pi) + $ax2;
    $denom = 1 + $ax2;

    $inner = (-$x2)*$num/$denom;
    $erf2 = 1 - exp($inner);

    return sqrt($erf2);
}

function cdf($n)
{
    if($n < 0)
    {
            return (1 - erf($n / sqrt(2)))/2;
    }
    else
    {
            return (1 + erf($n / sqrt(2)))/2;
    }
}

$zscore = MYZSCORE;
print 'Percentile: ' . cdf($zscore) * 100 . "\n";
?> 

在 PHP 中使用 PI 常量会更好,不是吗? - JRL
只是一个注释,这是来自PHP手册stats_stat_percentile函数的内容。链接在这里:http://php.net/manual/en/function.stats-stat-percentile.php - Michael Shang
2
有人知道函数名cdferf代表什么吗? - Oscar Chambers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接