statsample 0.3.4 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data/History.txt +8 -0
  2. data/Manifest.txt +20 -2
  3. data/data/crime.txt +47 -0
  4. data/data/test_binomial.csv +201 -0
  5. data/demo/distribution_t.rb +2 -2
  6. data/demo/regression.rb +2 -1
  7. data/lib/distribution.rb +8 -0
  8. data/lib/distribution/chisquare.rb +24 -0
  9. data/lib/distribution/f.rb +25 -0
  10. data/lib/distribution/normal.rb +25 -0
  11. data/lib/distribution/t.rb +22 -0
  12. data/lib/matrix_extension.rb +78 -0
  13. data/lib/statistics2.rb +531 -0
  14. data/lib/statsample.rb +12 -9
  15. data/lib/statsample/anova.rb +1 -5
  16. data/lib/statsample/bivariate.rb +24 -20
  17. data/lib/statsample/combination.rb +14 -4
  18. data/lib/statsample/converters.rb +17 -1
  19. data/lib/statsample/dataset.rb +66 -10
  20. data/lib/statsample/dominanceanalysis/bootstrap.rb +1 -3
  21. data/lib/statsample/graph/gdchart.rb +2 -3
  22. data/lib/statsample/graph/svggraph.rb +8 -4
  23. data/lib/statsample/mle.rb +137 -0
  24. data/lib/statsample/mle/logit.rb +95 -0
  25. data/lib/statsample/mle/normal.rb +83 -0
  26. data/lib/statsample/mle/probit.rb +93 -0
  27. data/lib/statsample/regression.rb +3 -1
  28. data/lib/statsample/regression/binomial.rb +65 -0
  29. data/lib/statsample/regression/binomial/logit.rb +13 -0
  30. data/lib/statsample/regression/binomial/probit.rb +13 -0
  31. data/lib/statsample/regression/multiple.rb +61 -58
  32. data/lib/statsample/regression/multiple/rubyengine.rb +1 -1
  33. data/lib/statsample/srs.rb +5 -5
  34. data/lib/statsample/vector.rb +129 -59
  35. data/test/test_anova.rb +0 -5
  36. data/test/test_dataset.rb +13 -1
  37. data/test/test_distribution.rb +57 -0
  38. data/test/test_gsl.rb +22 -0
  39. data/test/test_logit.rb +22 -0
  40. data/test/test_mle.rb +140 -0
  41. data/test/test_r.rb +9 -0
  42. data/test/test_regression.rb +12 -4
  43. data/test/test_srs.rb +0 -4
  44. data/test/test_stata.rb +11 -0
  45. data/test/test_statistics.rb +0 -15
  46. data/test/test_vector.rb +11 -0
  47. metadata +28 -4
  48. data/lib/statsample/chidistribution.rb +0 -39
  49. data/lib/statsample/regression/logit.rb +0 -35
data/test/test_anova.rb CHANGED
@@ -21,12 +21,7 @@ class StatsampleAnovaTestCase < Test::Unit::TestCase
21
21
  assert_in_delta(23.568,@anova.f,0.001)
22
22
  anova2=Statsample::Anova::OneWay.new([@v1,@v1,@v1,@v1,@v2])
23
23
  assert_in_delta(3.960, anova2.f,0.001)
24
-
25
- if HAS_GSL
26
24
  assert(@anova.significance<0.01)
27
25
  assert_in_delta(0.016, anova2.significance,0.001)
28
- else
29
- puts "Skipped OneWay#significance (no GSL)"
30
- end
31
26
  end
32
27
  end
data/test/test_dataset.rb CHANGED
@@ -294,6 +294,18 @@ class StatsampleDatasetTestCase < Test::Unit::TestCase
294
294
  assert_equal(exp1,res)
295
295
  res=ds.verify('id',t1,t2,t3)
296
296
  assert_equal(exp2,res)
297
-
297
+ end
298
+ def test_compute_operation
299
+ v1=[1,2,3,4].to_vector(:scale)
300
+ v2=[4,3,2,1].to_vector(:scale)
301
+ v3=[10,20,30,40].to_vector(:scale)
302
+ vscale=[1.quo(2),1,3.quo(2),2].to_vector(:scale)
303
+ vsum=[1+4+10.0,2+3+20.0,3+2+30.0,4+1+40.0].to_vector(:scale)
304
+ vmult=[1*4,2*3,3*2,4*1].to_vector(:scale)
305
+ ds={'v1'=>v1,'v2'=>v2,'v3'=>v3}.to_dataset
306
+ assert_equal(vscale,ds.compute("v1/2"))
307
+ assert_equal(vsum,ds.compute("v1+v2+v3"))
308
+ assert_equal(vmult,ds.compute("v1*v2"))
309
+
298
310
  end
299
311
  end
@@ -0,0 +1,57 @@
1
+ $:.unshift(File.dirname(__FILE__)+'/../lib/')
2
+ require 'distribution'
3
+ require 'test/unit'
4
+ begin
5
+ require 'rbgsl'
6
+ NOT_GSL=false
7
+ rescue
8
+ NOT_GSL=true
9
+ end
10
+ class DistributionTestCase < Test::Unit::TestCase
11
+ def test_chi
12
+ if !NOT_GSL
13
+ [2,3,4,5].each{|k|
14
+ chis=rand()*10
15
+ area=Distribution::ChiSquare.cdf(chis, k)
16
+ assert_in_delta(area, GSL::Cdf.chisq_P(chis,k),0.0001)
17
+ assert_in_delta(chis, Distribution::ChiSquare.p_value(area,k),0.0001,"Error on prob #{area} and k #{k}")
18
+ }
19
+ end
20
+ end
21
+ def test_t
22
+ if !NOT_GSL
23
+ [-2,0.1,0.5,1,2].each{|t|
24
+ [2,5,10].each{|n|
25
+ area=Distribution::T.cdf(t,n)
26
+ assert_in_delta(area, GSL::Cdf.tdist_P(t,n),0.0001)
27
+ assert_in_delta(Distribution::T.p_value(area,n), GSL::Cdf.tdist_Pinv(area,n),0.0001)
28
+
29
+ }
30
+ }
31
+ end
32
+ end
33
+ def test_normal
34
+ if !NOT_GSL
35
+ [-2,0.1,0.5,1,2].each{|x|
36
+ area=Distribution::Normal.cdf(x)
37
+ assert_in_delta(area, GSL::Cdf.ugaussian_P(x),0.0001)
38
+ assert_in_delta(Distribution::Normal.p_value(area), GSL::Cdf.ugaussian_Pinv(area),0.0001)
39
+ }
40
+ end
41
+ end
42
+ def test_f
43
+ if !NOT_GSL
44
+ [0.1,0.5,1,2,10,20,30].each{|f|
45
+ [2,5,10].each{|n2|
46
+ [2,5,10].each{|n1|
47
+ area=Distribution::F.cdf(f,n1,n2)
48
+ assert_in_delta(area, GSL::Cdf.fdist_P(f,n1,n2),0.0001)
49
+ assert_in_delta(Distribution::F.p_value(area,n1,n2), GSL::Cdf.fdist_Pinv(area,n1,n2),0.0001)
50
+
51
+ }
52
+ }
53
+ }
54
+ end
55
+ end
56
+
57
+ end
data/test/test_gsl.rb ADDED
@@ -0,0 +1,22 @@
1
+ $:.unshift(File.dirname(__FILE__)+'/../lib/')
2
+ require 'statsample'
3
+ require 'test/unit'
4
+ require 'matrix_extension'
5
+ class StatsampleGSLTestCase < Test::Unit::TestCase
6
+ def test_matrix_to_gsl
7
+ if HAS_GSL
8
+ a=[1,2,3,4,20].to_vector(:scale)
9
+ b=[3,2,3,4,50].to_vector(:scale)
10
+ c=[6,2,3,4,3].to_vector(:scale)
11
+ ds={'a'=>a,'b'=>b,'c'=>c}.to_dataset
12
+ gsl=ds.to_matrix.to_gsl
13
+ assert_equal(5,gsl.size1)
14
+ assert_equal(3,gsl.size2)
15
+ matrix=gsl.to_matrix
16
+ assert_equal(5,matrix.row_size)
17
+ assert_equal(3,matrix.column_size)
18
+ end
19
+ end
20
+ end
21
+
22
+
@@ -0,0 +1,22 @@
1
+ $:.unshift(File.dirname(__FILE__)+'/../lib/')
2
+ require 'statsample'
3
+ require 'test/unit'
4
+ class StatsampleLogitTestCase < Test::Unit::TestCase
5
+ def test_logit_1
6
+ crime=File.dirname(__FILE__)+'/../data/test_binomial.csv'
7
+ ds=Statsample::CSV.read(crime)
8
+ lr=Statsample::Regression::Binomial::Logit.new(ds,'y')
9
+ assert_in_delta(-38.8669,lr.log_likehood,0.001)
10
+ assert_in_delta(-5.3658,lr.constant,0.001)
11
+
12
+ exp_coeffs={"a"=>0.3270,"b"=>0.8147, "c"=>-0.4031}
13
+ exp_coeffs.each{|k,v|
14
+ assert_in_delta(v,lr.coeffs[k],0.001)
15
+ }
16
+ exp_errors={'a'=>0.4390,'b'=>0.4270,'c'=>0.3819}
17
+ exp_errors.each{|k,v|
18
+ assert_in_delta(v,lr.coeffs_se[k],0.001)
19
+ }
20
+ assert_equal(7,lr.iterations)
21
+ end
22
+ end
data/test/test_mle.rb ADDED
@@ -0,0 +1,140 @@
1
+ $:.unshift(File.dirname(__FILE__)+'/../lib/')
2
+ require 'statsample'
3
+ require 'test/unit'
4
+ class StatsampleMLETestCase < Test::Unit::TestCase
5
+ def setup
6
+ @file_binomial=File.dirname(__FILE__)+'/../data/test_binomial.csv'
7
+ @crime=File.dirname(__FILE__)+'/../data/crime.txt'
8
+ @cases=100
9
+ a=Array.new()
10
+ b=Array.new()
11
+ c=Array.new()
12
+ y=Array.new()
13
+
14
+ @cases.times{|i|
15
+ a.push(2*rand()-i)
16
+ b.push(2*rand()-5+i)
17
+ c.push(2*rand()+i)
18
+ y_val=i+(rand()*@cases.quo(2) - @cases.quo(4))
19
+ y.push(y_val<(@cases/2.0) ? 0.0 : 1.0)
20
+ }
21
+ a=a.to_vector(:scale)
22
+ b=b.to_vector(:scale)
23
+ c=c.to_vector(:scale)
24
+ y=y.to_vector(:scale)
25
+
26
+ @ds_indep={'a'=>a,'b'=>b,'c'=>c}.to_dataset
27
+ constant=([1.0]*@cases).to_vector(:scale)
28
+ @ds_indep_2={'constant'=>constant,'a'=>a,'b'=>b,'c'=>c}.to_dataset
29
+ @ds_indep_2.fields=%w{constant a b c}
30
+ @mat_x=@ds_indep_2.to_matrix
31
+ @mat_y=y.to_matrix(:vertical)
32
+ @ds=@ds_indep.dup
33
+ @ds.add_vector('y',y)
34
+ end
35
+ def test_normal
36
+ y=Array.new()
37
+ y=@ds_indep.collect{|row|
38
+ row['a']*5+row['b']+row['c']+rand()*3
39
+ }
40
+ constant=([1]*@cases).to_vector(:scale)
41
+ ds_indep_2=@ds_indep.dup
42
+ ds_indep_2['constant']=constant
43
+ ds_indep_2.fields=%w{constant a b c}
44
+ mat_x=ds_indep_2.to_matrix
45
+ mat_y=y.to_matrix(:vertical)
46
+ mle=Statsample::MLE::Normal.new()
47
+ mle.verbose=false
48
+ coeffs_nr=mle.newton_raphson(mat_x,mat_y)
49
+ #p coeffs_nr
50
+ ds=@ds_indep.dup
51
+ ds.add_vector('y',y)
52
+ lr=Statsample::Regression::Multiple.listwise(ds,'y')
53
+ lr_constant = lr.constant
54
+ lr_coeffs = lr.coeffs
55
+ assert_in_delta(coeffs_nr[0,0], lr_constant,0.0000001)
56
+ assert_in_delta(coeffs_nr[1,0], lr_coeffs["a"],0.0000001)
57
+ assert_in_delta(coeffs_nr[2,0], lr_coeffs["b"],0.0000001)
58
+ assert_in_delta(coeffs_nr[3,0], lr_coeffs["c"],0.0000001)
59
+ end
60
+
61
+ def test_probit
62
+ ds=Statsample::CSV.read(@file_binomial)
63
+ constant=([1.0]*ds.cases).to_vector(:scale)
64
+ ds_indep={'constant'=>constant, 'a'=>ds['a'],'b'=>ds['b'], 'c'=>ds['c']}.to_dataset(%w{constant a b c})
65
+ mat_x=ds_indep.to_matrix
66
+ mat_y=ds['y'].to_matrix(:vertical)
67
+ mle=Statsample::MLE::Probit.new
68
+ b_probit=mle.newton_raphson(mat_x,mat_y)
69
+ ll=mle.log_likehood(mat_x,mat_y,b_probit)
70
+
71
+ b_exp=[-3.0670,0.1763,0.4483,-0.2240]
72
+ b_exp.each_index{|i|
73
+ assert_in_delta(b_exp[i], b_probit[i,0], 0.001)
74
+ }
75
+ assert_in_delta(-38.31559,ll,0.0001)
76
+ end
77
+ def test_logit_crime
78
+ ds=Statsample::PlainText.read(@crime, %w{crimerat maleteen south educ police60 police59 labor males pop nonwhite unemp1 unemp2 median belowmed})
79
+ constant=([1.0]*ds.cases).to_vector(:scale)
80
+ ds2=ds.dup(%w{maleteen south educ police59})
81
+ ds2['constant']=constant
82
+ ds2.fields=%w{constant maleteen south educ police59}
83
+ mat_x=ds2.to_matrix
84
+ mat_y=(ds.compute "(crimerat>=110) ? 1:0").to_matrix(:vertical)
85
+ mle=Statsample::MLE::Logit.new
86
+ b=mle.newton_raphson(mat_x,mat_y)
87
+ ll=mle.log_likehood(mat_x,mat_y,b)
88
+ assert_in_delta(-18.606959,ll,0.001)
89
+ exp=[-17.701, 0.0833,-1.117, 0.0229, 0.0581]
90
+ exp.each_index{|i|
91
+ assert_in_delta(exp[i],b[i,0],0.001)
92
+ }
93
+ assert_equal(5,mle.iterations)
94
+ end
95
+ def atest_logit_alglib
96
+ if(HAS_ALGIB)
97
+ ds=Statsample::CSV.read(@file_binomial)
98
+ constant=([1.0]*ds.cases).to_vector(:scale)
99
+
100
+ ds_indep={'constant'=>constant, 'a'=>ds['a'],'b'=>ds['b'], 'c'=>ds['c']}.to_dataset(%w{constant a b c} )
101
+
102
+ mat_x=ds_indep.to_matrix
103
+ mat_y=ds['y'].to_matrix(:vertical)
104
+ log=Alglib::Logit.build_from_matrix(ds.to_matrix)
105
+ coeffs=log.unpack[0]
106
+ b_alglib=Matrix.columns([[-coeffs[3], -coeffs[0], -coeffs[1], -coeffs[2]]])
107
+ mle=Statsample::MLE::Logit.new
108
+ ll_alglib=mle.log_likehood(mat_x,mat_y,b_alglib)
109
+ b_newton=mle.newton_raphson(mat_x,mat_y)
110
+ ll_pure_ruby=mle.log_likehood(mat_x,mat_y,b_newton)
111
+ #p b_alglib
112
+ #p b_newton
113
+
114
+ assert_in_delta(ll_alglib,ll_pure_ruby,1)
115
+ end
116
+
117
+ end
118
+ def atest_logit1
119
+ log=Alglib::Logit.build_from_matrix(@ds.to_matrix)
120
+ coeffs=log.unpack[0]
121
+ b=Matrix.columns([[-coeffs[3],-coeffs[0],-coeffs[1],-coeffs[2]]])
122
+ # puts "Coeficientes beta alglib:"
123
+ #p b
124
+ mle_alglib=Statsample::MLE::ln_mle(Statsample::MLE::Logit, @mat_x,@mat_y,b)
125
+ # puts "MLE Alglib:"
126
+ #p mle_alglib
127
+ # Statsample::CSV.write(ds,"test_binomial.csv")
128
+
129
+
130
+
131
+ # puts "iniciando newton"
132
+ coeffs_nr=Statsample::MLE.newton_raphson(@mat_x,@mat_y, Statsample::MLE::Logit)
133
+ #p coeffs_nr
134
+ mle_pure_ruby=Statsample::MLE::ln_mle(Statsample::MLE::Logit, @mat_x,@mat_y,coeffs_nr)
135
+ #p mle_pure_ruby
136
+
137
+ #puts "Malo: #{mle_malo} Bueno: #{mle_bueno} : #{mle_malo-mle_bueno}"
138
+ end
139
+ end
140
+
data/test/test_r.rb ADDED
@@ -0,0 +1,9 @@
1
+ $:.unshift(File.dirname(__FILE__)+'/../lib/')
2
+ require 'statsample'
3
+ require 'test/unit'
4
+
5
+ class StatsampleRTestCase < Test::Unit::TestCase
6
+ def test_basic
7
+ # Nothing yet
8
+ end
9
+ end
@@ -95,11 +95,7 @@ class StatsampleRegressionTestCase < Test::Unit::TestCase
95
95
  assert_in_delta(0.955,lr.r,0.001)
96
96
  assert_in_delta(0.913,lr.r2,0.001)
97
97
  assert_in_delta(20.908, lr.f,0.001)
98
- if HAS_GSL
99
98
  assert_in_delta(0.001, lr.significance, 0.001)
100
- else
101
- puts "#{lr.class}#significance not tested (not GSL)"
102
- end
103
99
  assert_in_delta(0.226,lr.tolerance("a"),0.001)
104
100
  coeffs_se={"a"=>1.171,"b"=>1.129,"c"=>0.072}
105
101
  ccoeffs_se=lr.coeffs_se
@@ -133,4 +129,16 @@ class StatsampleRegressionTestCase < Test::Unit::TestCase
133
129
  assert_in_delta(residuals[i],c_residuals[i],0.001)
134
130
  }
135
131
  end
132
+ def test_ds_by_exp
133
+ @a= [1,3,2,4,3,5,4,6,5,7].to_vector(:scale)
134
+ @b= [3,3,4,4,5,5,6,6,4,4].to_vector(:scale)
135
+ @c= [11,22,30,40,50,65,78,79,99,100].to_vector(:scale)
136
+ @d=%w{a b c a a c a a c a}.to_vector(:nominal)
137
+ @y=[3,4,5,6,7,8,9,10,20,30].to_vector(:scale)
138
+ ds={'a'=>@a,'b'=>@b,'c'=>@c,'d'=>@d,'y'=>@y}.to_dataset
139
+ #puts Statsample::Regression::Multiple.ds_by_exp(ds,"a+b=y")
140
+ #puts Statsample::Regression::Multiple.ds_by_exp(ds,"a+b*d=y")
141
+ #puts Statsample::Regression::Multiple.ds_by_exp(ds,"c+d=y")
142
+ end
143
+
136
144
  end
data/test/test_srs.rb CHANGED
@@ -4,12 +4,8 @@ require 'test/unit'
4
4
 
5
5
  class StatsampleSrsTestCase < Test::Unit::TestCase
6
6
  def test_std_error
7
- if HAS_GSL
8
7
  assert_equal(384,Statsample::SRS.estimation_n0(0.05,0.5,0.95).to_i)
9
8
  assert_equal(108,Statsample::SRS.estimation_n(0.05,0.5,150,0.95).to_i)
10
- else
11
- puts "Statsample::SRS.estimation_n0 not tested (needs ruby-gsl)"
12
- end
13
9
  assert_in_delta(0.0289,Statsample::SRS.proportion_sd_kp_wor(0.5,100,150),0.001)
14
10
  end
15
11
  end
@@ -0,0 +1,11 @@
1
+ $:.unshift(File.dirname(__FILE__)+'/../lib/')
2
+ #require 'stata'
3
+ require 'statsample'
4
+ require 'test/unit'
5
+
6
+ class StatsampleStataTestCase < Test::Unit::TestCase
7
+ def test_basic
8
+ #datafile=File.dirname(__FILE__)+"/../data/logit.dta"
9
+ #p Stata.open(datafile)
10
+ end
11
+ end
@@ -64,7 +64,6 @@ class StatsampleStatisicsTestCase < Test::Unit::TestCase
64
64
  #assert_equal(expected,obt)
65
65
  end
66
66
  def test_prop_pearson
67
- if HAS_GSL
68
67
  assert_in_delta(0.42, Statsample::Bivariate.prop_pearson(Statsample::Bivariate.t_r(0.084,94), 94),0.01)
69
68
  assert_in_delta(0.65, Statsample::Bivariate.prop_pearson(Statsample::Bivariate.t_r(0.046,95), 95),0.01)
70
69
  r=0.9
@@ -80,11 +79,6 @@ class StatsampleStatisicsTestCase < Test::Unit::TestCase
80
79
  assert(Statsample::Bivariate.prop_pearson(t,n,:both)<0.05)
81
80
  assert(Statsample::Bivariate.prop_pearson(t,n,:right)>0.05)
82
81
  assert(Statsample::Bivariate.prop_pearson(t,n,:left)<0.05)
83
-
84
-
85
- else
86
- puts "Bivariate.prop_pearson not tested (no ruby-gsl)"
87
- end
88
82
  end
89
83
  def test_covariance
90
84
  if HAS_GSL
@@ -130,11 +124,7 @@ class StatsampleStatisicsTestCase < Test::Unit::TestCase
130
124
  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)
131
125
  assert_equal(50,v.size)
132
126
  assert_equal(1471,v.sum())
133
- if HAS_GSL
134
127
  limits=Statsample::SRS.mean_confidence_interval_z(v.mean(), v.sds(), v.size,676,0.80)
135
- else
136
- puts "SRS.mean_confidence_interval_z not tested (no ruby-gsl)"
137
- end
138
128
  end
139
129
  def test_estimation_proportion
140
130
  # total
@@ -148,14 +138,9 @@ class StatsampleStatisicsTestCase < Test::Unit::TestCase
148
138
  sam=100
149
139
  prop=0.37
150
140
  a=0.95
151
- if HAS_GSL
152
141
  l= Statsample::SRS.proportion_confidence_interval_z(prop, sam, pop, a)
153
142
  assert_in_delta(0.28,l[0],0.01)
154
143
  assert_in_delta(0.46,l[1],0.01)
155
- else
156
- puts "SRS.proportion_confidence_interval_z not tested (no ruby-gsl)"
157
-
158
- end
159
144
  end
160
145
  def test_ml
161
146
  if(true)
data/test/test_vector.rb CHANGED
@@ -16,6 +16,17 @@ class StatsampleVectorTestCase < Test::Unit::TestCase
16
16
  def test_product
17
17
  a=[1,2,3,4,5].to_vector(:scale)
18
18
  assert_equal(120,a.product)
19
+ end
20
+ def test_matrix
21
+ a=[1,2,3,4,5].to_vector(:scale)
22
+ mh=Matrix[[1,2,3,4,5]]
23
+ mv=Matrix.columns([[1,2,3,4,5]])
24
+ assert_equal(mh,a.to_matrix)
25
+ assert_equal(mv,a.to_matrix(:vertical))
26
+ # 3*4 + 2*5 = 22
27
+ a=[3,2].to_vector(:scale)
28
+ b=[4,5].to_vector(:scale)
29
+ assert_equal(22,(a.to_matrix*b.to_matrix(:vertical))[0,0])
19
30
  end
20
31
  def test_missing_values
21
32
  @c.missing_values=[10]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: statsample
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claudio Bustos
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-21 00:00:00 -04:00
12
+ date: 2009-09-10 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -60,7 +60,9 @@ files:
60
60
  - Manifest.txt
61
61
  - README.txt
62
62
  - bin/statsample
63
+ - data/crime.txt
63
64
  - data/locale/es/LC_MESSAGES/statsample.mo
65
+ - data/test_binomial.csv
64
66
  - demo/benchmark.rb
65
67
  - demo/chi-square.rb
66
68
  - demo/crosstab.rb
@@ -76,11 +78,17 @@ files:
76
78
  - demo/strata_proportion.rb
77
79
  - demo/stratum.rb
78
80
  - demo/t-student.rb
81
+ - lib/distribution.rb
82
+ - lib/distribution/chisquare.rb
83
+ - lib/distribution/f.rb
84
+ - lib/distribution/normal.rb
85
+ - lib/distribution/t.rb
86
+ - lib/matrix_extension.rb
79
87
  - lib/spss.rb
88
+ - lib/statistics2.rb
80
89
  - lib/statsample.rb
81
90
  - lib/statsample/anova.rb
82
91
  - lib/statsample/bivariate.rb
83
- - lib/statsample/chidistribution.rb
84
92
  - lib/statsample/codification.rb
85
93
  - lib/statsample/combination.rb
86
94
  - lib/statsample/converters.rb
@@ -94,9 +102,15 @@ files:
94
102
  - lib/statsample/graph/svghistogram.rb
95
103
  - lib/statsample/graph/svgscatterplot.rb
96
104
  - lib/statsample/htmlreport.rb
105
+ - lib/statsample/mle.rb
106
+ - lib/statsample/mle/logit.rb
107
+ - lib/statsample/mle/normal.rb
108
+ - lib/statsample/mle/probit.rb
97
109
  - lib/statsample/multiset.rb
98
110
  - lib/statsample/regression.rb
99
- - lib/statsample/regression/logit.rb
111
+ - lib/statsample/regression/binomial.rb
112
+ - lib/statsample/regression/binomial/logit.rb
113
+ - lib/statsample/regression/binomial/probit.rb
100
114
  - lib/statsample/regression/multiple.rb
101
115
  - lib/statsample/regression/multiple/alglibengine.rb
102
116
  - lib/statsample/regression/multiple/gslengine.rb
@@ -118,7 +132,11 @@ files:
118
132
  - test/test_csv.csv
119
133
  - test/test_csv.rb
120
134
  - test/test_dataset.rb
135
+ - test/test_distribution.rb
121
136
  - test/test_ggobi.rb
137
+ - test/test_gsl.rb
138
+ - test/test_logit.rb
139
+ - test/test_mle.rb
122
140
  - test/test_multiset.rb
123
141
  - test/test_regression.rb
124
142
  - test/test_reliability.rb
@@ -163,17 +181,23 @@ test_files:
163
181
  - test/test_anova.rb
164
182
  - test/test_codification.rb
165
183
  - test/test_crosstab.rb
184
+ - test/test_distribution.rb
166
185
  - test/test_svg_graph.rb
167
186
  - test/test_csv.rb
187
+ - test/test_gsl.rb
168
188
  - test/test_combination.rb
189
+ - test/test_mle.rb
169
190
  - test/test_resample.rb
170
191
  - test/test_stratified.rb
171
192
  - test/test_vector.rb
172
193
  - test/test_srs.rb
194
+ - test/test_stata.rb
173
195
  - test/test_ggobi.rb
174
196
  - test/test_xls.rb
197
+ - test/test_logit.rb
175
198
  - test/test_statistics.rb
176
199
  - test/test_reliability.rb
177
200
  - test/test_dataset.rb
201
+ - test/test_r.rb
178
202
  - test/test_regression.rb
179
203
  - test/test_multiset.rb