module DescriptiveStatistics::Spread
Public Instance Methods
population_standard_deviation()
click to toggle source
# File lib/descriptive-statistics/spread.rb, line 28 def population_standard_deviation return if length < 1 Math.sqrt(population_variance) end
population_variance()
click to toggle source
# File lib/descriptive-statistics/spread.rb, line 10 def population_variance return if length < 1 precalculated_mean = mean sum = self.inject(0) {|accumulator, value| accumulator + (value - precalculated_mean) ** 2 } sum / length.to_f end
relative_standard_deviation()
click to toggle source
# File lib/descriptive-statistics/spread.rb, line 22 def relative_standard_deviation return if length < 1 precalculated_mean = mean (population_standard_deviation / precalculated_mean) * 100.0 end
standard_deviation()
click to toggle source
# File lib/descriptive-statistics/spread.rb, line 17 def standard_deviation return if length < 2 Math.sqrt(variance) end
variance()
click to toggle source
# File lib/descriptive-statistics/spread.rb, line 3 def variance return if length < 1 precalculated_mean = mean sum = self.inject(0) {|accumulator, value| accumulator + (value - precalculated_mean) ** 2 } sum / (length.to_f - 1) end
zscore()
click to toggle source
# File lib/descriptive-statistics/spread.rb, line 33 def zscore return if length < 2 stdev = standard_deviation m = mean stdev.zero? ? Array.new(self.length, 0) : self.collect { |v| (v - m) / stdev } end