Rubyで統計の基本を学ぼう!平均・中央値・標準偏差をやさしく計算する方法
生徒
「数字がたくさん並んでいるデータって、どうやって意味を読み取るんですか?」
先生
「数字の集まりは、そのままだと分かりにくいので、代表となる数値を計算します。」
生徒
「代表となる数値って、平均とかですか?」
先生
「そうですね。Rubyを使うと、平均や中央値、標準偏差も計算できます。」
1. 統計とは何かを超かんたんに説明
統計とは、たくさんの数字を整理して、全体の特徴を分かりやすくする考え方です。 たとえば、テストの点数が何人分もあるとき、一人ずつ見ても全体の傾向は分かりません。 そんなときに「平均点はいくつか」「真ん中の点数はどこか」を計算すると、全体の様子が見えてきます。
Rubyの数値(整数や小数)と演算子(足し算、割り算、比較など)を使えば、 プログラミング未経験の人でも統計の基本を体験できます。 ここでは平均・中央値・標準偏差の3つを、身近なたとえを交えながら説明します。
2. 平均とは?Rubyで平均を計算してみよう
平均とは、すべての数を足して、個数で割った数です。 お菓子をみんなで平等に分けるイメージをすると分かりやすいです。 たとえば、3人でりんごを合計9個持っていたら、一人あたり3個になります。 この「一人あたり」が平均です。
numbers = [70, 80, 90]
sum = numbers[0] + numbers[1] + numbers[2]
average = sum / 3.0
puts average
80.0
ここで使っている「3.0」は小数です。 Rubyでは、整数同士で割り算をすると整数になってしまうため、 小数を使うことで正確な平均が計算できます。 これが整数と小数の違いです。
3. 中央値とは?真ん中の値を見つける考え方
中央値とは、数字を小さい順に並べたときの真ん中の値です。 クラス全員の身長を低い順に並べて、ちょうど真ん中にいる人の身長を思い浮かべてください。 極端に高い人や低い人がいても、影響を受けにくいのが特徴です。
numbers = [70, 90, 80]
sorted = numbers.sort
median = sorted[1]
puts median
80
sortは、数字を小さい順に並べる命令です。
配列という「数字をまとめて入れる箱」を使うことで、
Rubyでは簡単に中央値を求められます。
4. 標準偏差とは?ばらつきを表す数字
標準偏差は、数字がどれくらい散らばっているかを表します。 たとえば、全員がほぼ同じ点数なら安心感がありますが、 点数が高い人と低い人で大きく分かれていると不安になります。 この「ばらつき具合」を数値にしたものが標準偏差です。
計算は少し長くなりますが、Rubyの演算子を順番に使うだけです。
numbers = [70, 80, 90]
average = (70 + 80 + 90) / 3.0
diff1 = (70 - average) ** 2
diff2 = (80 - average) ** 2
diff3 = (90 - average) ** 2
variance = (diff1 + diff2 + diff3) / 3.0
standard_deviation = Math.sqrt(variance)
puts standard_deviation
8.164414002968976
「平均との差を二乗する」「全部足して割る」「平方根を取る」という順番で計算しています。
**は二乗、Math.sqrtは平方根という意味です。
名前は難しく見えますが、やっていることは足し算と掛け算の組み合わせです。
5. Rubyで統計を学ぶメリット
Rubyで統計を学ぶと、数字と演算子の使い方に自然と慣れていきます。 比較演算子や論理演算を学ぶ前の準備としても最適です。 また、実際に手を動かして計算することで、 数学が苦手な人でも「数字は怖くない」と感じられるようになります。
パソコン操作に不慣れな人でも、 数字を書いて実行するだけで結果が表示されるのは大きな安心材料です。 Rubyのやさしさを感じながら、統計の基本に触れてみてください。