Ruby で 平均、分散、標準偏差
平均
平均は、総和を要素数で割ったもの。
要素を$x_1$, $x_2$, ..., $x_n$とするとき、
平均は、 \[ E(x) = \frac{1}{n} \sum_{i = 1}^{n} x_i \]
# 平均を定義 def mean(x) x.sum / x.size.to_f end x = Array.new(10){rand(1..10)} p mean(x)
分散
分散は、
\[V(x) = E\left(\left(x - E\left(x\right)\right)^{2}\right) \]
# 平均を定義 def mean(x) x.sum / x.size.to_f end # 分散を定義 def var(x) mean(x.map{|e| (e - mean(x)) ** 2}) end x = Array.new(10){rand(1..10)} p var(x)
標準偏差
標準偏差は、
\[ SD(x) = \sqrt{V(x)} \]
# 平均を定義 def mean(x) x.sum / x.size.to_f end # 分散を定義 def var(x) mean(x.map{|e| (e - mean(x)) ** 2}) end # 標準偏差を定義 def sd(x) Math.sqrt(var(x)) end x = Array.new(10){rand(1..10)} p sd(x)