こんにちは。
PHPで標準偏差を計算しようとしているのですが、うまくいきません。
php
1function r($num) 2{ 3 return round($num, 2); 4} 5function h($arr) 6{ 7 return r(array_sum($arr) / count($arr)); 8} 9function v($values) { 10 $ave = h($values); 11 $variance = 0.0; 12 foreach ($values as $val) { 13 $variance += pow($val - $ave, 2); 14 } 15 return r($variance / count($values)); 16} 17function s($values) { 18 $variance = v($values); 19 return r(sqrt($variance)); 20}
関数名考えるのめんどくさくて、とりあえずの名前でやっています。わかりづらい名前ですみません。
これで、たとえば
php
1echo s(array(14.81, 15.67, 15.07, 15.75, 16, 16.89));
とやると、0.67
が出力されるのですが、正しい標準偏差は0.73
です。
自分でもいろいろと考えてみたのですが、わかりませんでした。
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/25 09:36