计算 php 中的正态分布概率

Calculate normal distribution probability in php

我需要使用这个 table 从给定的 z 值获得概率:

https://statistics.laerd.com/statistical-guides/img/normal-table-large.png

我确定应该有更好的方法来获取 php 上的这些值,但不知道如何计算它们。 任何帮助将不胜感激。

Table,我相信,是CDF的normal distribution。我使用表达式对它进行编码 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());
}