用php

时间:2018-10-15 16:14:56

标签: php probability distribution normal-distribution

我需要使用此表从给定的z值获取概率:

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

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

1 个答案:

答案 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());
}