すごくメモ帳

すごくほぼメモ帳ぐらいなブログ

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)