我该如何计算使用PHP的数组数组的Z值?我需要计算Z值,然后找到百分位数(CDF)!我可以使用哪些PHP函数?谢谢!php统计z分数正态分布
2
A
回答
2
下面的代码将得到CDF(阿布拉莫维茨& Stegun(1964))
function normal_pdf($x) {
return exp(-$x * $x/4)/sqrt(2 * M_PI);
}
function normal_cdf($x) {
$b = array(0.2316419, 0.319381530, -0.356563782, 1.781477937, -1.821255978, 1.330274429);
$t = 1/(1 + $b[0] * $x);
$result = 0;
for ($i = 1; $i < 6; $i++) {
$result += $b[$i] * pow($t, $i);
}
return 1 - normal_pdf($x) * $result;
}
这假定标准正态分布的良好近似。回想一下,以规范,使用z = (x - mean)/(standard deviantion)
0
PHP statistics extension有几项功能可以帮助您—您可能需要stats_standard_deviation
作为开始。
+0
我需要stats_cdf_binomial似乎但是功能没有很好的记载。我甚至不知道该函数的参数是什么.. –
0
$control=array(15,7);
$treatment=array(46,8);
$confidence=number_format(cumnormdist(zscore($control, $treatment))*100,0);
function cr($t)
{
return $t[1]/$t[0];
}
function zscore($c, $t)
{
$z = cr($t)-cr($c);
$s = (cr($t)*(1-cr($t)))/$t[0] + (cr($c)*(1-cr($c)))/$c[0];
return $z/sqrt($s);
}
function cumnormdist($x)
{
$b1 = 0.319381530;
$b2 = -0.356563782;
$b3 = 1.781477937;
$b4 = -1.821255978;
$b5 = 1.330274429;
$p = 0.2316419;
$c = 0.39894228;
if($x >= 0.0) {
$t = 1.0/(1.0 + $p * $x);
return (1.0 - $c * exp(-$x * $x/2.0) * $t *
($t *($t * ($t * ($t * $b5 + $b4) + $b3) + $b2) + $b1));
}
else {
$t = 1.0/(1.0 - $p * $x);
return ($c * exp(-$x * $x/2.0) * $t *
($t *($t * ($t * ($t * $b5 + $b4) + $b3) + $b2) + $b1));
}
}
1
/* Mean */
function mean($input_array)
{
$total = 0;
foreach ($input_array as $value)
{
$total += $value;
}
return ($total/count($input_array));
}
/* Standard Deviation */
function std($arr)
{
if (!count($arr))
return 0;
$mean = mean($arr);
$sos = 0; // Sum of squares
for ($i = 0; $i < count($arr); $i++)
{
$sos += ($arr[$i] - $mean) * ($arr[$i] - $mean);
}
return sqrt($sos/(count($arr) - 1));
}
/* Z Scores */
function z($var, $arr)
{
return ($var -mean($arr))/std($arr);
}
相关问题
- 1. Python 3.2统计正态分布
- 2. Python - 计算正态分布
- 3. PHP:从正态分布
- 4. SQL - 统计正态分布的数量范围
- 5. Python - 统计分布
- 6. 对数正态分布法
- 7. 平均数和在正常分布和对数正态分布
- 8. 分布式系统设计
- 9. 似乎无法计算正态分布
- 10. C++正态分布
- 11. 在正态分布
- 12. Java正态分布
- 13. DAX正态分布
- 14. 泊松分布或正态分布
- 15. 正态分布的matlab测试(非测试非正态分布)
- 16. scipy,对数正态分布 - 参数
- 17. 有效计算正态分布乘积的积分
- 18. 二项分布z得分值太大
- 19. 正态分布;铁python
- 20. skeip正态分布在scipy
- 21. python pylab plot正态分布
- 22. 并行正态分布
- 23. 频率为正态分布
- 24. R中的正态分布
- 25. Tensorflow:正态分布广播
- 26. matlab中的正态分布函数
- 27. 对数正态分布的逆
- 28. 对数正态分布/ C++ GNU
- 29. VB.NET中的正态分布随机数
- 30. 绘制一个对数正态分布
的normal_cdf功能是不正确的。它给x的某些值提供负值。 –