module MultiMeasure::MathHelpers

Copied from stackoverflow.com/questions/7749568/how-can-i-do-standard-deviation-in-ruby

Public Class Methods

mean(a) click to toggle source
# File lib/multi_measure/math_helpers.rb, line 8
def self.mean(a)
  sum(a) / a.length.to_f
end
sample_variance(a) click to toggle source
# File lib/multi_measure/math_helpers.rb, line 12
def self.sample_variance(a)
  m = mean(a)
  sum = a.inject(0){ |accum, i| accum + (i - m) ** 2 }
  sum / (a.length - 1).to_f
end
standard_deviation(a) click to toggle source
# File lib/multi_measure/math_helpers.rb, line 18
def self.standard_deviation(a)
  return 0.0 if a.length < 2
  Math.sqrt(sample_variance(a))
end
sum(a) click to toggle source
# File lib/multi_measure/math_helpers.rb, line 4
def self.sum(a)
  a.inject(0){ |accum, i| accum + i }
end