Method: Rust::Descriptive.variance

Defined in:
lib/rust/stats/descriptive.rb

.variance(data) ⇒ Object Also known as: var

Raises:

  • (TypeError)


19
20
21
22
23
24
25
# File 'lib/rust/stats/descriptive.rb', line 19

def variance(data)
    raise TypeError, "Expecting Array of numerics" if !data.is_a?(Array) || !data.all? { |e| e.is_a?(Numeric) }
    return Float::NAN if data.size < 2
    
    mean = mean(data)
    return data.map { |v| (v - mean) ** 2 }.sum.to_f / (data.size - 1)
end