statsample 0.18.0 → 1.0.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 (121) hide show
  1. data.tar.gz.sig +0 -0
  2. data/History.txt +23 -0
  3. data/Manifest.txt +28 -17
  4. data/Rakefile +3 -2
  5. data/benchmarks/correlation_matrix_15_variables.rb +31 -0
  6. data/benchmarks/correlation_matrix_5_variables.rb +32 -0
  7. data/benchmarks/correlation_matrix_methods/correlation_matrix.ds +0 -0
  8. data/benchmarks/correlation_matrix_methods/correlation_matrix.html +93 -0
  9. data/benchmarks/correlation_matrix_methods/correlation_matrix.rb +75 -0
  10. data/benchmarks/correlation_matrix_methods/correlation_matrix.xls +0 -0
  11. data/benchmarks/correlation_matrix_methods/correlation_matrix_gsl_ruby.ods +0 -0
  12. data/benchmarks/correlation_matrix_methods/correlation_matrix_with_graphics.ods +0 -0
  13. data/benchmarks/correlation_matrix_methods/results.ds +0 -0
  14. data/benchmarks/factor_map.rb +37 -0
  15. data/benchmarks/helpers_benchmark.rb +5 -0
  16. data/examples/boxplot.rb +13 -14
  17. data/examples/correlation_matrix.rb +16 -8
  18. data/examples/dataset.rb +13 -4
  19. data/examples/dominance_analysis.rb +23 -17
  20. data/examples/dominance_analysis_bootstrap.rb +28 -22
  21. data/examples/histogram.rb +8 -9
  22. data/examples/icc.rb +20 -21
  23. data/examples/levene.rb +10 -4
  24. data/examples/multiple_regression.rb +9 -28
  25. data/examples/multivariate_correlation.rb +9 -3
  26. data/examples/parallel_analysis.rb +20 -16
  27. data/examples/polychoric.rb +15 -9
  28. data/examples/principal_axis.rb +18 -6
  29. data/examples/reliability.rb +26 -13
  30. data/examples/scatterplot.rb +10 -6
  31. data/examples/t_test.rb +15 -6
  32. data/examples/tetrachoric.rb +9 -2
  33. data/examples/u_test.rb +12 -4
  34. data/examples/vector.rb +13 -2
  35. data/examples/velicer_map_test.rb +33 -26
  36. data/lib/statsample.rb +32 -12
  37. data/lib/statsample/analysis.rb +79 -0
  38. data/lib/statsample/analysis/suite.rb +72 -0
  39. data/lib/statsample/analysis/suitereportbuilder.rb +38 -0
  40. data/lib/statsample/bivariate.rb +70 -16
  41. data/lib/statsample/dataset.rb +25 -19
  42. data/lib/statsample/dominanceanalysis.rb +2 -2
  43. data/lib/statsample/factor.rb +2 -0
  44. data/lib/statsample/factor/map.rb +16 -10
  45. data/lib/statsample/factor/parallelanalysis.rb +9 -3
  46. data/lib/statsample/factor/pca.rb +28 -32
  47. data/lib/statsample/factor/rotation.rb +15 -8
  48. data/lib/statsample/graph/boxplot.rb +3 -4
  49. data/lib/statsample/graph/histogram.rb +2 -1
  50. data/lib/statsample/graph/scatterplot.rb +1 -0
  51. data/lib/statsample/matrix.rb +106 -16
  52. data/lib/statsample/regression.rb +4 -1
  53. data/lib/statsample/regression/binomial.rb +1 -1
  54. data/lib/statsample/regression/multiple/baseengine.rb +19 -9
  55. data/lib/statsample/regression/multiple/gslengine.rb +127 -126
  56. data/lib/statsample/regression/multiple/matrixengine.rb +8 -5
  57. data/lib/statsample/regression/multiple/rubyengine.rb +1 -1
  58. data/lib/statsample/regression/simple.rb +31 -6
  59. data/lib/statsample/reliability.rb +11 -3
  60. data/lib/statsample/reliability/scaleanalysis.rb +4 -4
  61. data/lib/statsample/shorthand.rb +81 -0
  62. data/lib/statsample/test/chisquare.rb +1 -1
  63. data/lib/statsample/vector.rb +163 -163
  64. data/lib/statsample/vector/gsl.rb +106 -0
  65. data/references.txt +2 -2
  66. data/{data → test/fixtures}/crime.txt +0 -0
  67. data/{data → test/fixtures}/hartman_23.matrix +0 -0
  68. data/{data → test/fixtures}/repeated_fields.csv +0 -0
  69. data/{data → test/fixtures}/test_binomial.csv +0 -0
  70. data/test/{test_csv.csv → fixtures/test_csv.csv} +0 -0
  71. data/test/{test_xls.xls → fixtures/test_xls.xls} +0 -0
  72. data/{data → test/fixtures}/tetmat_matrix.txt +0 -0
  73. data/{data → test/fixtures}/tetmat_test.txt +0 -0
  74. data/test/helpers_tests.rb +18 -2
  75. data/test/test_analysis.rb +118 -0
  76. data/test/test_anovatwoway.rb +1 -1
  77. data/test/test_anovatwowaywithdataset.rb +1 -1
  78. data/test/test_anovawithvectors.rb +1 -2
  79. data/test/test_bartlettsphericity.rb +1 -2
  80. data/test/test_bivariate.rb +64 -22
  81. data/test/test_codification.rb +1 -2
  82. data/test/test_crosstab.rb +1 -2
  83. data/test/test_csv.rb +3 -4
  84. data/test/test_dataset.rb +24 -3
  85. data/test/test_dominance_analysis.rb +1 -2
  86. data/test/test_factor.rb +8 -69
  87. data/test/test_factor_map.rb +43 -0
  88. data/test/test_factor_pa.rb +54 -0
  89. data/test/test_ggobi.rb +1 -1
  90. data/test/test_gsl.rb +12 -18
  91. data/test/test_histogram.rb +1 -2
  92. data/test/test_logit.rb +62 -18
  93. data/test/test_matrix.rb +4 -5
  94. data/test/test_mle.rb +3 -4
  95. data/test/test_regression.rb +21 -2
  96. data/test/test_reliability.rb +3 -3
  97. data/test/test_reliability_icc.rb +1 -1
  98. data/test/test_reliability_skillscale.rb +20 -4
  99. data/test/test_resample.rb +1 -2
  100. data/test/test_rserve_extension.rb +1 -2
  101. data/test/test_srs.rb +1 -2
  102. data/test/test_statistics.rb +1 -2
  103. data/test/test_stest.rb +1 -2
  104. data/test/test_stratified.rb +1 -2
  105. data/test/test_test_f.rb +1 -2
  106. data/test/test_test_t.rb +1 -2
  107. data/test/test_umannwhitney.rb +1 -2
  108. data/test/test_vector.rb +117 -18
  109. data/test/test_xls.rb +2 -3
  110. data/web/Rakefile +39 -0
  111. metadata +109 -29
  112. metadata.gz.sig +0 -0
  113. data/examples/parallel_analysis_tetrachoric.rb +0 -31
  114. data/lib/distribution.rb +0 -25
  115. data/lib/distribution/chisquare.rb +0 -23
  116. data/lib/distribution/f.rb +0 -35
  117. data/lib/distribution/normal.rb +0 -60
  118. data/lib/distribution/normalbivariate.rb +0 -284
  119. data/lib/distribution/normalmultivariate.rb +0 -73
  120. data/lib/distribution/t.rb +0 -55
  121. data/test/test_distribution.rb +0 -73
@@ -1,11 +1,19 @@
1
1
  #!/usr/bin/ruby
2
2
  $:.unshift(File.dirname(__FILE__)+'/../lib/')
3
- require 'benchmark'
4
3
  require 'statsample'
5
- a=1000.times.collect {rand}.to_scale
6
- b=1000.times.collect {rand}.to_scale
7
- c=1000.times.collect {rand}.to_scale
8
- d=1000.times.collect {rand}.to_scale
9
- ds={'a'=>a,'b'=>b,'c'=>c,'d'=>d}.to_dataset
10
- cm=Statsample::Bivariate.correlation_matrix(ds)
11
- puts cm.summary
4
+
5
+ Statsample::Analysis.store("Statsample::Bivariate.correlation_matrix") do
6
+ samples=1000
7
+ ds=data_frame(
8
+ 'a'=>rnorm(samples),
9
+ 'b'=>rnorm(samples),
10
+ 'c'=>rnorm(samples),
11
+ 'd'=>rnorm(samples))
12
+ cm=cor(ds)
13
+ summary(cm)
14
+ end
15
+
16
+ if __FILE__==$0
17
+ Statsample::Analysis.run_batch
18
+ end
19
+
data/examples/dataset.rb CHANGED
@@ -1,8 +1,17 @@
1
1
  #!/usr/bin/ruby
2
2
  $:.unshift(File.dirname(__FILE__)+'/../lib/')
3
3
  require 'statsample'
4
- a=1000.times.collect {r=rand(5); r==4 ? nil: r;}.to_scale
5
- b=1000.times.collect {r=rand(5); r==4 ? nil: r;}.to_scale
6
4
 
7
- ds={'a'=>a,'b'=>b}.to_dataset
8
- puts ds.summary
5
+ Statsample::Analysis.store(Statsample::Dataset) do
6
+ samples=1000
7
+ a=Statsample::Vector.new_scale(samples) {r=rand(5); r==4 ? nil: r}
8
+ b=Statsample::Vector.new_scale(samples) {r=rand(5); r==4 ? nil: r}
9
+
10
+ ds={'a'=>a,'b'=>b}.to_dataset
11
+ summary(ds)
12
+ end
13
+
14
+ if __FILE__==$0
15
+ Statsample::Analysis.run_batch
16
+ end
17
+
@@ -2,25 +2,31 @@
2
2
  $:.unshift(File.dirname(__FILE__)+'/../lib/')
3
3
 
4
4
  require 'statsample'
5
- sample=200
6
- a=sample.times.collect {rand}.to_scale
7
- b=sample.times.collect {rand}.to_scale
8
- c=sample.times.collect {rand}.to_scale
9
- d=sample.times.collect {rand}.to_scale
10
5
 
11
- ds={'a'=>a,'b'=>b,'c'=>c,'d'=>d}.to_dataset
12
- ds['y']=ds.collect{|row| row['a']*5 + row['b']*3 + row['c']*2 + row['d'] + rand()}
13
- rb=ReportBuilder.new(:name=>"Dominance Analysis")
14
6
 
15
- cm=Statsample::Bivariate.correlation_matrix(ds)
16
- rb.add(cm)
17
- lr=Statsample::Regression::Multiple::RubyEngine.new(ds,'y')
18
- rb.add(lr)
7
+ Statsample::Analysis.store(Statsample::DominanceAnalysis) do
8
+ sample=300
9
+ a=rnorm(sample)
10
+ b=rnorm(sample)
11
+ c=rnorm(sample)
12
+ d=rnorm(sample)
13
+
14
+ ds={'a'=>a,'b'=>b,'cc'=>c,'d'=>d}.to_dataset
15
+ attach(ds)
16
+ ds['y']=a*5+b*3+cc*2+d+rnorm(300)
17
+ cm=cor(ds)
18
+ summary(cm)
19
+ lr=lr(ds,'y')
20
+ summary(lr)
21
+ da=dominance_analysis(ds,'y')
22
+ summary(da)
23
+
24
+ da=dominance_analysis(ds,'y',:name=>"Dominance Analysis using group of predictors", :predictors=>['a', 'b', %w{cc d}])
25
+ summary(da)
26
+ end
19
27
 
20
- #da=Statsample::DominanceAnalysis.new(ds,'y')
21
- #rb.add(da)
22
28
 
23
- da=Statsample::DominanceAnalysis.new(ds,'y',:name=>"Dominance Analysis using group of predictors", :predictors=>['a', 'b', %w{c d}])
24
- rb.add(da)
29
+ if __FILE__==$0
30
+ Statsample::Analysis.run_batch
31
+ end
25
32
 
26
- puts rb.to_text
@@ -2,26 +2,32 @@
2
2
  $:.unshift(File.dirname(__FILE__)+'/../lib/')
3
3
  require 'statsample'
4
4
 
5
+ Statsample::Analysis.store(Statsample::DominanceAnalysis::Bootstrap) do
6
+
7
+ sample=300
8
+ a=rnorm(sample)
9
+ b=rnorm(sample)
10
+ c=rnorm(sample)
11
+ d=rnorm(sample)
12
+ a.name="a"
13
+ b.name="b"
14
+ c.name="c"
15
+ d.name="d"
16
+
17
+ ds={'a'=>a,'b'=>b,'cc'=>c,'d'=>d}.to_dataset
18
+ attach(ds)
19
+ ds['y1']=a*5+b*2+cc*2+d*2+rnorm(sample,0,10)
20
+ ds['y2']=a*10+rnorm(sample)
21
+
22
+ dab=dominance_analysis_bootstrap(ds, ['y1','y2'], :debug=>true)
23
+ dab.bootstrap(100,nil)
24
+ summary(dab)
25
+ ds2=ds['a'..'y1']
26
+ dab2=dominance_analysis_bootstrap(ds2, 'y1', :debug=>true)
27
+ dab2.bootstrap(100,nil)
28
+ summary(dab2)
29
+ end
5
30
 
6
- a=100.times.collect {rand}.to_scale
7
- b=100.times.collect {rand}.to_scale
8
- c=100.times.collect {rand}.to_scale
9
- d=100.times.collect {rand}.to_scale
10
-
11
- a.name="a"
12
- b.name="b"
13
- c.name="c"
14
- d.name="d"
15
-
16
- ds={'a'=>a,'b'=>b,'c'=>c,'d'=>d}.to_dataset
17
-
18
- ds['y1']=ds.collect{|row| row['a']*5+row['b']*2+row['c']*2+row['d']*2+10*rand()}
19
- ds['y2']=ds.collect{|row| row['a']*10+rand()}
20
-
21
- dab=Statsample::DominanceAnalysis::Bootstrap.new(ds, ['y1','y2'], :debug=>true)
22
- dab.bootstrap(100,nil)
23
- puts dab.summary
24
- ds2=ds['a'..'y1']
25
- dab=Statsample::DominanceAnalysis::Bootstrap.new(ds2, 'y1', :debug=>true)
26
- dab.bootstrap(100,nil)
27
- puts dab.summary
31
+ if __FILE__==$0
32
+ Statsample::Analysis.run_batch
33
+ end
@@ -1,13 +1,12 @@
1
1
  #!/usr/bin/ruby
2
2
  $:.unshift(File.dirname(__FILE__)+'/../lib/')
3
- $:.unshift('/home/cdx/dev/reportbuilder/lib/')
4
3
  require 'statsample'
5
- n=3000
6
- rng=Distribution::Normal.rng_ugaussian
7
- a=n.times.map {|i| rng.call()*20}.to_scale
8
- hg=Statsample::Graph::Histogram.new(a, :bins=>20, :line_normal_distribution=>true )
9
4
 
10
- rb=ReportBuilder.new
11
- #rb.add(a.histogram)
12
- rb.add(hg)
13
- rb.save_html('histogram.html')
5
+ Statsample::Analysis.store(Statsample::Graph::Histogram) do
6
+ histogram(rnorm(3000,0,20))
7
+ end
8
+
9
+
10
+ if __FILE__==$0
11
+ Statsample::Analysis.run
12
+ end
data/examples/icc.rb CHANGED
@@ -2,25 +2,24 @@
2
2
  $:.unshift(File.dirname(__FILE__)+'/../lib/')
3
3
 
4
4
  require 'statsample'
5
- size=1000
6
- a=size.times.map {rand(10)}.to_scale
7
- b=a.recode{|i|i+rand(4)-2}
8
- c=a.recode{|i|i+rand(4)-2}
9
- d=a.recode{|i|i+rand(4)-2}
10
- @ds={'a'=>a,'b'=>b,'c'=>c,'d'=>d}.to_dataset
11
-
12
-
13
-
14
- @icc=Statsample::Reliability::ICC.new(@ds)
15
-
16
- puts @icc.summary
17
-
18
- @icc.type=:icc_3_1
19
-
20
- puts @icc.summary
21
-
22
-
23
- @icc.type=:icc_a_k
24
-
25
- puts @icc.summary
26
5
 
6
+ Statsample::Analysis.store(Statsample::Reliability::ICC) do
7
+
8
+ size=1000
9
+ a=Statsample::Vector.new_scale(size) {rand(10)}
10
+ b=a.recode{|i|i+rand(4)-2}
11
+ c=a.recode{|i|i+rand(4)-2}
12
+ d=a.recode{|i|i+rand(4)-2}
13
+ @ds={'a'=>a,'b'=>b,'c'=>c,'d'=>d}.to_dataset
14
+ @icc=Statsample::Reliability::ICC.new(@ds)
15
+ summary(@icc)
16
+ @icc.type=:icc_3_1
17
+ summary(@icc)
18
+ @icc.type=:icc_a_k
19
+ summary(@icc)
20
+
21
+ end
22
+
23
+ if __FILE__==$0
24
+ Statsample::Analysis.run_batch
25
+ end
data/examples/levene.rb CHANGED
@@ -2,8 +2,14 @@
2
2
  $:.unshift(File.dirname(__FILE__)+'/../lib/')
3
3
 
4
4
  require 'statsample'
5
- a=[1,2,3,4,5,6,7,8,100,10].to_scale
6
- b=[30,40,50,60,70,80,90,100,110,120].to_scale
7
5
 
8
- levene=Statsample::Test::Levene.new([a,b])
9
- puts levene.summary
6
+ Statsample::Analysis.store(Statsample::Test::Levene) do
7
+
8
+ a=[1,2,3,4,5,6,7,8,100,10].to_scale
9
+ b=[30,40,50,60,70,80,90,100,110,120].to_scale
10
+ summary(levene([a,b]))
11
+ end
12
+
13
+ if __FILE__==$0
14
+ Statsample::Analysis.run_batch
15
+ end
@@ -1,36 +1,17 @@
1
1
  #!/usr/bin/ruby
2
- #$:.unshift(File.dirname(__FILE__)+'/../lib/')
2
+ $:.unshift(File.dirname(__FILE__)+'/../lib/')
3
3
 
4
4
  require 'statsample'
5
- require 'benchmark'
6
- samples=1000
7
- a=samples.times.collect {rand}.to_scale
8
- b=samples.times.collect {rand}.to_scale
9
- c=samples.times.collect {rand}.to_scale
10
- d=samples.times.collect {rand}.to_scale
11
5
 
12
- ds={'a'=>a,'b'=>b,'c'=>c,'d'=>d}.to_dataset
13
- ds['y']=ds.collect{|row| row['a']*5+row['b']*3+row['c']*2+row['d']*1+rand()}
6
+ Statsample::Analysis.store(Statsample::Regression::Multiple) do
14
7
 
15
- Benchmark.bm(7) do |x|
16
-
17
-
18
- rb=ReportBuilder.new(:name=>"Multiple Regression Engines")
19
-
20
- if Statsample.has_gsl?
21
- x.report("GSL:") {
22
- lr=Statsample::Regression::Multiple::GslEngine.new(ds,'y',:name=>"Multiple Regression using GSL")
23
- rb.add(lr.summary)
24
- }
8
+ samples=2000
9
+ ds=dataset('a'=>rnorm(samples),'b'=>rnorm(samples),'cc'=>rnorm(samples),'d'=>rnorm(samples))
10
+ attach(ds)
11
+ ds['y']=a*5+b*3+cc*2+d+rnorm(samples)
12
+ summary lr(ds,'y')
25
13
  end
26
14
 
27
-
28
- x.report("Ruby:") {
29
- lr=Statsample::Regression::Multiple::RubyEngine.new(ds,'y',:name=>"Multiple Regression using RubyEngine")
30
- rb.add(lr.summary)
31
- }
32
- puts rb.to_text
15
+ if __FILE__==$0
16
+ Statsample::Analysis.run_batch
33
17
  end
34
-
35
-
36
-
@@ -5,7 +5,8 @@ require 'statsample'
5
5
  require 'mathn'
6
6
 
7
7
 
8
-
8
+ Statsample::Analysis.store(Statsample::Regression::Multiple::MultipleDependent) do
9
+
9
10
  complete=Matrix[
10
11
  [1,0.53,0.62,0.19,-0.09,0.08,0.02,-0.12,0.08],
11
12
  [0.53,1,0.61,0.23,0.1,0.18,0.02,-0.1,0.15],
@@ -22,6 +23,11 @@ require 'mathn'
22
23
 
23
24
  lr=Statsample::Regression::Multiple::MultipleDependent.new(complete, %w{adhd cd odd})
24
25
 
25
- puts "R^2_yx #{lr.r2yx}"
26
- puts "P^2_yx #{lr.p2yx}"
26
+ echo "R^2_yx #{lr.r2yx}"
27
+ echo "P^2_yx #{lr.p2yx}"
28
+ end
29
+
27
30
 
31
+ if __FILE__==$0
32
+ Statsample::Analysis.run_batch
33
+ end
@@ -2,30 +2,34 @@
2
2
  $:.unshift(File.dirname(__FILE__)+'/../lib/')
3
3
 
4
4
  require 'statsample'
5
- samples=100
5
+ samples=150
6
6
  variables=30
7
7
  iterations=50
8
- rng = GSL::Rng.alloc()
9
- f1=samples.times.collect {rng.ugaussian()}.to_scale
10
- f2=samples.times.collect {rng.ugaussian()}.to_scale
11
- f3=samples.times.collect {rng.ugaussian()}.to_scale
8
+ Statsample::Analysis.store(Statsample::Factor::ParallelAnalysis) do
9
+
10
+ rng = Distribution::Normal.rng()
11
+ f1=rnorm(samples)
12
+ f2=rnorm(samples)
13
+ f3=rnorm(samples)
12
14
 
13
15
  vectors={}
14
16
 
15
17
  variables.times do |i|
16
- vectors["v#{i}"]=samples.times.collect {|nv| f1[nv]*i+(f2[nv]*(15-i))+((f3[nv]*(30-i))*1.5)*rng.ugaussian()}.to_scale
18
+ vectors["v#{i}"]=samples.times.collect {|nv| f1[nv]*i+(f2[nv]*(15-i))+((f3[nv]*(30-i))*1.5)*rng.call}.to_scale
17
19
  vectors["v#{i}"].name="Vector #{i}"
18
20
  end
19
- ds=vectors.to_dataset
20
21
 
21
- pa=Statsample::Factor::ParallelAnalysis.new(ds, :iterations=>iterations, :debug=>true)
22
- pca=Statsample::Factor::PCA.new(Statsample::Bivariate.correlation_matrix(ds))
23
- rb=ReportBuilder.new(:name=>"Parallel Analysis with simulation") do
24
- text "There are 3 real factors on data"
25
- parse_element pca
26
- text "Traditional Kaiser criterion (k>1) returns #{pca.m} factors"
27
- parse_element pa
28
- text "Parallel Analysis returns #{pa.number_of_factors} factors to preserve"
22
+ ds=vectors.to_dataset
23
+
24
+ pa=Statsample::Factor::ParallelAnalysis.new(ds, :iterations=>iterations, :debug=>true)
25
+ pca=pca(cor(ds))
26
+ echo "There are 3 real factors on data"
27
+ summary pca
28
+ echo "Traditional Kaiser criterion (k>1) returns #{pca.m} factors"
29
+ summary pa
30
+ echo "Parallel Analysis returns #{pa.number_of_factors} factors to preserve"
29
31
  end
30
32
 
31
- puts rb.to_text
33
+ if __FILE__==$0
34
+ Statsample::Analysis.run_batch
35
+ end
@@ -1,21 +1,27 @@
1
1
  #!/usr/bin/ruby
2
2
  $:.unshift(File.dirname(__FILE__)+'/../lib/')
3
+ $:.unshift("/home/cdx/usr/lib/statsample-bivariate-extension/lib/")
3
4
 
4
5
  require 'statsample'
5
- ct=Matrix[[58,52,1],[26,58,3],[8,12,9]]
6
+ Statsample::Analysis.store(Statsample::Bivariate::Polychoric) do
7
+ ct=Matrix[[rand(10)+50, rand(10)+50, rand(10)+1],
8
+ [rand(20)+5, rand(50)+4, rand(10)+1],
9
+ [rand(8)+1, rand(12)+1, rand(10)+1]]
6
10
 
7
11
  # Estimation of polychoric correlation using two-step (default)
8
- poly=Statsample::Bivariate::Polychoric.new(ct, :name=>"Polychoric with two-step", :debug=>true)
9
-
10
- puts poly.summary
12
+ poly=polychoric(ct, :name=>"Polychoric with two-step", :debug=>false)
13
+ summary poly
11
14
 
12
15
  # Estimation of polychoric correlation using joint method (slow)
13
- poly=Statsample::Bivariate::Polychoric.new(ct, :method=>:joint, :name=>"Polychoric with joint")
14
- puts poly.summary
15
-
16
+ poly=polychoric(ct, :method=>:joint, :name=>"Polychoric with joint")
17
+ summary poly
16
18
 
17
19
  # Uses polychoric series (not recomended)
18
20
 
19
- poly=Statsample::Bivariate::Polychoric.new(ct, :method=>:polychoric_series, :name=>"Polychoric with polychoric series")
20
- puts poly.summary
21
+ poly=polychoric(ct, :method=>:polychoric_series, :name=>"Polychoric with polychoric series")
22
+ summary poly
23
+ end
24
+ if __FILE__==$0
25
+ Statsample::Analysis.run_batch
26
+ end
21
27
 
@@ -2,9 +2,21 @@
2
2
  $:.unshift(File.dirname(__FILE__)+'/../lib/')
3
3
 
4
4
  require 'statsample'
5
- matrix=Matrix[
6
- [1.0, 0.709501601093587, 0.877596585880047, 0.272219316266807], [0.709501601093587, 1.0, 0.291633797330304, 0.871141831433844], [0.877596585880047, 0.291633797330304, 1.0, -0.213373722977167], [0.272219316266807, 0.871141831433844, -0.213373722977167, 1.0]]
7
- matrix.extend Statsample::CovariateMatrix
8
- #matrix.fields=%w{a b c d}
9
- fa=Statsample::Factor::PrincipalAxis.new(matrix,:m=>1,:smc=>false)
10
- puts fa.summary
5
+
6
+ Statsample::Analysis.store(Statsample::Factor::PrincipalAxis) do
7
+
8
+ matrix=Matrix[
9
+ [1.0, 0.709501601093587, 0.877596585880047, 0.272219316266807], [0.709501601093587, 1.0, 0.291633797330304, 0.871141831433844], [0.877596585880047, 0.291633797330304, 1.0, -0.213373722977167], [0.272219316266807, 0.871141831433844, -0.213373722977167, 1.0]]
10
+
11
+ matrix.extend Statsample::CovariateMatrix
12
+
13
+ #matrix.fields=%w{a b c d}
14
+ fa=principal_axis(matrix,:m=>1,:smc=>false)
15
+
16
+ summary fa
17
+ end
18
+
19
+ if __FILE__==$0
20
+ Statsample::Analysis.run_batch
21
+ end
22
+
@@ -1,20 +1,33 @@
1
1
  #!/usr/bin/ruby
2
2
  $:.unshift(File.dirname(__FILE__)+'/../lib')
3
3
  require 'statsample'
4
- samples=100
5
- a=samples.times.map {rand(100)}.to_scale
6
- ds=Statsample::Dataset.new
7
- 20.times do |i|
8
- ds["v#{i}"]=a.collect {|v| v+rand(20)}.to_scale
9
- end
10
- ds.update_valid_data
11
- rel=Statsample::Reliability::ScaleAnalysis.new(ds)
12
- puts rel.summary
13
4
 
5
+ Statsample::Analysis.store(Statsample::Reliability) do
6
+
7
+ samples=100
8
+ a=rnorm(samples)
9
+
10
+ ds=Statsample::Dataset.new
11
+
12
+ 20.times do |i|
13
+ ds["v#{i}"]=a+rnorm(samples,0,0.2)
14
+ end
15
+
16
+ ds.update_valid_data
17
+
18
+ rel=Statsample::Reliability::ScaleAnalysis.new(ds)
19
+ summary rel
20
+
21
+
22
+ ms=Statsample::Reliability::MultiScaleAnalysis.new(:name=>"Multi Scale analyss") do |m|
23
+ m.scale "Scale 1", ds.clone(%w{v1 v2 v3 v4 v5 v6 v7 v8 v9 v10})
24
+ m.scale "Scale 2", ds.clone(%w{v11 v12 v13 v14 v15 v16 v17 v18 v19})
25
+ end
26
+
27
+ summary ms
28
+ end
14
29
 
15
- ms=Statsample::Reliability::MultiScaleAnalysis.new(:name=>"Multi Scale analyss") do |m|
16
- m.scale "Scale 1", ds.clone(%w{v1 v2 v3 v4 v5 v6 v7 v8 v9 v10})
17
- m.scale "Scale 2", ds.clone(%w{v11 v12 v13 v14 v15 v16 v17 v18 v19})
30
+ if __FILE__==$0
31
+ Statsample::Analysis.run_batch
18
32
  end
19
33
 
20
- puts ms.summary