標準偏差を求めてみよう

標準偏差を求める方法を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で、すぐに試すことができます。

関連情報