Module: Distribution::Binomial::Ruby_

Defined in:
lib/distribution/binomial/ruby.rb

Class Method Summary collapse

Class Method Details

.cdf(k, n, pr) ⇒ Object



9
10
11
12
# File 'lib/distribution/binomial/ruby.rb', line 9

def cdf(k,n,pr)
  #(0..x.floor).inject(0) {|ac,i| ac+pdf(i,n,pr)}
  Math.regularized_beta_function(1-pr,n - k,k+1)
end

.exact_cdf(k, n, pr) ⇒ Object



13
14
15
# File 'lib/distribution/binomial/ruby.rb', line 13

def exact_cdf(k,n,pr)
  (0..k).inject(0) {|ac,i| ac+pdf(i,n,pr)}
end

.p_value(prob, n, pr) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/distribution/binomial/ruby.rb', line 16

def p_value(prob,n,pr)
  ac=0
  (0..n).each do |i|
    ac+=pdf(i,n,pr)
    return i if prob<=ac
  end
end

.pdf(k, n, pr) ⇒ Object Also known as: exact_pdf



5
6
7
8
# File 'lib/distribution/binomial/ruby.rb', line 5

def pdf(k,n,pr)
  raise "k>n" if k>n
	  Math.binomial_coefficient(n,k)*(pr**k)*(1-pr)**(n-k)          
end