[PHP]統計学(平均、分散、標準偏差、偏差値)

PHP を使って分散(Variance)、標準偏差(Standard Deviation)、偏差値(Standard Score)を求めるサンプルです。
データ配列 $input を元に分散と標準偏差を計算し、$value の偏差値を求めます。

<?php
$input = array( 88, 32, 48, 95, 67, 45, 90 );
$value = 80;

$sumsq = 0;
$n = count($input);
$m = array_sum($input) / $n;	// 平均

foreach($input as $a){
	$sumsq += pow(abs($a - $m), 2);
}

$v   = ($n >= 2) ? $sumsq / ($n - 1) : 0;	// 不偏分散
$vp  = ($n > 0) ? $sumsq / $n : 0;			// 標本分散
$sd  = sqrt($v);							// 標本標準偏差
$sdp = sqrt($vp);							// 母標準偏差
$score = ($value - $m) / $sdp * 10 + 50;	// 偏差値

printf('Mean: %f, Variance: %f, SD: %f, Standard Score: %f', $m, $vp, $sdp, $score);

出力結果:

Mean: 66.428571, Variance: 545.959184,
SD: 23.365769, Standard Score: 55.808252

母標準偏差は Excel の関数でいう STDEVP() で、標本標準偏差は STDEV() に当たります。
どちらを使うかはデータが母集団そのものであるか母集団からとった標本であるかによって使い分けますが、統計学に関する詳細に関しては省略させていただきます。

参考文献: 宮川 公男(1999)『基本統計学』有斐閣