class Statistics::Distribution::Beta

Attributes

alpha[RW]
beta[RW]

Public Class Methods

new(alp, bet) click to toggle source
# File lib/statistics/distribution/beta.rb, line 6
def initialize(alp, bet)
  self.alpha = alp.to_r
  self.beta = bet.to_r
end

Public Instance Methods

cumulative_function(value) click to toggle source
# File lib/statistics/distribution/beta.rb, line 11
def cumulative_function(value)
  Math.incomplete_beta_function(value, alpha, beta)
end
density_function(value) click to toggle source
# File lib/statistics/distribution/beta.rb, line 15
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
mean() click to toggle source
# File lib/statistics/distribution/beta.rb, line 30
def mean
  return if alpha + beta == 0
  alpha / (alpha + beta)
end
mode() click to toggle source
# File lib/statistics/distribution/beta.rb, line 24
def mode
  return unless alpha > 1 && beta > 1

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