statsample 0.16.0 → 0.17.0

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.
Files changed (49) hide show
  1. data.tar.gz.sig +0 -0
  2. data/History.txt +7 -0
  3. data/Manifest.txt +6 -4
  4. data/README.txt +5 -1
  5. data/Rakefile +1 -1
  6. data/examples/boxplot.rb +17 -0
  7. data/examples/dominance_analysis_bootstrap.rb +5 -0
  8. data/examples/histogram.rb +14 -0
  9. data/examples/scatterplot.rb +4 -3
  10. data/lib/distribution/normalbivariate.rb +1 -1
  11. data/lib/statsample.rb +16 -3
  12. data/lib/statsample/bivariate.rb +4 -2
  13. data/lib/statsample/converter/csv.rb +0 -2
  14. data/lib/statsample/converters.rb +13 -1
  15. data/lib/statsample/dataset.rb +23 -15
  16. data/lib/statsample/dominanceanalysis.rb +3 -2
  17. data/lib/statsample/dominanceanalysis/bootstrap.rb +2 -1
  18. data/lib/statsample/factor/parallelanalysis.rb +1 -1
  19. data/lib/statsample/factor/principalaxis.rb +1 -1
  20. data/lib/statsample/graph.rb +2 -0
  21. data/lib/statsample/graph/boxplot.rb +234 -0
  22. data/lib/statsample/graph/histogram.rb +133 -0
  23. data/lib/statsample/graph/scatterplot.rb +1 -9
  24. data/lib/statsample/histogram.rb +47 -11
  25. data/lib/statsample/mle.rb +4 -4
  26. data/lib/statsample/mle/normal.rb +3 -3
  27. data/lib/statsample/regression/multiple/baseengine.rb +1 -1
  28. data/lib/statsample/regression/multiple/gslengine.rb +0 -1
  29. data/lib/statsample/regression/multiple/matrixengine.rb +1 -1
  30. data/lib/statsample/reliability.rb +1 -0
  31. data/lib/statsample/reliability/scaleanalysis.rb +3 -51
  32. data/lib/statsample/reliability/skillscaleanalysis.rb +93 -0
  33. data/lib/statsample/srs.rb +1 -1
  34. data/lib/statsample/test/umannwhitney.rb +1 -1
  35. data/lib/statsample/vector.rb +13 -36
  36. data/test/test_factor.rb +1 -1
  37. data/test/test_ggobi.rb +0 -5
  38. data/test/test_histogram.rb +75 -18
  39. data/test/test_mle.rb +0 -44
  40. data/test/test_reliability_skillscale.rb +41 -0
  41. data/test/test_statistics.rb +3 -3
  42. data/test/test_stest.rb +2 -2
  43. data/test/test_vector.rb +13 -8
  44. metadata +36 -18
  45. metadata.gz.sig +0 -0
  46. data/lib/statsample/combination.rb +0 -114
  47. data/lib/statsample/permutation.rb +0 -98
  48. data/test/test_combination.rb +0 -37
  49. data/test/test_permutation.rb +0 -42
@@ -62,7 +62,7 @@ module Statsample
62
62
  # Uses estimated proportion, sample without replacement
63
63
 
64
64
  def proportion_confidence_interval(p, sam,pop , x)
65
- f=sam.quo(pop)
65
+ #f=sam.quo(pop)
66
66
  one_range=x * Math::sqrt((qf(sam, pop) * p * (1-p)).quo(sam-1)) + (1.quo(sam * 2.0))
67
67
  [p-one_range, p+one_range]
68
68
  end
@@ -78,7 +78,7 @@ module Statsample
78
78
  def self.distribution_permutations(n1,n2)
79
79
  base=[0]*n1+[1]*n2
80
80
  po=Statsample::Permutation.new(base)
81
- upper=0
81
+
82
82
  total=n1*n2
83
83
  req={}
84
84
  po.each do |perm|
@@ -154,12 +154,12 @@ module Statsample
154
154
  end
155
155
 
156
156
  def _dump(i) # :nodoc:
157
- Marshal.dump({'data'=>@data,'missing_values'=>@missing_values, 'labels'=>@labels, 'type'=>@type})
157
+ Marshal.dump({'data'=>@data,'missing_values'=>@missing_values, 'labels'=>@labels, 'type'=>@type,'name'=>@name})
158
158
  end
159
159
 
160
160
  def self._load(data) # :nodoc:
161
161
  h=Marshal.load(data)
162
- Vector.new(h['data'], h['type'],:missing_values=> h['missing_values'], :labels=>h['labels'])
162
+ Vector.new(h['data'], h['type'], :missing_values=> h['missing_values'], :labels=>h['labels'], :name=>h['name'])
163
163
  end
164
164
  # Returns a new vector, with data modified by block.
165
165
  # Equivalent to create a Vector after #collect on data
@@ -570,32 +570,6 @@ module Statsample
570
570
  a
571
571
  }
572
572
  end
573
- # Plot frequencies on a chart, using gnuplot
574
- def plot_frequencies
575
- require 'gnuplot'
576
- x=[]
577
- y=[]
578
- self.frequencies.sort.each{|k,v|
579
- x.push(k)
580
- y.push(v)
581
- }
582
- Gnuplot.open do |gp|
583
- Gnuplot::Plot.new( gp ) do |plot|
584
- plot.boxwidth("0.9 absolute")
585
- plot.yrange("[0:#{y.max}]")
586
- plot.style("fill solid 1.00 border -1")
587
- plot.set("xtics border in scale 1,0.5 nomirror rotate by -45 offset character 0, 0, 0")
588
- plot.style("histogram")
589
- plot.style("data histogram")
590
- i=-1
591
- plot.set("xtics","("+x.collect{|v| i+=1; sprintf("\"%s\" %d",v,i)}.join(",")+")")
592
- plot.data << Gnuplot::DataSet.new( [y] ) do |ds|
593
- end
594
- end
595
- end
596
-
597
- end
598
-
599
573
 
600
574
  # Returns the most frequent item.
601
575
  def mode
@@ -878,21 +852,24 @@ module Statsample
878
852
 
879
853
  if bins.is_a? Array
880
854
  #h=Statsample::Histogram.new(self, bins)
881
- h=GSL::Histogram.alloc(bins)
855
+ h=Statsample::Histogram.alloc(bins)
882
856
  else
883
857
  # ugly patch. The upper limit for a bin has the form
884
858
  # x < range
885
859
  #h=Statsample::Histogram.new(self, bins)
886
- h=GSL::Histogram.alloc(bins,[@valid_data.min,@valid_data.max+0.0001])
860
+ min,max=Statsample::Util.nice(@valid_data.min,@valid_data.max)
861
+ # fix last data
862
+ if max==@valid_data.max
863
+ max+=1e-10
864
+ end
865
+ h=Statsample::Histogram.alloc(bins,[min,max])
866
+ # Fix last bin
867
+
887
868
  end
888
- h.increment(@gsl)
869
+ h.increment(@valid_data)
889
870
  h
890
871
  end
891
- def plot_histogram(bins=10,options="")
892
- check_type :scale
893
- self.histogram(bins).graph(options)
894
- end
895
-
872
+
896
873
  end
897
874
 
898
875
  # Coefficient of variation
data/test/test_factor.rb CHANGED
@@ -72,7 +72,7 @@ class StatsampleFactorTestCase < MiniTest::Unit::TestCase
72
72
  #puts pa.summary
73
73
  end
74
74
  def test_map
75
- fields=%w{height arm.span forearm lower.leg weight bitro.diameter chest.girth chest.width}
75
+ #fields=%w{height arm.span forearm lower.leg weight bitro.diameter chest.girth chest.width}
76
76
  m=Matrix[
77
77
  [ 1, 0.846, 0.805, 0.859, 0.473, 0.398, 0.301, 0.382],
78
78
  [ 0.846, 1, 0.881, 0.826, 0.376, 0.326, 0.277, 0.415],
data/test/test_ggobi.rb CHANGED
@@ -31,9 +31,4 @@ class StatsampleGGobiTestCase < MiniTest::Unit::TestCase
31
31
  assert_equal({'variable 2'=>{'a'=>1,'b'=>2,'c'=>3,'d'=>4}},carrier.conversions)
32
32
  assert_equal(['variable 2'],carrier.categorials)
33
33
  end
34
- def test_out
35
- filename="/tmp/test_statsample_ggobi.xml"
36
- go=Statsample::GGobi.out(@ds)
37
-
38
- end
39
34
  end
@@ -3,23 +3,80 @@ require(File.dirname(__FILE__)+'/helpers_tests.rb')
3
3
 
4
4
 
5
5
  class StatsampleHistogramTestCase < MiniTest::Unit::TestCase
6
- def test_control
7
- h = Statsample::Histogram.alloc(4)
8
- assert_equal([0.0]*4, h.bin)
9
- assert_equal([0.0]*5, h.range)
10
- h = Statsample::Histogram.alloc([1, 3, 7, 9, 20])
11
- assert_equal([0.0]*4, h.bin)
12
- assert_equal([1,3,7,9,20], h.range)
13
- h = Statsample::Histogram.alloc(5, [0, 5])
14
- assert_equal([0.0,1.0,2.0,3.0,4.0,5.0], h.range)
15
- assert_equal([0.0]*5,h.bin)
16
- h.increment(2.5)
17
- assert_equal([0.0,0.0,1.0,0.0,0.0], h.bin)
18
- h.increment([0.5,0.5,3.5,3.5])
19
- assert_equal([2.0,0.0,1.0,2.0,0.0], h.bin)
20
- h.increment(0)
21
- assert_equal([3.0,0.0,1.0,2.0,0.0], h.bin)
22
- h.increment(5)
23
- assert_equal([3.0,0.0,1.0,2.0,0.0], h.bin)
6
+ context Statsample::Histogram do
7
+ should "alloc correctly with integer" do
8
+ h = Statsample::Histogram.alloc(4)
9
+ assert_equal([0.0]*4, h.bin)
10
+ assert_equal([0.0]*5, h.range)
11
+ end
12
+ should "alloc correctly with array" do
13
+ h = Statsample::Histogram.alloc([1, 3, 7, 9, 20])
14
+ assert_equal([0.0]*4, h.bin)
15
+ assert_equal([1,3,7,9,20], h.range)
16
+ end
17
+ should "alloc correctly with integer and min, max array" do
18
+ h = Statsample::Histogram.alloc(5, [0, 5])
19
+ assert_equal([0.0,1.0,2.0,3.0,4.0,5.0], h.range)
20
+ assert_equal([0.0]*5,h.bin)
21
+ end
22
+ should "bin() method return correct number of bins" do
23
+ h = Statsample::Histogram.alloc(4)
24
+ assert_equal(4,h.bins)
25
+ end
26
+ should "increment correctly" do
27
+ h = Statsample::Histogram.alloc(5, [0, 5])
28
+ h.increment 2.5
29
+ assert_equal([0.0,0.0,1.0,0.0,0.0], h.bin)
30
+ h.increment [0.5,0.5,3.5,3.5]
31
+ assert_equal([2.0,0.0,1.0,2.0,0.0], h.bin)
32
+ h.increment 0
33
+ assert_equal([3.0,0.0,1.0,2.0,0.0], h.bin)
34
+ h.increment 5
35
+ assert_equal([3.0,0.0,1.0,2.0,0.0], h.bin)
36
+ end
37
+
38
+ should "alloc_uniform correctly with n, min,max" do
39
+ h = Statsample::Histogram.alloc_uniform(5,0,10)
40
+ assert_equal(5,h.bins)
41
+ assert_equal([0.0]*5,h.bin)
42
+ assert_equal([0.0,2.0,4.0,6.0,8.0,10.0], h.range)
43
+ end
44
+ should "alloc_uniform correctly with n, [min,max]" do
45
+ h = Statsample::Histogram.alloc_uniform(5, [0, 10])
46
+ assert_equal(5,h.bins)
47
+ assert_equal([0.0]*5,h.bin)
48
+ assert_equal([0.0,2.0,4.0,6.0,8.0,10.0], h.range)
49
+ end
50
+ should "get_range()" do
51
+ h = Statsample::Histogram.alloc_uniform(5,2,12)
52
+ 5.times {|i|
53
+ assert_equal([2+i*2, 4+i*2], h.get_range(i))
54
+ }
55
+ end
56
+ should "min() and max()" do
57
+ h=Statsample::Histogram.alloc_uniform(5,2,12)
58
+ assert_equal(2,h.min)
59
+ assert_equal(12,h.max)
60
+ end
61
+ should "max_val()" do
62
+ h = Statsample::Histogram.alloc(5, [0, 5])
63
+ 100.times {h.increment(rand*5)}
64
+ max=h.bin[0]
65
+ (1..4).each {|i|
66
+ max = h.bin[i] if h.bin[i] > max
67
+ }
68
+ assert_equal(max,h.max_val)
69
+ end
70
+ should "min_val()" do
71
+ h = Statsample::Histogram.alloc(5, [0, 5])
72
+ 100.times {h.increment(rand*5)}
73
+ min=h.bin[0]
74
+ (1..4).each {|i|
75
+ min = h.bin[i] if h.bin[i]<min
76
+ }
77
+ assert_equal(min,h.min_val)
78
+ end
79
+
80
+
24
81
  end
25
82
  end
data/test/test_mle.rb CHANGED
@@ -91,49 +91,5 @@ class StatsampleMLETestCase < MiniTest::Unit::TestCase
91
91
  }
92
92
  assert_equal(5,mle.iterations)
93
93
  end
94
- def atest_logit_alglib
95
- if(HAS_ALGIB)
96
- ds=Statsample::CSV.read(@file_binomial)
97
- constant=([1.0]*ds.cases).to_vector(:scale)
98
-
99
- ds_indep={'constant'=>constant, 'a'=>ds['a'],'b'=>ds['b'], 'c'=>ds['c']}.to_dataset(%w{constant a b c} )
100
-
101
- mat_x=ds_indep.to_matrix
102
- mat_y=ds['y'].to_matrix(:vertical)
103
- log=Alglib::Logit.build_from_matrix(ds.to_matrix)
104
- coeffs=log.unpack[0]
105
- b_alglib=Matrix.columns([[-coeffs[3], -coeffs[0], -coeffs[1], -coeffs[2]]])
106
- mle=Statsample::MLE::Logit.new
107
- ll_alglib=mle.log_likehood(mat_x,mat_y,b_alglib)
108
- b_newton=mle.newton_raphson(mat_x,mat_y)
109
- ll_pure_ruby=mle.log_likehood(mat_x,mat_y,b_newton)
110
- #p b_alglib
111
- #p b_newton
112
-
113
- assert_in_delta(ll_alglib,ll_pure_ruby,1)
114
- end
115
-
116
- end
117
- def atest_logit1
118
- log=Alglib::Logit.build_from_matrix(@ds.to_matrix)
119
- coeffs=log.unpack[0]
120
- b=Matrix.columns([[-coeffs[3],-coeffs[0],-coeffs[1],-coeffs[2]]])
121
- # puts "Coeficientes beta alglib:"
122
- #p b
123
- mle_alglib=Statsample::MLE::ln_mle(Statsample::MLE::Logit, @mat_x,@mat_y,b)
124
- # puts "MLE Alglib:"
125
- #p mle_alglib
126
- # Statsample::CSV.write(ds,"test_binomial.csv")
127
-
128
-
129
-
130
- # puts "iniciando newton"
131
- coeffs_nr=Statsample::MLE.newton_raphson(@mat_x,@mat_y, Statsample::MLE::Logit)
132
- #p coeffs_nr
133
- mle_pure_ruby=Statsample::MLE::ln_mle(Statsample::MLE::Logit, @mat_x,@mat_y,coeffs_nr)
134
- #p mle_pure_ruby
135
-
136
- #puts "Malo: #{mle_malo} Bueno: #{mle_bueno} : #{mle_malo-mle_bueno}"
137
- end
138
94
  end
139
95
 
@@ -0,0 +1,41 @@
1
+ $reliability_icc=nil
2
+ require(File.dirname(__FILE__)+'/helpers_tests.rb')
3
+ class StatsampleReliabilitySkillScaleTestCase < MiniTest::Unit::TestCase
4
+ context Statsample::Reliability::SkillScaleAnalysis do
5
+ setup do
6
+ options=%w{a b c d e}
7
+ cases=20
8
+ @id=cases.times.map {|v| v}.to_scale
9
+ @a=cases.times.map {options[rand(5)]}.to_vector
10
+ @b=cases.times.map {options[rand(5)]}.to_vector
11
+ @c=cases.times.map {options[rand(5)]}.to_vector
12
+ @d=cases.times.map {options[rand(5)]}.to_vector
13
+ @e=cases.times.map {rand()>0.8 ? nil : options[rand(5)]}.to_vector
14
+ @ds={'id'=>@id,'a'=>@a,'b'=>@b,'c'=>@c,'d'=>@d,'e'=>@e}.to_dataset
15
+ @key={'a'=>options[rand(5)], 'b'=>options[rand(5)], 'c'=>options[rand(5)], 'd'=>options[rand(5)],'e'=>options[rand(5)]}
16
+ @ssa=Statsample::Reliability::SkillScaleAnalysis.new(@ds, @key)
17
+ @ac=@a.map {|v| v==@key['a'] ? 1 : 0}.to_scale
18
+ @bc=@b.map {|v| v==@key['b'] ? 1 : 0}.to_scale
19
+ @cc=@c.map {|v| v==@key['c'] ? 1 : 0}.to_scale
20
+ @dc=@d.map {|v| v==@key['d'] ? 1 : 0}.to_scale
21
+ @ec=@e.map {|v| v.nil? ? nil : (v==@key['e'] ? 1 : 0)}.to_scale
22
+
23
+ end
24
+ should "return proper corrected dataset" do
25
+ cds={'id'=>@id, 'a'=>@ac,'b'=>@bc,'c'=>@cc,'d'=>@dc, 'e'=>@ec}.to_dataset
26
+ assert_equal(cds, @ssa.corrected_dataset)
27
+ end
28
+ should "return proper corrected minimal dataset" do
29
+ cdsm={'a'=>@ac,'b'=>@bc,'c'=>@cc,'d'=>@dc, 'e'=>@ec}.to_dataset
30
+ assert_equal(cdsm, @ssa.corrected_dataset_minimal)
31
+ end
32
+ should "return correct vector_sum and vector_sum" do
33
+ cdsm=@ssa.corrected_dataset_minimal
34
+ assert_equal(cdsm.vector_sum, @ssa.vector_sum)
35
+ assert_equal(cdsm.vector_mean, @ssa.vector_mean)
36
+ end
37
+ should "return valid summary" do
38
+ assert(@ssa.summary.size>0)
39
+ end
40
+ end
41
+ end
@@ -35,7 +35,7 @@ class StatsampleStatisicsTestCase < MiniTest::Unit::TestCase
35
35
  v=([42]*23+[41]*4+[36]*1+[32]*1+[29]*1+[27]*2+[23]*1+[19]*1+[16]*2+[15]*2+[14,11,10,9,7]+ [6]*3+[5]*2+[4,3]).to_vector(:scale)
36
36
  assert_equal(50,v.size)
37
37
  assert_equal(1471,v.sum())
38
- limits=Statsample::SRS.mean_confidence_interval_z(v.mean(), v.sds(), v.size,676,0.80)
38
+ #limits=Statsample::SRS.mean_confidence_interval_z(v.mean(), v.sds(), v.size,676,0.80)
39
39
  end
40
40
  def test_estimation_proportion
41
41
  # total
@@ -55,9 +55,9 @@ class StatsampleStatisicsTestCase < MiniTest::Unit::TestCase
55
55
  end
56
56
  def test_ml
57
57
  if(true)
58
- real=[1,1,1,1].to_vector(:scale)
58
+ #real=[1,1,1,1].to_vector(:scale)
59
59
 
60
- pred=[0.0001,0.0001,0.0001,0.0001].to_vector(:scale)
60
+ #pred=[0.0001,0.0001,0.0001,0.0001].to_vector(:scale)
61
61
  # puts Statsample::Bivariate.maximum_likehood_dichotomic(pred,real)
62
62
 
63
63
  end
data/test/test_stest.rb CHANGED
@@ -6,7 +6,7 @@ class StatsampleTestTestCase < MiniTest::Unit::TestCase
6
6
  real=Matrix[[95,95],[45,155]]
7
7
  expected=Matrix[[68,122],[72,128]]
8
8
  assert_nothing_raised do
9
- chi=Statsample::Test.chi_square(real,expected)
9
+ Statsample::Test.chi_square(real,expected)
10
10
  end
11
11
  chi=Statsample::Test.chi_square(real,expected).chi_square
12
12
  assert_in_delta(32.53,chi,0.1)
@@ -15,7 +15,7 @@ class StatsampleTestTestCase < MiniTest::Unit::TestCase
15
15
  def test_chi_square_matrix_only_observed
16
16
  observed=Matrix[[20,30,40],[30,40,50],[60,70,80],[10,20,40]]
17
17
  assert_nothing_raised do
18
- chi=Statsample::Test.chi_square(observed)
18
+ Statsample::Test.chi_square(observed)
19
19
  end
20
20
  chi=Statsample::Test.chi_square(observed)
21
21
  assert_in_delta(9.5602, chi.chi_square, 0.0001)
data/test/test_vector.rb CHANGED
@@ -126,7 +126,15 @@ class StatsampleTestVector < MiniTest::Unit::TestCase
126
126
  end
127
127
  end
128
128
 
129
-
129
+ should "return correct histogram" do
130
+ a=10.times.map {|v| v}.to_scale
131
+ hist=a.histogram(2)
132
+ assert_equal([5,5], hist.bin)
133
+ 3.times do |i|
134
+ assert_in_delta(i*4.5, hist.get_range(i)[0], 1e-9)
135
+ end
136
+
137
+ end
130
138
  should "have a name" do
131
139
  @c.name=="Test Vector"
132
140
  end
@@ -197,15 +205,12 @@ class StatsampleTestVector < MiniTest::Unit::TestCase
197
205
  assert_equal(e,h)
198
206
  end
199
207
  should "have a summary with name on it" do
200
-
201
208
  assert_match(/#{@c.name}/, @c.summary)
202
209
  end
203
-
204
-
205
- end
206
- def test_split
207
- a = Statsample::Vector.new(["a","a,b","c,d","a,d","d",10,nil],:nominal)
208
- assert_equal([%w{a},%w{a b},%w{c d},%w{a d},%w{d},[10],nil], a.splitted)
210
+ should "split correctly" do
211
+ a = Statsample::Vector.new(["a","a,b","c,d","a,d","d",10,nil],:nominal)
212
+ assert_equal([%w{a},%w{a b},%w{c d},%w{a d},%w{d},[10],nil], a.splitted)
213
+ end
209
214
  end
210
215
 
211
216
 
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: statsample
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 91
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
- - 16
8
+ - 17
8
9
  - 0
9
- version: 0.16.0
10
+ version: 0.17.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - Claudio Bustos
@@ -35,7 +36,7 @@ cert_chain:
35
36
  rpP0jjs0
36
37
  -----END CERTIFICATE-----
37
38
 
38
- date: 2010-11-13 00:00:00 -03:00
39
+ date: 2010-12-09 00:00:00 -03:00
39
40
  default_executable:
40
41
  dependencies:
41
42
  - !ruby/object:Gem::Dependency
@@ -46,6 +47,7 @@ dependencies:
46
47
  requirements:
47
48
  - - ~>
48
49
  - !ruby/object:Gem::Version
50
+ hash: 7
49
51
  segments:
50
52
  - 0
51
53
  - 6
@@ -61,10 +63,11 @@ dependencies:
61
63
  requirements:
62
64
  - - ~>
63
65
  - !ruby/object:Gem::Version
66
+ hash: 7
64
67
  segments:
65
68
  - 1
66
- - 0
67
- version: "1.0"
69
+ - 4
70
+ version: "1.4"
68
71
  type: :runtime
69
72
  version_requirements: *id002
70
73
  - !ruby/object:Gem::Dependency
@@ -75,6 +78,7 @@ dependencies:
75
78
  requirements:
76
79
  - - ~>
77
80
  - !ruby/object:Gem::Version
81
+ hash: 23
78
82
  segments:
79
83
  - 0
80
84
  - 2
@@ -88,8 +92,9 @@ dependencies:
88
92
  requirement: &id004 !ruby/object:Gem::Requirement
89
93
  none: false
90
94
  requirements:
91
- - - ">="
95
+ - - ">"
92
96
  - !ruby/object:Gem::Version
97
+ hash: 3
93
98
  segments:
94
99
  - 0
95
100
  version: "0"
@@ -103,6 +108,7 @@ dependencies:
103
108
  requirements:
104
109
  - - ~>
105
110
  - !ruby/object:Gem::Version
111
+ hash: 11
106
112
  segments:
107
113
  - 0
108
114
  - 0
@@ -117,6 +123,7 @@ dependencies:
117
123
  requirements:
118
124
  - - ~>
119
125
  - !ruby/object:Gem::Version
126
+ hash: 17
120
127
  segments:
121
128
  - 0
122
129
  - 3
@@ -132,6 +139,7 @@ dependencies:
132
139
  requirements:
133
140
  - - ">"
134
141
  - !ruby/object:Gem::Version
142
+ hash: 3
135
143
  segments:
136
144
  - 0
137
145
  version: "0"
@@ -145,6 +153,7 @@ dependencies:
145
153
  requirements:
146
154
  - - ~>
147
155
  - !ruby/object:Gem::Version
156
+ hash: 29
148
157
  segments:
149
158
  - 0
150
159
  - 2
@@ -160,11 +169,12 @@ dependencies:
160
169
  requirements:
161
170
  - - ~>
162
171
  - !ruby/object:Gem::Version
172
+ hash: 21
163
173
  segments:
164
174
  - 0
165
- - 2
166
- - 2
167
- version: 0.2.2
175
+ - 3
176
+ - 3
177
+ version: 0.3.3
168
178
  type: :runtime
169
179
  version_requirements: *id009
170
180
  - !ruby/object:Gem::Dependency
@@ -175,6 +185,7 @@ dependencies:
175
185
  requirements:
176
186
  - - ">="
177
187
  - !ruby/object:Gem::Version
188
+ hash: 7
178
189
  segments:
179
190
  - 2
180
191
  - 0
@@ -190,6 +201,7 @@ dependencies:
190
201
  requirements:
191
202
  - - ">="
192
203
  - !ruby/object:Gem::Version
204
+ hash: 3
193
205
  segments:
194
206
  - 0
195
207
  version: "0"
@@ -203,6 +215,7 @@ dependencies:
203
215
  requirements:
204
216
  - - ~>
205
217
  - !ruby/object:Gem::Version
218
+ hash: 3
206
219
  segments:
207
220
  - 2
208
221
  - 0
@@ -217,11 +230,12 @@ dependencies:
217
230
  requirements:
218
231
  - - ">="
219
232
  - !ruby/object:Gem::Version
233
+ hash: 19
220
234
  segments:
221
235
  - 2
222
- - 6
223
- - 2
224
- version: 2.6.2
236
+ - 7
237
+ - 0
238
+ version: 2.7.0
225
239
  type: :development
226
240
  version_requirements: *id013
227
241
  description: |-
@@ -241,6 +255,7 @@ description: |-
241
255
  * Sample calculation related formulas
242
256
  * Structural Equation Modeling (SEM), using R libraries +sem+ and +OpenMx+
243
257
  * Creates reports on text, html and rtf, using ReportBuilder gem
258
+ * Graphics: Histogram, Boxplot and Scatterplot
244
259
  email:
245
260
  - clbustos@gmail.com
246
261
  executables:
@@ -268,10 +283,12 @@ files:
268
283
  - data/tetmat_matrix.txt
269
284
  - data/tetmat_test.txt
270
285
  - doc_latex/manual/equations.tex
286
+ - examples/boxplot.rb
271
287
  - examples/correlation_matrix.rb
272
288
  - examples/dataset.rb
273
289
  - examples/dominance_analysis.rb
274
290
  - examples/dominance_analysis_bootstrap.rb
291
+ - examples/histogram.rb
275
292
  - examples/icc.rb
276
293
  - examples/levene.rb
277
294
  - examples/multiple_regression.rb
@@ -303,7 +320,6 @@ files:
303
320
  - lib/statsample/bivariate.rb
304
321
  - lib/statsample/bivariate/pearson.rb
305
322
  - lib/statsample/codification.rb
306
- - lib/statsample/combination.rb
307
323
  - lib/statsample/converter/csv.rb
308
324
  - lib/statsample/converter/spss.rb
309
325
  - lib/statsample/converters.rb
@@ -318,6 +334,8 @@ files:
318
334
  - lib/statsample/factor/principalaxis.rb
319
335
  - lib/statsample/factor/rotation.rb
320
336
  - lib/statsample/graph.rb
337
+ - lib/statsample/graph/boxplot.rb
338
+ - lib/statsample/graph/histogram.rb
321
339
  - lib/statsample/graph/scatterplot.rb
322
340
  - lib/statsample/histogram.rb
323
341
  - lib/statsample/matrix.rb
@@ -326,7 +344,6 @@ files:
326
344
  - lib/statsample/mle/normal.rb
327
345
  - lib/statsample/mle/probit.rb
328
346
  - lib/statsample/multiset.rb
329
- - lib/statsample/permutation.rb
330
347
  - lib/statsample/regression.rb
331
348
  - lib/statsample/regression/binomial.rb
332
349
  - lib/statsample/regression/binomial/logit.rb
@@ -342,6 +359,7 @@ files:
342
359
  - lib/statsample/reliability/icc.rb
343
360
  - lib/statsample/reliability/multiscaleanalysis.rb
344
361
  - lib/statsample/reliability/scaleanalysis.rb
362
+ - lib/statsample/reliability/skillscaleanalysis.rb
345
363
  - lib/statsample/resample.rb
346
364
  - lib/statsample/rserve_extension.rb
347
365
  - lib/statsample/srs.rb
@@ -367,7 +385,6 @@ files:
367
385
  - test/test_bartlettsphericity.rb
368
386
  - test/test_bivariate.rb
369
387
  - test/test_codification.rb
370
- - test/test_combination.rb
371
388
  - test/test_crosstab.rb
372
389
  - test/test_csv.csv
373
390
  - test/test_csv.rb
@@ -382,10 +399,10 @@ files:
382
399
  - test/test_matrix.rb
383
400
  - test/test_mle.rb
384
401
  - test/test_multiset.rb
385
- - test/test_permutation.rb
386
402
  - test/test_regression.rb
387
403
  - test/test_reliability.rb
388
404
  - test/test_reliability_icc.rb
405
+ - test/test_reliability_skillscale.rb
389
406
  - test/test_resample.rb
390
407
  - test/test_rserve_extension.rb
391
408
  - test/test_srs.rb
@@ -431,6 +448,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
431
448
  requirements:
432
449
  - - ">="
433
450
  - !ruby/object:Gem::Version
451
+ hash: 3
434
452
  segments:
435
453
  - 0
436
454
  version: "0"
@@ -439,6 +457,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
439
457
  requirements:
440
458
  - - ">="
441
459
  - !ruby/object:Gem::Version
460
+ hash: 3
442
461
  segments:
443
462
  - 0
444
463
  version: "0"
@@ -453,7 +472,6 @@ test_files:
453
472
  - test/test_bivariate.rb
454
473
  - test/test_dominance_analysis.rb
455
474
  - test/test_factor.rb
456
- - test/test_permutation.rb
457
475
  - test/test_codification.rb
458
476
  - test/test_anovatwowaywithdataset.rb
459
477
  - test/test_umannwhitney.rb
@@ -464,7 +482,6 @@ test_files:
464
482
  - test/test_csv.rb
465
483
  - test/test_matrix.rb
466
484
  - test/test_gsl.rb
467
- - test/test_combination.rb
468
485
  - test/test_bartlettsphericity.rb
469
486
  - test/test_mle.rb
470
487
  - test/test_resample.rb
@@ -485,4 +502,5 @@ test_files:
485
502
  - test/test_dataset.rb
486
503
  - test/test_regression.rb
487
504
  - test/test_multiset.rb
505
+ - test/test_reliability_skillscale.rb
488
506
  - test/test_anovaoneway.rb