module Basic::Stats

Constants

VERSION

Public Class Methods

critical_z(n) click to toggle source
# File lib/basic/stats.rb, line 103
def self.critical_z(n)
  result = nil
  @@critical_z_table.keys.sort.each do |key|
    break if key > n
    result = @@critical_z_table[key]
  end
  result
end

Public Instance Methods

critical_z() click to toggle source
# File lib/basic/stats.rb, line 33
def critical_z
  Stats.critical_z(self.size)
end
mean() click to toggle source
# File lib/basic/stats.rb, line 9
def mean
  self.sum/self.length.to_f
end
median() click to toggle source
# File lib/basic/stats.rb, line 13
def median
  sorted = self.sort
  len = sorted.length
  return (sorted[(len - 1) / 2] + sorted[len / 2]) / 2.0
end
reject_outliers() click to toggle source
# File lib/basic/stats.rb, line 37
def reject_outliers
  cz = self.critical_z
  self.reject { |value| z(value) > cz }
end
reject_outliers!() click to toggle source
# File lib/basic/stats.rb, line 42
def reject_outliers!
  cz = self.critical_z
  self.reject! { |value| z(value) > cz }
end
sample_variance() click to toggle source
# File lib/basic/stats.rb, line 19
def sample_variance
  m = self.mean
  sum = self.inject(0){|accum, i| accum +(i-m)**2 }
  sum/(self.length - 1).to_f
end
select_outliers() click to toggle source
# File lib/basic/stats.rb, line 47
def select_outliers
  cz = self.critical_z
  self.select { |value| z(value) > cz }
end
standard_deviation() click to toggle source
# File lib/basic/stats.rb, line 25
def standard_deviation
  return Math.sqrt(self.sample_variance)
end
sum() click to toggle source
# File lib/basic/stats.rb, line 5
def sum
  self.inject(0){|accum, i| accum + i }
end
z(value) click to toggle source
# File lib/basic/stats.rb, line 29
def z(value)
  (self.mean - value).abs/standard_deviation
end