statsample 1.4.3 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/History.txt +8 -0
  3. data/benchmarks/correlation_matrix_15_variables.rb +1 -1
  4. data/benchmarks/correlation_matrix_5_variables.rb +1 -1
  5. data/benchmarks/correlation_matrix_methods/correlation_matrix.rb +2 -2
  6. data/examples/dataset.rb +2 -2
  7. data/examples/icc.rb +1 -1
  8. data/examples/levene.rb +2 -2
  9. data/examples/parallel_analysis.rb +1 -1
  10. data/examples/u_test.rb +2 -2
  11. data/examples/vector.rb +1 -1
  12. data/examples/velicer_map_test.rb +1 -1
  13. data/lib/statsample.rb +30 -4
  14. data/lib/statsample/anova/oneway.rb +3 -3
  15. data/lib/statsample/anova/twoway.rb +3 -3
  16. data/lib/statsample/bivariate.rb +7 -7
  17. data/lib/statsample/bivariate/pearson.rb +2 -2
  18. data/lib/statsample/converter/csv.rb +1 -1
  19. data/lib/statsample/converters.rb +7 -7
  20. data/lib/statsample/dataset.rb +8 -8
  21. data/lib/statsample/dominanceanalysis.rb +4 -4
  22. data/lib/statsample/dominanceanalysis/bootstrap.rb +8 -8
  23. data/lib/statsample/factor.rb +2 -4
  24. data/lib/statsample/factor/map.rb +2 -1
  25. data/lib/statsample/factor/parallelanalysis.rb +2 -2
  26. data/lib/statsample/factor/pca.rb +2 -2
  27. data/lib/statsample/factor/principalaxis.rb +2 -2
  28. data/lib/statsample/graph/boxplot.rb +4 -4
  29. data/lib/statsample/graph/histogram.rb +2 -2
  30. data/lib/statsample/graph/scatterplot.rb +4 -4
  31. data/lib/statsample/matrix.rb +20 -6
  32. data/lib/statsample/regression.rb +2 -2
  33. data/lib/statsample/regression/multiple.rb +3 -3
  34. data/lib/statsample/regression/multiple/alglibengine.rb +5 -5
  35. data/lib/statsample/regression/multiple/baseengine.rb +3 -3
  36. data/lib/statsample/regression/multiple/gslengine.rb +5 -5
  37. data/lib/statsample/regression/multiple/rubyengine.rb +4 -4
  38. data/lib/statsample/reliability/icc.rb +1 -1
  39. data/lib/statsample/reliability/multiscaleanalysis.rb +4 -4
  40. data/lib/statsample/reliability/scaleanalysis.rb +6 -6
  41. data/lib/statsample/reliability/skillscaleanalysis.rb +1 -1
  42. data/lib/statsample/resample.rb +1 -1
  43. data/lib/statsample/shorthand.rb +1 -1
  44. data/lib/statsample/test/bartlettsphericity.rb +1 -1
  45. data/lib/statsample/test/levene.rb +4 -4
  46. data/lib/statsample/test/t.rb +3 -3
  47. data/lib/statsample/test/umannwhitney.rb +2 -2
  48. data/lib/statsample/vector.rb +103 -80
  49. data/lib/statsample/vector/gsl.rb +16 -16
  50. data/lib/statsample/version.rb +1 -1
  51. data/test/test_analysis.rb +1 -1
  52. data/test/test_anova_contrast.rb +4 -4
  53. data/test/test_anovatwowaywithdataset.rb +1 -1
  54. data/test/test_anovawithvectors.rb +6 -6
  55. data/test/test_awesome_print_bug.rb +1 -1
  56. data/test/test_bartlettsphericity.rb +3 -3
  57. data/test/test_bivariate.rb +38 -38
  58. data/test/test_crosstab.rb +2 -2
  59. data/test/test_csv.rb +6 -6
  60. data/test/test_dataset.rb +79 -79
  61. data/test/test_factor.rb +55 -49
  62. data/test/test_factor_pa.rb +4 -4
  63. data/test/test_ggobi.rb +3 -3
  64. data/test/test_gsl.rb +3 -3
  65. data/test/test_histogram.rb +3 -3
  66. data/test/test_matrix.rb +5 -5
  67. data/test/test_multiset.rb +19 -19
  68. data/test/test_regression.rb +27 -27
  69. data/test/test_reliability.rb +14 -14
  70. data/test/test_reliability_icc.rb +7 -7
  71. data/test/test_reliability_skillscale.rb +6 -6
  72. data/test/test_resample.rb +1 -1
  73. data/test/test_rserve_extension.rb +4 -4
  74. data/test/test_statistics.rb +5 -5
  75. data/test/test_stest.rb +8 -8
  76. data/test/test_stratified.rb +3 -3
  77. data/test/test_test_t.rb +5 -5
  78. data/test/test_umannwhitney.rb +2 -2
  79. data/test/test_vector.rb +153 -119
  80. data/test/test_wilcoxonsignedrank.rb +4 -4
  81. data/test/test_xls.rb +6 -6
  82. metadata +3 -53
@@ -34,7 +34,7 @@ module Statsample
34
34
  # matrix is not appropriate for factor analysis."
35
35
  #
36
36
  def self.anti_image_covariance_matrix(matrix)
37
- s2=Matrix.diag(*(matrix.inverse.diagonal)).inverse
37
+ s2=Matrix.diagonal(*(matrix.inverse.diagonal)).inverse
38
38
  aicm=(s2)*matrix.inverse*(s2)
39
39
  aicm.extend(Statsample::CovariateMatrix)
40
40
  aicm.fields=matrix.fields if matrix.respond_to? :fields
@@ -42,13 +42,12 @@ module Statsample
42
42
  end
43
43
  def self.anti_image_correlation_matrix(matrix)
44
44
  matrix=matrix.to_matrix
45
- s=Matrix.diag(*(matrix.inverse.diagonal)).sqrt.inverse
45
+ s=Matrix.diagonal(*(matrix.inverse.diagonal)).sqrt.inverse
46
46
  aicm=s*matrix.inverse*s
47
47
 
48
48
  aicm.extend(Statsample::CovariateMatrix)
49
49
  aicm.fields=matrix.fields if matrix.respond_to? :fields
50
50
  aicm
51
-
52
51
  end
53
52
 
54
53
  # Kaiser-Meyer-Olkin measure of sampling adequacy for correlation matrix.
@@ -101,6 +100,5 @@ module Statsample
101
100
  end
102
101
  sum_r.quo(sum_r+sum_q)
103
102
  end
104
-
105
103
  end
106
104
  end
@@ -75,7 +75,8 @@ module Statsample
75
75
 
76
76
  (ncol-1).times do |m|
77
77
  puts "MAP:Eigenvalue #{m+1}" if $DEBUG
78
- a=loadings[0..(loadings.row_size-1),0..m]
78
+ a=use_gsl ? loadings[0..(loadings.row_size-1),0..m] :
79
+ loadings.minor(0..(loadings.row_size-1),0..m)
79
80
  partcov= gsl_m - (a*a.transpose)
80
81
 
81
82
  d=klass_m.diagonal(*(partcov.diagonal.collect {|v| Math::sqrt(1/v)}))
@@ -124,7 +124,7 @@ module Statsample
124
124
 
125
125
  @original=Statsample::Bivariate.send(matrix_method, @ds).eigenvalues unless no_data
126
126
  @ds_eigenvalues=Statsample::Dataset.new((1..@n_variables).map{|v| "ev_%05d" % v})
127
- @ds_eigenvalues.fields.each {|f| @ds_eigenvalues[f].type=:scale}
127
+ @ds_eigenvalues.fields.each {|f| @ds_eigenvalues[f].type=:numeric}
128
128
  if bootstrap_method==:parameter or bootstrap_method==:random
129
129
  rng = Distribution::Normal.rng
130
130
  end
@@ -137,7 +137,7 @@ module Statsample
137
137
 
138
138
  @fields.each do |f|
139
139
  if bootstrap_method==:random
140
- ds_bootstrap[f]=@n_cases.times.map {|c| rng.call}.to_scale
140
+ ds_bootstrap[f]=@n_cases.times.map {|c| rng.call}.to_numeric
141
141
  elsif bootstrap_method==:data
142
142
  ds_bootstrap[f]=ds[f].sample_with_replacement(@n_cases)
143
143
  else
@@ -13,8 +13,8 @@ module Factor
13
13
  #
14
14
  # == Usage:
15
15
  # require 'statsample'
16
- # a=[2.5, 0.5, 2.2, 1.9, 3.1, 2.3, 2.0, 1.0, 1.5, 1.1].to_scale
17
- # b=[2.4,0.7,2.9,2.2,3.0,2.7,1.6,1.1,1.6,0.9].to_scale
16
+ # a=[2.5, 0.5, 2.2, 1.9, 3.1, 2.3, 2.0, 1.0, 1.5, 1.1].to_numeric
17
+ # b=[2.4,0.7,2.9,2.2,3.0,2.7,1.6,1.1,1.6,0.9].to_numeric
18
18
  # ds={'a'=>a,'b'=>b}.to_dataset
19
19
  # cor_matrix=Statsample::Bivariate.correlation_matrix(ds)
20
20
  # pca=Statsample::Factor::PCA.new(cor_matrix)
@@ -6,8 +6,8 @@ module Factor
6
6
  #
7
7
  # == Usage:
8
8
  # require 'statsample'
9
- # a=[2.5, 0.5, 2.2, 1.9, 3.1, 2.3, 2.0, 1.0, 1.5, 1.1].to_scale
10
- # b=[2.4,0.7,2.9,2.2,3.0,2.7,1.6,1.1,1.6,0.9].to_scale
9
+ # a=[2.5, 0.5, 2.2, 1.9, 3.1, 2.3, 2.0, 1.0, 1.5, 1.1].to_numeric
10
+ # b=[2.4,0.7,2.9,2.2,3.0,2.7,1.6,1.1,1.6,0.9].to_numeric
11
11
  # ds={'a'=>a,'b'=>b}.to_dataset
12
12
  # cor_matrix=Statsample::Bivariate.correlation_matrix(ds)
13
13
  # pa=Statsample::Factor::PrincipalAxis.new(cor_matrix)
@@ -8,12 +8,12 @@ module Statsample
8
8
  #
9
9
  # == Usage
10
10
  # === Svg output
11
- # a=[1,2,3,4].to_scale
12
- # b=[3,4,5,6].to_scale
11
+ # a=[1,2,3,4].to_numeric
12
+ # b=[3,4,5,6].to_numeric
13
13
  # puts Statsample::Graph::Boxplot.new(:vectors=>[a,b]).to_svg
14
14
  # === Using ReportBuilder
15
- # a=[1,2,3,4].to_scale
16
- # b=[3,4,5,6].to_scale
15
+ # a=[1,2,3,4].to_numeric
16
+ # b=[3,4,5,6].to_numeric
17
17
  # rb=ReportBuilder.new
18
18
  # rb.add(Statsample::Graph::Boxplot.new(:vectors=>[a,b]))
19
19
  # rb.save_html('boxplot.html')
@@ -6,10 +6,10 @@ module Statsample
6
6
  #
7
7
  # == Usage
8
8
  # === Svg output
9
- # a=[1,2,3,4].to_scale
9
+ # a=[1,2,3,4].to_numeric
10
10
  # puts Statsample::Graph::Histogram.new(a).to_svg
11
11
  # === Using ReportBuilder
12
- # a=[1,2,3,4].to_scale
12
+ # a=[1,2,3,4].to_numeric
13
13
  # rb=ReportBuilder.new
14
14
  # rb.add(Statsample::Graph::Histogram.new(a))
15
15
  # rb.save_html('histogram.html')
@@ -10,12 +10,12 @@ module Statsample
10
10
  # The data is displayed as a collection of points, each having the value of one variable determining the position on the horizontal axis and the value of the other variable determining the position on the vertical axis.[2] This kind of plot is also called a scatter chart, scatter diagram and scatter graph.
11
11
  # == Usage
12
12
  # === Svg output
13
- # a=[1,2,3,4].to_scale
14
- # b=[3,4,5,6].to_scale
13
+ # a=[1,2,3,4].to_numeric
14
+ # b=[3,4,5,6].to_numeric
15
15
  # puts Statsample::Graph::Scatterplot.new(a,b).to_svg
16
16
  # === Using ReportBuilder
17
- # a=[1,2,3,4].to_scale
18
- # b=[3,4,5,6].to_scale
17
+ # a=[1,2,3,4].to_numeric
18
+ # b=[3,4,5,6].to_numeric
19
19
  # rb=ReportBuilder.new
20
20
  # rb.add(Statsample::Graph::Scatterplot.new(a,b))
21
21
  # rb.save_html('scatter.html')
@@ -10,11 +10,12 @@ class ::Matrix
10
10
  def to_matrix
11
11
  self
12
12
  end
13
+
13
14
  def to_dataset
14
15
  f = (self.respond_to? :fields_y) ? fields_y : column_size.times.map {|i| _("VAR_%d") % (i+1) }
15
16
  ds=Statsample::Dataset.new(f)
16
17
  f.each do |ff|
17
- ds[ff].type=:scale
18
+ ds[ff].type=:numeric
18
19
  ds[ff].name=ff
19
20
  end
20
21
  row_size.times {|i|
@@ -24,6 +25,7 @@ class ::Matrix
24
25
  ds.name=self.name if self.respond_to? :name
25
26
  ds
26
27
  end
28
+
27
29
  if defined? :eigenpairs
28
30
  alias_method :eigenpairs_ruby, :eigenpairs
29
31
  end
@@ -38,17 +40,15 @@ class ::Matrix
38
40
  def eigenvalues
39
41
  eigenpairs.collect {|v| v[0]}
40
42
  end
43
+
41
44
  def eigenvectors
42
45
  eigenpairs.collect {|v| v[1]}
43
46
  end
47
+
44
48
  def eigenvectors_matrix
45
49
  Matrix.columns(eigenvectors)
46
50
  end
47
51
 
48
-
49
-
50
-
51
-
52
52
  def to_gsl
53
53
  out=[]
54
54
  self.row_size.times{|i|
@@ -56,6 +56,10 @@ class ::Matrix
56
56
  }
57
57
  GSL::Matrix[*out]
58
58
  end
59
+
60
+ def []=(i, j, x)
61
+ @rows[i][j] = x
62
+ end
59
63
  end
60
64
 
61
65
  module GSL
@@ -64,9 +68,11 @@ module GSL
64
68
  def to_matrix
65
69
  ::Matrix.columns([self.size.times.map {|i| self[i]}])
66
70
  end
71
+
67
72
  def to_ary
68
73
  to_a
69
74
  end
75
+
70
76
  def to_gsl
71
77
  self
72
78
  end
@@ -81,7 +87,7 @@ module GSL
81
87
  f = (self.respond_to? :fields_y) ? fields_y : column_size.times.map {|i| _("VAR_%d") % (i+1) }
82
88
  ds=Statsample::Dataset.new(f)
83
89
  f.each do |ff|
84
- ds[ff].type=:scale
90
+ ds[ff].type=:numeric
85
91
  ds[ff].name=ff
86
92
  end
87
93
  row_size.times {|i|
@@ -95,18 +101,23 @@ module GSL
95
101
  def row_size
96
102
  size1
97
103
  end
104
+
98
105
  def column_size
99
106
  size2
100
107
  end
108
+
101
109
  def determinant
102
110
  det
103
111
  end
112
+
104
113
  def inverse
105
114
  GSL::Linalg::LU.invert(self)
106
115
  end
116
+
107
117
  def eigenvalues
108
118
  eigenpairs.collect {|v| v[0]}
109
119
  end
120
+
110
121
  def eigenvectors
111
122
  eigenpairs.collect {|v| v[1]}
112
123
  end
@@ -123,6 +134,7 @@ module GSL
123
134
  GSL::Eigen::symmv_sort(eigval, eigvec, GSL::Eigen::SORT_VAL_DESC)
124
135
  eigvec
125
136
  end
137
+
126
138
  def eigenpairs
127
139
  eigval, eigvec= GSL::Eigen.symmv(self)
128
140
  GSL::Eigen::symmv_sort(eigval, eigvec, GSL::Eigen::SORT_VAL_DESC)
@@ -137,12 +149,14 @@ module GSL
137
149
  def square?
138
150
  size1==size2
139
151
  end
152
+
140
153
  def to_matrix
141
154
  rows=self.size1
142
155
  cols=self.size2
143
156
  out=(0...rows).collect{|i| (0...cols).collect {|j| self[i,j]} }
144
157
  ::Matrix.rows(out)
145
158
  end
159
+
146
160
  def total_sum
147
161
  sum=0
148
162
  size1.times {|i|
@@ -25,8 +25,8 @@ module Statsample
25
25
  # * x: independent Vector
26
26
  # * y: dependent Vector
27
27
  # <b>Usage:</b>
28
- # x=100.times.collect {|i| rand(100)}.to_scale
29
- # y=100.times.collect {|i| 2+x[i]*2+rand()}.to_scale
28
+ # x=100.times.collect {|i| rand(100)}.to_numeric
29
+ # y=100.times.collect {|i| 2+x[i]*2+rand()}.to_numeric
30
30
  # sr=Statsample::Regression.simple(x,y)
31
31
  # sr.a
32
32
  # => 2.51763295177808
@@ -6,9 +6,9 @@ module Statsample
6
6
  # Use:.
7
7
  #
8
8
  # require 'statsample'
9
- # a=1000.times.collect {rand}.to_scale
10
- # b=1000.times.collect {rand}.to_scale
11
- # c=1000.times.collect {rand}.to_scale
9
+ # a=1000.times.collect {rand}.to_numeric
10
+ # b=1000.times.collect {rand}.to_numeric
11
+ # c=1000.times.collect {rand}.to_numeric
12
12
  # ds={'a'=>a,'b'=>b,'c'=>c}.to_dataset
13
13
  # ds['y']=ds.collect{|row| row['a']*5+row['b']*3+row['c']*2+rand()}
14
14
  # lr=Statsample::Regression.multiple(ds,'y')
@@ -9,10 +9,10 @@ module Multiple
9
9
  # If you need pairwise, use RubyEngine
10
10
  # Example:
11
11
  #
12
- # @a=[1,3,2,4,3,5,4,6,5,7].to_vector(:scale)
13
- # @b=[3,3,4,4,5,5,6,6,4,4].to_vector(:scale)
14
- # @c=[11,22,30,40,50,65,78,79,99,100].to_vector(:scale)
15
- # @y=[3,4,5,6,7,8,9,10,20,30].to_vector(:scale)
12
+ # @a=[1,3,2,4,3,5,4,6,5,7].to_vector(:numeric)
13
+ # @b=[3,3,4,4,5,5,6,6,4,4].to_vector(:numeric)
14
+ # @c=[11,22,30,40,50,65,78,79,99,100].to_vector(:numeric)
15
+ # @y=[3,4,5,6,7,8,9,10,20,30].to_vector(:numeric)
16
16
  # ds={'a'=>@a,'b'=>@b,'c'=>@c,'y'=>@y}.to_dataset
17
17
  # lr=Statsample::Regression::Multiple::AlglibEngine.new(ds,'y')
18
18
  #
@@ -109,7 +109,7 @@ class AlglibEngine < BaseEngine
109
109
  red_sd=residuals.sds
110
110
  res.collect {|v|
111
111
  v.quo(red_sd)
112
- }.to_vector(:scale)
112
+ }.to_vector(:numeric)
113
113
  end
114
114
  end
115
115
  end
@@ -53,7 +53,7 @@ module Statsample
53
53
  else
54
54
  process(vect)
55
55
  end
56
- }.to_vector(:scale)
56
+ }.to_vector(:numeric)
57
57
  end
58
58
  # Retrieves a vector with standarized values for y
59
59
  def standarized_predicted
@@ -69,7 +69,7 @@ module Statsample
69
69
  else
70
70
  @ds[@y_var][i] - process(vect)
71
71
  end
72
- }.to_vector(:scale)
72
+ }.to_vector(:numeric)
73
73
  end
74
74
  # R Multiple
75
75
  def r
@@ -133,7 +133,7 @@ module Statsample
133
133
  def tolerance(var)
134
134
  ds=assign_names(@dep_columns)
135
135
  ds.each{|k,v|
136
- ds[k]=v.to_vector(:scale)
136
+ ds[k]=v.to_vector(:numeric)
137
137
  }
138
138
  lr=self.class.new(ds.to_dataset,var)
139
139
  1-lr.r2
@@ -9,10 +9,10 @@ if Statsample.has_gsl?
9
9
  # If you need pairwise, use RubyEngine
10
10
  # Example:
11
11
  #
12
- # @a=[1,3,2,4,3,5,4,6,5,7].to_vector(:scale)
13
- # @b=[3,3,4,4,5,5,6,6,4,4].to_vector(:scale)
14
- # @c=[11,22,30,40,50,65,78,79,99,100].to_vector(:scale)
15
- # @y=[3,4,5,6,7,8,9,10,20,30].to_vector(:scale)
12
+ # @a=[1,3,2,4,3,5,4,6,5,7].to_vector(:numeric)
13
+ # @b=[3,3,4,4,5,5,6,6,4,4].to_vector(:numeric)
14
+ # @c=[11,22,30,40,50,65,78,79,99,100].to_vector(:numeric)
15
+ # @y=[3,4,5,6,7,8,9,10,20,30].to_vector(:numeric)
16
16
  # ds={'a'=>@a,'b'=>@b,'c'=>@c,'y'=>@y}.to_dataset
17
17
  # lr=Statsample::Regression::Multiple::GslEngine.new(ds,'y')
18
18
  #
@@ -109,7 +109,7 @@ if Statsample.has_gsl?
109
109
  red_sd=residuals.sds
110
110
  res.collect {|v|
111
111
  v.quo(red_sd)
112
- }.to_vector(:scale)
112
+ }.to_vector(:numeric)
113
113
  end
114
114
 
115
115
  # Standard error for coeffs
@@ -8,10 +8,10 @@ module Multiple
8
8
  #
9
9
  # Example:
10
10
  #
11
- # @a=[1,3,2,4,3,5,4,6,5,7].to_vector(:scale)
12
- # @b=[3,3,4,4,5,5,6,6,4,4].to_vector(:scale)
13
- # @c=[11,22,30,40,50,65,78,79,99,100].to_vector(:scale)
14
- # @y=[3,4,5,6,7,8,9,10,20,30].to_vector(:scale)
11
+ # @a=[1,3,2,4,3,5,4,6,5,7].to_vector(:numeric)
12
+ # @b=[3,3,4,4,5,5,6,6,4,4].to_vector(:numeric)
13
+ # @c=[11,22,30,40,50,65,78,79,99,100].to_vector(:numeric)
14
+ # @y=[3,4,5,6,7,8,9,10,20,30].to_vector(:numeric)
15
15
  # ds={'a'=>@a,'b'=>@b,'c'=>@c,'y'=>@y}.to_dataset
16
16
  # lr=Statsample::Regression::Multiple::RubyEngine.new(ds,'y')
17
17
 
@@ -7,7 +7,7 @@ module Statsample
7
7
  # == Usage
8
8
  # require 'statsample'
9
9
  # size=1000
10
- # a = size.times.map {rand(10)}.to_scale
10
+ # a = size.times.map {rand(10)}.to_numeric
11
11
  # b = a.recode{|i|i+rand(4)-2}
12
12
  # c =a.recode{|i|i+rand(4)-2}
13
13
  # d = a.recode{|i|i+rand(4)-2}
@@ -6,10 +6,10 @@ module Statsample
6
6
  # PCA and Factor Analysis.
7
7
  #
8
8
  # == Usage
9
- # @x1=[1,1,1,1,2,2,2,2,3,3,3,30].to_vector(:scale)
10
- # @x2=[1,1,1,2,2,3,3,3,3,4,4,50].to_vector(:scale)
11
- # @x3=[2,2,1,1,1,2,2,2,3,4,5,40].to_vector(:scale)
12
- # @x4=[1,2,3,4,4,4,4,3,4,4,5,30].to_vector(:scale)
9
+ # @x1=[1,1,1,1,2,2,2,2,3,3,3,30].to_vector(:numeric)
10
+ # @x2=[1,1,1,2,2,3,3,3,3,4,4,50].to_vector(:numeric)
11
+ # @x3=[2,2,1,1,1,2,2,2,3,4,5,40].to_vector(:numeric)
12
+ # @x4=[1,2,3,4,4,4,4,3,4,4,5,30].to_vector(:numeric)
13
13
  # ds={'x1'=>@x1,'x2'=>@x2,'x3'=>@x3,'x4'=>@x4}.to_dataset
14
14
  # opts={:name=>"Scales", # Name of analysis
15
15
  # :summary_correlation_matrix=>true, # Add correlation matrix
@@ -3,10 +3,10 @@ module Statsample
3
3
  # Analysis of a Scale. Analoge of Scale Reliability analysis on SPSS.
4
4
  # Returns several statistics for complete scale and each item
5
5
  # == Usage
6
- # @x1=[1,1,1,1,2,2,2,2,3,3,3,30].to_vector(:scale)
7
- # @x2=[1,1,1,2,2,3,3,3,3,4,4,50].to_vector(:scale)
8
- # @x3=[2,2,1,1,1,2,2,2,3,4,5,40].to_vector(:scale)
9
- # @x4=[1,2,3,4,4,4,4,3,4,4,5,30].to_vector(:scale)
6
+ # @x1=[1,1,1,1,2,2,2,2,3,3,3,30].to_vector(:numeric)
7
+ # @x2=[1,1,1,2,2,3,3,3,3,4,4,50].to_vector(:numeric)
8
+ # @x3=[2,2,1,1,1,2,2,2,3,4,5,40].to_vector(:numeric)
9
+ # @x4=[1,2,3,4,4,4,4,3,4,4,5,30].to_vector(:numeric)
10
10
  # ds={'x1'=>@x1,'x2'=>@x2,'x3'=>@x3,'x4'=>@x4}.to_dataset
11
11
  # ia=Statsample::Reliability::ScaleAnalysis.new(ds)
12
12
  # puts ia.summary
@@ -49,7 +49,7 @@ module Statsample
49
49
 
50
50
  @cov_m=Statsample::Bivariate.covariance_matrix(@ds)
51
51
  # Mean for covariances and variances
52
- @variances=@k.times.map {|i| @cov_m[i,i]}.to_scale
52
+ @variances=@k.times.map {|i| @cov_m[i,i]}.to_numeric
53
53
  @variances_mean=@variances.mean
54
54
  @covariances_mean=(@variance-@variances.sum).quo(@k**2-@k)
55
55
  #begin
@@ -97,7 +97,7 @@ module Statsample
97
97
  end
98
98
  end
99
99
  def mean_rpb
100
- item_total_correlation.values.to_scale.mean
100
+ item_total_correlation.values.to_numeric.mean
101
101
  end
102
102
  def item_statistics
103
103
  @is||=@ds.fields.inject({}) do |a,v|
@@ -54,7 +54,7 @@ module Statsample
54
54
  def corrected_dataset
55
55
  if @cds.nil?
56
56
  @cds=@ds.dup_empty
57
- @key.keys.each {|k| @cds[k].type=:scale; @cds[k].name=@ds[k].name}
57
+ @key.keys.each {|k| @cds[k].type=:numeric; @cds[k].name=@ds[k].name}
58
58
  @ds.each do |row|
59
59
  out={}
60
60
  row.each do |k,v|
@@ -7,7 +7,7 @@ module Statsample
7
7
 
8
8
  def generate (size,low,upper)
9
9
  range=upper-low+1
10
- Vector.new((0...size).collect {|x| rand(range)+low },:scale)
10
+ Vector.new((0...size).collect {|x| rand(range)+low },:numeric)
11
11
  end
12
12
 
13
13
  end
@@ -52,7 +52,7 @@ module Statsample
52
52
  # Random generation for the normal distribution
53
53
  def rnorm(n,mean=0,sd=1)
54
54
  rng=Distribution::Normal.rng(mean,sd)
55
- Statsample::Vector.new_scale(n) { rng.call}
55
+ Statsample::Vector.new_numeric(n) { rng.call}
56
56
  end
57
57
  # Creates a new Statsample::Dataset
58
58
  # Each key is transformed into string