標準偏差を求めてみよう
標準偏差を求める方法をPerlプログラムを用いて説明します。
標準偏差を求める
以下のような配列を考えてみます。
my @array = (10, 50, 60, 65, 70, 90);
配列の標準偏差を求めるサンプルプログラム
実際に配列から標準偏差を求めます。Statistics::Liteモジュールにstddev関数がありますが、この例では利用しません。
標準偏差の求め方の説明はしません。
use strict;
use warnings;
sub get_stddev {
return sqrt(get_disp(@_));
}
sub get_disp {
my ($array_ref) = @_;
my $mean = get_avg($array_ref);
my $count = @$array_ref;
my $sum = 0;
for my $num (@$array_ref) {
$sum += (($num - $mean) ** 2);
}
return $sum / $count;
}
sub get_avg {
my ($array_ref) = @_;
my $count = @$array_ref;
my $sum = 0;
for my $num (@$array_ref) {
$sum += $num;
}
return $sum / $count;
}
my @array = (10, 50, 60, 65, 70, 90);
my $stddev = get_stddev(\@array);
print "標準偏差は、" . $stddev . "です。\n";
実行結果
標準偏差は、24.452334585202です。
このプログラムは、コピー&ペーストして、PerlBanjoで、すぐに試すことができます。
Perlデータ分析入門