module Statistica
Constants
- VERSION
Public Instance Methods
get_arith_mean()
click to toggle source
# File lib/get_arith_mean.rb, line 2 def get_arith_mean mean = self.get_sum.to_f / self.length mean.round(2) end
get_coeff_variation()
click to toggle source
# File lib/get_coeff_variation.rb, line 2 def get_coeff_variation variation = self.get_stdev/self.get_arith_mean variation.round(2) end
get_geo_mean()
click to toggle source
# File lib/get_geo_mean.rb, line 2 def get_geo_mean geo_mean = (self.get_product) ** (1.to_f / (self.length)) geo_mean.round(2) end
get_harm_mean()
click to toggle source
# File lib/get_harm_mean.rb, line 2 def get_harm_mean recip = self.map { |element|(1/element.to_f) } harm_mean = 1/(recip.inject(:+)/self.length) harm_mean.round(2) end
get_interquartile_range()
click to toggle source
# File lib/get_interquartile_range.rb, line 2 def get_interquartile_range self.get_percentile(75) - self.get_percentile(25) end
get_median()
click to toggle source
# File lib/get_median.rb, line 2 def get_median # Confirm odd number of elements if self.sort!.length % 2 == 1 median_odd = self[(self.length / 2)] median_odd # Confirm even number of elements elsif self.sort!.length % 2 == 0 f_middle_element = self[(self.length / 2 - 1)] s_middle_element = self[(self.length / 2)] median_even = (f_middle_element + s_middle_element) / 2.0 median_even end end
get_mode()
click to toggle source
# File lib/get_mode.rb, line 2 def get_mode array_sort = self.sort! elements = array_sort.uniq.map! { |actual_num| actual_num } elements_frequency = array_sort.uniq.map! { |num| array_sort.count(num) } highest_occuring_element_position = elements_frequency.index(elements_frequency.max) elements.fetch(highest_occuring_element_position) end
get_percentile(n)
click to toggle source
# File lib/get_percentile.rb, line 2 def get_percentile(n) sorted_array = self.sort percentile_index = n.to_f/100 * sorted_array.length if percentile_index == percentile_index.round result = (sorted_array[percentile_index.ceil - 1] + sorted_array[percentile_index.ceil])/2.to_f else sorted_array[percentile_index.ceil - 1] end end
get_product()
click to toggle source
# File lib/get_product.rb, line 2 def get_product self.inject(:*) end
get_range()
click to toggle source
# File lib/get_range.rb, line 2 def get_range self.max - self.min end
get_relative_variance()
click to toggle source
# File lib/get_relative_variance.rb, line 2 def get_relative_variance var_square = (self.get_variance) ** 2 rel_variance = var_square/self.get_arith_mean rel_variance.round(2) end
get_stdev()
click to toggle source
# File lib/get_stdev.rb, line 2 def get_stdev stdev = Math.sqrt(self.get_variance) stdev.round(2) end
get_sum()
click to toggle source
# File lib/get_sum.rb, line 2 def get_sum self.inject(:+) end
get_variance()
click to toggle source
# File lib/get_variance.rb, line 2 def get_variance square_diff = self.map { |element| (element - self.get_arith_mean) ** 2 } variance = square_diff.get_sum / (square_diff.length - 1) variance.round(2) end