Sha256: 41633afdc33ea7fb68784973765a84911da41bd729b572047a6588ad1b119d2a

Contents?: true

Size: 406 Bytes

Versions: 2

Compression:

Stored size: 406 Bytes

Contents

module StatiStica
  class StandardDeviation
    require_relative 'mean'

    def initialize(sample)
      raise ArgumentError if sample.empty?
      @sample = sample.map { |s| Float(s) }
    end

    def value
      mean = StatiStica::Mean.new(@sample).value
      variance = @sample.inject(0) { |sum, element| sum + (element - mean) ** 2 } / (@sample.size - 1)
      Math.sqrt(variance)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
stati_stica-0.2.0 lib/stati_stica/standard_deviation.rb
stati_stica-0.1.0 lib/stati_stica/standard_deviation.rb