我需要使用此表从给定的z值获取概率:
https://statistics.laerd.com/statistical-guides/img/normal-table-large.png
我确定应该有一个更好的方法来在php上获取这些值,但不知道如何计算它们。 任何帮助将不胜感激。
答案 0 :(得分:0)
我认为表格是normal distribution的CDF。我用表达式编码 近似error function。
代码未经测试!
function sgn( $x ) {
if ( $x < 0 )
return -1;
return 1;
}
function erf( $x ) {
$e = exp(-$x*$x);
$e2 = exp(-$x*$x*2);
$q = sqrt(pi())/2 + 31*$e/200 - 341*$e2/8000;
return 2*sgn($x)*sqrt(1-$e)*$q/sqrt(pi());
}
function CDF( $x ) {
return (1 + erf($x / sqrt(2))) / 2;
}
print_r(CDF(0));
print_r(CDF(0.1));
....
更新
这里有快速(未经测试!)代码,最多可以计算4个词的erf()
function erf( $x ) {
$e = exp(-$x*$x);
$t = 1.0 - $e;
$s = 1. + $t*(-1./12. + $t*(-7./480. + $t*( -5./896. +$t * (-787./276480.))));
return 2.*sgn($x)*sqrt($t)*$s/sqrt(pi());
}