rubythinking 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.DS_Store +0 -0
- data/.gitignore +3 -0
- data/.ipynb_checkpoints/2H1_2H2-checkpoint.ipynb +242 -0
- data/.ipynb_checkpoints/2M1-checkpoint.ipynb +559 -0
- data/.ipynb_checkpoints/2M2-checkpoint.ipynb +269 -0
- data/.ipynb_checkpoints/2M3-checkpoint.ipynb +134 -0
- data/.ruby-version +1 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +42 -0
- data/LICENSE.txt +21 -0
- data/README.md +94 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/rubythinking/distributions/binomial.rb +29 -0
- data/lib/rubythinking/distributions.rb +4 -0
- data/lib/rubythinking/version.rb +3 -0
- data/lib/rubythinking.rb +17 -0
- data/local_reinstall.sh +1 -0
- data/r/0_all.R +4600 -0
- data/r/2_6.R +11 -0
- data/r/2_7.R +5 -0
- data/r/4.R +2 -0
- data/rubythinking.gemspec +32 -0
- metadata +129 -0
data/bin/setup
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
class Rubythinking::Distributions::Binomial
|
2
|
+
class << self
|
3
|
+
def samples(n, size:, success:)
|
4
|
+
dist = Croupier::Distributions::Binomial.new(size: size, success: success)
|
5
|
+
samples = dist.to_enum.take(n)
|
6
|
+
end
|
7
|
+
|
8
|
+
def density(value:, size:, success:)
|
9
|
+
# Use variable names often used in math
|
10
|
+
# textbooks and wikipedia to have code
|
11
|
+
# close to the formula
|
12
|
+
k = value
|
13
|
+
n = size
|
14
|
+
p = success
|
15
|
+
|
16
|
+
(factorial(n).to_f / (factorial(k) * factorial(n - k))).to_f * (p**k) * ((1-p)**(n-k))
|
17
|
+
end
|
18
|
+
|
19
|
+
def factorial(n)
|
20
|
+
return 1 if n < 1
|
21
|
+
n.to_i.downto(1).inject(:*)
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
def likelihood(w, l, p)
|
26
|
+
density(value: w, size: (w+l), success: p)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/rubythinking.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require "rubythinking/version"
|
2
|
+
require "rubythinking/distributions"
|
3
|
+
require "rubythinking/distributions/binomial"
|
4
|
+
require "vega"
|
5
|
+
require "cmd_stan_rb"
|
6
|
+
require "croupier"
|
7
|
+
|
8
|
+
module Rubythinking
|
9
|
+
# Mimicks R API
|
10
|
+
def dbinom(value, size:, prob:)
|
11
|
+
Rubythinking::Distributions::Binomial.density(value: value, success: prob, size: size)
|
12
|
+
end
|
13
|
+
|
14
|
+
def rbinom(n, size:, prob:)
|
15
|
+
Rubythinking::Distributions::Binomial.samples(n, success: prob, size: size)
|
16
|
+
end
|
17
|
+
end
|
data/local_reinstall.sh
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
gem build rubythinking.gemspec && gem install rubythinking-0.1.0.gem && iruby register --force
|