statsample 0.18.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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