統計を計算するクラスを実装してみた[PHP][標準偏差][偏差値]
PECLの統計クラスが使えないので自分で実装してみた
<?php $target = mt_rand(0, 100); // generate Test Data $arr = array(); for($i=0; $i<10; $i++){ array_push($arr, mt_rand(0, 100)); } echo " ターゲット値: $target <br />"; echo "偏差値: " . Statistics::standardScore($target, $arr); class Statistics { public static function average(array $values) { return (float) (array_sum($values) / count($values)); } 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 standardDeviation(array $values) { // 分散を求める $variance = self::variance($values); // 分散の平方根 return (float) sqrt($variance); } //偏差値を求める public static function standardScore( $target, array $arr) { return ( $target - self::average($arr) ) / self::standardDeviation($arr) * 10 + 50; } } ?>