php - 数字数组的简单方差和标准差
问题描述
我一直在阅读有关 PHP 标准偏差和方差的所有内容,在这里和那里在线找到了许多示例,但仍然没有一个给我与 Excel 相同的结果。
说我有:
$array1 = array(5,46,37,21,8,55,1);
我只想要数组中这些数字的方差和标准差......
任何简单直接的线索?
解决方案
https://www.mathsisfun.com/data/standard-deviation.html
class SomeClass
{
public $variance = 0.0;
public $deviation = 0.0;
public function run(array $array = [])
{
if (empty($array)) {
echo "Passed array can't be empty and must contain only numbers.";
die();
}
$this->variance = $this->getVariance($array);
$this->deviation = $this->getStdDeviation($this->variance);
}
/**
* Calculate variance.
* Note: If no huge number of items we will not use "Sample" variance (but n items instead: n-1 items)
*
* @param array $arrayOfNumbers
* @return float
*/
private function getVariance(array $arrayOfNumbers)
{
$variance = 0.0;
$totalElementsInArray = count($arrayOfNumbers);
// Calc Mean.
$averageValue = array_sum($arrayOfNumbers) / $totalElementsInArray;
foreach ($arrayOfNumbers as $item) {
$variance += pow(abs($item - $averageValue), 2);
}
return $variance;
}
/**
* Simple deviation.
*
* @param float $variance
* @return float
*/
private function getStdDeviation($variance)
{
return (float)sqrt($variance);
}
}
$stat = new SomeClass;
$stat->run([5,46,37,21,8,55,1]);
echo "\n\nRESULTS:\n";
echo "\nVariance: " . $stat->variance;
echo "\nDeviation: " . $stat->deviation;
推荐阅读
- javascript - 如何检查第三方 cookie 是否被禁用 - 我的项目因这个问题而停止
- html - Ionic5 组件获取 @ViewChild 不起作用
- haskell - Haskell - 如何基于 BinaryTree 的文件夹创建 mapTree 函数?
- python - 我的代码在 Python 中运行良好,如何从 HTML 传递参数值?
- java - Android视图模型类没有零参数构造函数,片段中的实例化异常
- python - 如何将保存在表单中的用户变量传递给 Django 中的按钮链接
- javascript - 如何根据下拉选择填充强类型文本框
- firebase - 为什么提供类“QueryDocumentSnapshot”的 Firestore 数据没有实例方法“[]”。错误?
- python - 路径('',views.index,name='index'),AttributeError:模块'learning_logs.views'没有属性'index'
- python - 如何在 Matplotlib 中绘制一个非常大的数据集(日期、时间(x 轴)与记录的值(y 轴),每天每 15 分钟一次,持续一年)