Sha256: 71dc1dcb9ce7b262bd2aae39a4b2f526a70b2bb02e91a18605dee4b5873819fc

Contents?: true

Size: 781 Bytes

Versions: 9

Compression:

Stored size: 781 Bytes

Contents

module Statistics
  module Distribution
    class Beta
      attr_accessor :alpha, :beta

      def initialize(alp, bet)
        self.alpha = alp.to_f
        self.beta = bet.to_f
      end

      def cumulative_function(value)
        Math.incomplete_beta_function(value, alpha, beta)
      end

      def density_function(value)
        return 0 if value < 0 || value > 1 # Density function defined in the [0,1] interval

        num = (value**(alpha - 1)) * ((1 - value)**(beta - 1))
        den = Math.beta_function(alpha, beta)

        num/den
      end

      def mode
        return unless alpha > 1 && beta > 1

        (alpha - 1)/(alpha + beta - 2)
      end

      def mean
        return if alpha + beta == 0
        alpha / (alpha + beta)
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
ruby-statistics-2.1.2 lib/statistics/distribution/beta.rb
ruby-statistics-2.1.1 lib/statistics/distribution/beta.rb
ruby-statistics-2.1.0 lib/statistics/distribution/beta.rb
ruby-statistics-2.0.5 lib/statistics/distribution/beta.rb
ruby-statistics-2.0.4 lib/statistics/distribution/beta.rb
ruby-statistics-2.0.3 lib/statistics/distribution/beta.rb
ruby-statistics-2.0.2 lib/statistics/distribution/beta.rb
ruby-statistics-2.0.1 lib/statistics/distribution/beta.rb
ruby-statistics-2.0.0 lib/statistics/distribution/beta.rb