ruby-statistics 2.0.1 → 2.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7546fee2f10c1fe2f36d3fa68c802c05e530d861
4
- data.tar.gz: de55a92ca03b96a6b431374d202869dc8bcc96a5
2
+ SHA256:
3
+ metadata.gz: 8acc3f5b58158ceacc6f135095810d06e001808af321be98a58e341890cdbf12
4
+ data.tar.gz: 6e71f846819896c499afe4268ac836f1a57be655ef0df35019d4e99cd52a90a5
5
5
  SHA512:
6
- metadata.gz: 9c89aebd72ea19bf0fb9126bc4d06c0873cb5c33a1b7f056622b14a523429cab78137236c954a1caf0238b5484ba26962f95007f1934475fcddd88a4b40dd46a
7
- data.tar.gz: 1b540c4f92eed695944857f83332418c209f6b05af785c4353b981eb9cbb21861b3bc3140d608cf3f689162fe5894df13da64713174198f42b8b59030f30fa38
6
+ metadata.gz: 0d71ff94c0fca0a0eb439a82b9392926f8c96234e76b687200e3ad2a25183a5226dfc294f96a4cec892c4143c5faf3753cacb38da597d1d3d063858db16213cb
7
+ data.tar.gz: 6264ff4088fc85f2c718b1404dc18f27012c7761f42ac6174e7810615d667c4c3d84166e0def623a041cefc1531cab186141d3ff026e7ec4d97ad3eed9aa64d4
@@ -1,6 +1,11 @@
1
1
  module Statistics
2
2
  module StatisticalTest
3
3
  class TTest
4
+ # Errors for Zero std
5
+ class ZeroStdError < StandardError
6
+ STD_ERROR_MSG = 'Standard deviation for the difference or group is zero. Please, reconsider sample contents'.freeze
7
+ end
8
+
4
9
  # Perform a T-Test for one or two samples.
5
10
  # For the tails param, we need a symbol: :one_tail or :two_tail
6
11
  def self.perform(alpha, tails, *args)
@@ -8,9 +13,13 @@ module Statistics
8
13
 
9
14
  degrees_of_freedom = 0
10
15
 
16
+ # If the comparison mean has been specified
11
17
  t_score = if args[0].is_a? Numeric
12
18
  data_mean = args[1].mean
13
19
  data_std = args[1].standard_deviation
20
+
21
+ raise ZeroStdError, ZeroStdError::STD_ERROR_MSG if data_std == 0
22
+
14
23
  comparison_mean = args[0]
15
24
  degrees_of_freedom = args[1].size
16
25
 
@@ -43,11 +52,17 @@ module Statistics
43
52
  end
44
53
 
45
54
  def self.paired_test(alpha, tails, left_group, right_group)
55
+ raise StandardError, 'both samples are the same' if left_group == right_group
56
+
46
57
  # Handy snippet grabbed from https://stackoverflow.com/questions/2682411/ruby-sum-corresponding-members-of-two-or-more-arrays
47
58
  differences = [left_group, right_group].transpose.map { |value| value.reduce(:-) }
48
59
 
49
60
  degrees_of_freedom = differences.size - 1
50
- down = differences.standard_deviation/Math.sqrt(differences.size)
61
+ difference_std = differences.standard_deviation
62
+
63
+ raise ZeroStdError, ZeroStdError::STD_ERROR_MSG if difference_std == 0
64
+
65
+ down = difference_std/Math.sqrt(differences.size)
51
66
 
52
67
  t_score = (differences.mean - 0)/down.to_f
53
68
 
@@ -1,3 +1,3 @@
1
1
  module Statistics
2
- VERSION = "2.0.1"
2
+ VERSION = "2.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-statistics
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - esteban zapata
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-05 00:00:00.000000000 Z
11
+ date: 2018-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -173,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
173
173
  version: '0'
174
174
  requirements: []
175
175
  rubyforge_project:
176
- rubygems_version: 2.5.2.1
176
+ rubygems_version: 2.7.3
177
177
  signing_key:
178
178
  specification_version: 4
179
179
  summary: A ruby gem for som specific statistics. Inspired by the jStat js library.