ruby-statistics 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +2 -1
- data/lib/statistics/distribution/normal.rb +56 -0
- data/lib/statistics/version.rb +1 -1
- data/ruby-statistics.gemspec +0 -1
- metadata +22 -43
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 848fec0cdedc0a7bbf7e0b9a0b76dc51c977a2af07e10e939eafea73a2d40c04
|
4
|
+
data.tar.gz: 57b11ee97d5d6ef128f5ed080a0d4e6c98be97fb2845c34eed1b6363e25d98a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc5f0624271c87842e7e0de7f82c662fa8115ab5bff7b0d834c1771b30c18ee5f7d699ae3579c1eb2a472a103ee33d66606ca134e3f6a1d2cbe6a54cc97221a8
|
7
|
+
data.tar.gz: eed125d00807ece033d3c29498f6df9d727fc117d06e73aca10af2ce0fedccebf76835a36a9fcacd610d6647e4903d7b4a98ac67e0accb7c24af5ecfd6967f96
|
data/.travis.yml
CHANGED
@@ -79,5 +79,61 @@ module Statistics
|
|
79
79
|
euler/Math.sqrt(2 * Math::PI)
|
80
80
|
end
|
81
81
|
end
|
82
|
+
|
83
|
+
# Inverse Standard Normal distribution:
|
84
|
+
# References:
|
85
|
+
# https://en.wikipedia.org/wiki/Inverse_distribution
|
86
|
+
# http://www.source-code.biz/snippets/vbasic/9.htm
|
87
|
+
class InverseStandardNormal < StandardNormal
|
88
|
+
A1 = -39.6968302866538
|
89
|
+
A2 = 220.946098424521
|
90
|
+
A3 = -275.928510446969
|
91
|
+
A4 = 138.357751867269
|
92
|
+
A5 = -30.6647980661472
|
93
|
+
A6 = 2.50662827745924
|
94
|
+
B1 = -54.4760987982241
|
95
|
+
B2 = 161.585836858041
|
96
|
+
B3 = -155.698979859887
|
97
|
+
B4 = 66.8013118877197
|
98
|
+
B5 = -13.2806815528857
|
99
|
+
C1 = -7.78489400243029E-03
|
100
|
+
C2 = -0.322396458041136
|
101
|
+
C3 = -2.40075827716184
|
102
|
+
C4 = -2.54973253934373
|
103
|
+
C5 = 4.37466414146497
|
104
|
+
C6 = 2.93816398269878
|
105
|
+
D1 = 7.78469570904146E-03
|
106
|
+
D2 = 0.32246712907004
|
107
|
+
D3 = 2.445134137143
|
108
|
+
D4 = 3.75440866190742
|
109
|
+
P_LOW = 0.02425
|
110
|
+
P_HIGH = 1 - P_LOW
|
111
|
+
|
112
|
+
def density_function(_)
|
113
|
+
raise NotImplementedError
|
114
|
+
end
|
115
|
+
|
116
|
+
def random(elements: 1, seed: Random.new_seed)
|
117
|
+
raise NotImplementedError
|
118
|
+
end
|
119
|
+
|
120
|
+
def cumulative_function(value)
|
121
|
+
return if value < 0.0 || value > 1.0
|
122
|
+
return -1.0 * Float::INFINITY if value.zero?
|
123
|
+
return Float::INFINITY if value == 1.0
|
124
|
+
|
125
|
+
if value < P_LOW
|
126
|
+
q = Math.sqrt((Math.log(value) * -2.0))
|
127
|
+
(((((C1 * q + C2) * q + C3) * q + C4) * q + C5) * q + C6) / ((((D1 * q + D2) * q + D3) * q + D4) * q + 1.0)
|
128
|
+
elsif value <= P_HIGH
|
129
|
+
q = value - 0.5
|
130
|
+
r = q ** 2
|
131
|
+
(((((A1 * r + A2) * r + A3) * r + A4) * r + A5) * r + A6) * q / (((((B1 * r + B2) * r + B3) * r + B4) * r + B5) * r + 1.0)
|
132
|
+
else
|
133
|
+
q = Math.sqrt((Math.log(1 - value) * -2.0))
|
134
|
+
- (((((C1 * q + C2) * q + C3) * q + C4) * q + C5) * q + C6) / ((((D1 * q + D2) * q + D3) * q + D4) * q + 1)
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
82
138
|
end
|
83
139
|
end
|
data/lib/statistics/version.rb
CHANGED
data/ruby-statistics.gemspec
CHANGED
@@ -27,7 +27,6 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
28
28
|
spec.require_paths = ["lib"]
|
29
29
|
|
30
|
-
spec.add_development_dependency "bundler",'~> 1.15', '>= 1.15.4'
|
31
30
|
spec.add_development_dependency "rake", '~> 12.0', '>= 12.0.0'
|
32
31
|
spec.add_development_dependency "rspec", '~> 3.6', '>= 3.6.0'
|
33
32
|
spec.add_development_dependency "grb", '~> 0.4.1', '>= 0.4.1'
|
metadata
CHANGED
@@ -1,113 +1,93 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-statistics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- esteban zapata
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: rake
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.15'
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 1.15.4
|
23
|
-
type: :development
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '1.15'
|
30
17
|
- - ">="
|
31
18
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: rake
|
35
|
-
requirement: !ruby/object:Gem::Requirement
|
36
|
-
requirements:
|
19
|
+
version: 12.0.0
|
37
20
|
- - "~>"
|
38
21
|
- !ruby/object:Gem::Version
|
39
22
|
version: '12.0'
|
40
|
-
- - ">="
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
version: 12.0.0
|
43
23
|
type: :development
|
44
24
|
prerelease: false
|
45
25
|
version_requirements: !ruby/object:Gem::Requirement
|
46
26
|
requirements:
|
47
|
-
- - "~>"
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '12.0'
|
50
27
|
- - ">="
|
51
28
|
- !ruby/object:Gem::Version
|
52
29
|
version: 12.0.0
|
30
|
+
- - "~>"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '12.0'
|
53
33
|
- !ruby/object:Gem::Dependency
|
54
34
|
name: rspec
|
55
35
|
requirement: !ruby/object:Gem::Requirement
|
56
36
|
requirements:
|
57
|
-
- - "~>"
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: '3.6'
|
60
37
|
- - ">="
|
61
38
|
- !ruby/object:Gem::Version
|
62
39
|
version: 3.6.0
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '3.6'
|
63
43
|
type: :development
|
64
44
|
prerelease: false
|
65
45
|
version_requirements: !ruby/object:Gem::Requirement
|
66
46
|
requirements:
|
67
|
-
- - "~>"
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '3.6'
|
70
47
|
- - ">="
|
71
48
|
- !ruby/object:Gem::Version
|
72
49
|
version: 3.6.0
|
50
|
+
- - "~>"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '3.6'
|
73
53
|
- !ruby/object:Gem::Dependency
|
74
54
|
name: grb
|
75
55
|
requirement: !ruby/object:Gem::Requirement
|
76
56
|
requirements:
|
77
|
-
- - "
|
57
|
+
- - ">="
|
78
58
|
- !ruby/object:Gem::Version
|
79
59
|
version: 0.4.1
|
80
|
-
- - "
|
60
|
+
- - "~>"
|
81
61
|
- !ruby/object:Gem::Version
|
82
62
|
version: 0.4.1
|
83
63
|
type: :development
|
84
64
|
prerelease: false
|
85
65
|
version_requirements: !ruby/object:Gem::Requirement
|
86
66
|
requirements:
|
87
|
-
- - "
|
67
|
+
- - ">="
|
88
68
|
- !ruby/object:Gem::Version
|
89
69
|
version: 0.4.1
|
90
|
-
- - "
|
70
|
+
- - "~>"
|
91
71
|
- !ruby/object:Gem::Version
|
92
72
|
version: 0.4.1
|
93
73
|
- !ruby/object:Gem::Dependency
|
94
74
|
name: byebug
|
95
75
|
requirement: !ruby/object:Gem::Requirement
|
96
76
|
requirements:
|
97
|
-
- - "
|
77
|
+
- - ">="
|
98
78
|
- !ruby/object:Gem::Version
|
99
79
|
version: 9.1.0
|
100
|
-
- - "
|
80
|
+
- - "~>"
|
101
81
|
- !ruby/object:Gem::Version
|
102
82
|
version: 9.1.0
|
103
83
|
type: :development
|
104
84
|
prerelease: false
|
105
85
|
version_requirements: !ruby/object:Gem::Requirement
|
106
86
|
requirements:
|
107
|
-
- - "
|
87
|
+
- - ">="
|
108
88
|
- !ruby/object:Gem::Version
|
109
89
|
version: 9.1.0
|
110
|
-
- - "
|
90
|
+
- - "~>"
|
111
91
|
- !ruby/object:Gem::Version
|
112
92
|
version: 9.1.0
|
113
93
|
description: |-
|
@@ -180,8 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
180
160
|
- !ruby/object:Gem::Version
|
181
161
|
version: '0'
|
182
162
|
requirements: []
|
183
|
-
|
184
|
-
rubygems_version: 2.7.7
|
163
|
+
rubygems_version: 3.0.3
|
185
164
|
signing_key:
|
186
165
|
specification_version: 4
|
187
166
|
summary: A ruby gem for som specific statistics. Inspired by the jStat js library.
|