概要
閲覧数:2019
投稿日:2014-05-05
更新日:2014-05-05
平均値、分散、標準偏差を求める
コード
class calc
{
/*
* 平均値を求める
*/
public static function average(array $values)
{
return (float) (array_sum($values) / count($values));
}
/*
* 分散を求める
* 分散 =((データ-平均値)の2乗)の総和 ÷ 個数
*/
public static function variance(array $values)
{
// 平均値を求める
$ave = self::average($values);
$variance = 0.0;
foreach ($values as $val) {
$variance += pow($val - $ave, 2);
}
return (float) ($variance / count($values));
}
/*
* 標準偏差を求める
*/
public static function standard_deviation(array $values)
{
// 分散を求める
$variance = self::variance($values);
// 分散の平方根
return (float) sqrt($variance);
}
}
// 計算対象のデータ
$values = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// 平均値を求める
var_dump(calc::average($values));
// float 5.5
// 分散を求める
var_dump(calc::variance($values));
// float 8.25
// 標準偏差を求める
var_dump(calc::standard_deviation($values));
// float 2.872281323269
結果
float(5.5) float(8.25) float(2.872281323269)