Class: StatisticalMethods::SummaryStatistic::Location::Average

Inherits:
Object
  • Object
show all
Defined in:
lib/statistical_methods/summary_statistic/location/average.rb

Instance Method Summary collapse

Constructor Details

#initialize(array) ⇒ Average

Returns a new instance of Average.



5
6
7
8
9
# File 'lib/statistical_methods/summary_statistic/location/average.rb', line 5

def initialize(array)
  @array = array
  @number = @array.size.to_f
  @empty = @number < 1
end

Instance Method Details

#arithmetic_meanObject



12
13
14
# File 'lib/statistical_methods/summary_statistic/location/average.rb', line 12

def arithmetic_mean
  process { @array.addition / @number }
end

#geometric_meanObject



17
18
19
# File 'lib/statistical_methods/summary_statistic/location/average.rb', line 17

def geometric_mean
  process { @array.multiplication**(1.0 / @number) }
end

#harmonic_meanObject



22
23
24
# File 'lib/statistical_methods/summary_statistic/location/average.rb', line 22

def harmonic_mean
  process { @number / @array.harmonic.addition } unless include_zero?
end

#power_mean(exponent) ⇒ Object



32
33
34
35
36
37
# File 'lib/statistical_methods/summary_statistic/location/average.rb', line 32

def power_mean(exponent)
  process do
    return exception(exponent) if exceptions.include? exponent
    (@array.power(exponent).addition / @number)**(1.0 / exponent)
  end
end

#quadratic_meanObject



27
28
29
# File 'lib/statistical_methods/summary_statistic/location/average.rb', line 27

def quadratic_mean
  process { Math.sqrt(@array.power(2).addition / @number) }
end