Class: Skab::Models::Poisson
Class Method Summary collapse
Instance Method Summary collapse
- #differential ⇒ Object
- #distribution ⇒ Object
-
#initialize(args) ⇒ Poisson
constructor
A new instance of Poisson.
- #percentile(p) ⇒ Object
Constructor Details
#initialize(args) ⇒ Poisson
Returns a new instance of Poisson.
5 6 7 8 9 |
# File 'lib/skab/models/poisson.rb', line 5 def initialize(args) @a = args.shift.to_i @b = args.shift.to_i @fact = { } end |
Class Method Details
.help ⇒ Object
45 46 47 48 49 50 51 |
# File 'lib/skab/models/poisson.rb', line 45 def self.help <<-USAGE skab [output] poisson [a] [b] \tWhere: [a] and [b] are integers \tPlots the poisson distribution for [a] and [b] USAGE end |
Instance Method Details
#differential ⇒ Object
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/skab/models/poisson.rb', line 23 def differential return @differential if @differential @differential = Hash.new(0) (0..limit).each do |a| (0..limit).each do |b| @differential[b - a] += distribution[b][2] * distribution[a][1] end end @differential end |
#distribution ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/skab/models/poisson.rb', line 11 def distribution return @distribution if @distribution @distribution = [] (0..limit).each do |n| @distribution[n] = [] @distribution[n][0] = n @distribution[n][1] = normal_approximation(n, a) @distribution[n][2] = normal_approximation(n, b) end @distribution end |
#percentile(p) ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/skab/models/poisson.rb', line 34 def percentile(p) sum = 0.0 Hash[differential.sort].each do |k, v| sum += v if sum >= p return k end end percentile end |