PHPで平均値と中央値 (PHP)


PHPには平均値(mean)や中央値(median)を求める関数はないようです。
配列の平均値(相加平均)を返す関数は単純ですが、以下のように求めることができます。

function average($list){
	$sum = 0;
	foreach($list as $a){
		$sum += $a;
	}
	return($sum/count($list));
}


同様に、配列の中央値を返す関数は以下のようになります。
中央値は偶数個と奇数個で分かれますので場合分けが必要です。(添え字が0から始まっていることに注意。)

function median($list){
	sort($list);
	if (count($list) % 2 == 0){
		return (($list[(count($list)/2)-1]+$list[((count($list)/2))])/2);
	}else{
		return ($list[floor(count($list)/2)]);
	}
}

余談ですが、集団の性質を表すのに平均値はよく使われます。しかし、場合によっては中央値や最頻値(mode)を用いた方がより実態を表すのに適切なことがあります。
よく江戸時代の平均寿命が○○歳であったとか、スポーツ選手の平均所得が○○円、といったことが書かれることがありますが、これも、新生児の死亡や、少数の高額所得者に全体が引っ張られるため、中央値で表した方が実際の印象に近いかもしれません。(もちろん、これらの因子も含めた”平均”であることを認識していれば問題はありません。)

「PHPで平均値と中央値 (PHP)」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

SPAM防止のため数字と漢数字の算数の計算をお願いします。 * Time limit is exhausted. Please reload CAPTCHA.