Module: Distribution::Binomial::Ruby_
- Defined in:
- lib/distribution/binomial/ruby.rb
Class Method Summary collapse
- .cdf(k, n, pr) ⇒ Object
- .exact_cdf(k, n, pr) ⇒ Object
- .p_value(prob, n, pr) ⇒ Object
- .pdf(k, n, pr) ⇒ Object (also: exact_pdf)
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 |