statsample 0.11.2 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -49,7 +49,7 @@ class StatsampleBivariatePolychoricTestCase < MiniTest::Unit::TestCase
49
49
  assert_in_delta(1.137, @poly.threshold_x[1],0.001)
50
50
  end
51
51
  end
52
- if Statsample.has_gsl?
52
+ if true and Statsample.has_gsl?
53
53
  context "compute joint" do
54
54
  setup do
55
55
  @poly.method=:joint
@@ -57,11 +57,11 @@ class StatsampleBivariatePolychoricTestCase < MiniTest::Unit::TestCase
57
57
  end
58
58
  should "have correct values" do
59
59
  assert_equal(:joint, @poly.method)
60
- assert_in_delta(0.4192, @poly.r, 0.0001)
61
- assert_in_delta(-0.2421, @poly.threshold_y[0],0.0001)
62
- assert_in_delta(-0.0297, @poly.threshold_x[0],0.0001)
63
- assert_in_delta(1.5938, @poly.threshold_y[1],0.0001)
64
- assert_in_delta(1.1331, @poly.threshold_x[1],0.0001)
60
+ assert_in_delta(0.4192, @poly.r, 0.0001)
61
+ assert_in_delta(-0.2421, @poly.threshold_y[0],0.0001)
62
+ assert_in_delta(-0.0297, @poly.threshold_x[0],0.0001)
63
+ assert_in_delta(1.5938, @poly.threshold_y[1],0.0001)
64
+ assert_in_delta(1.1331, @poly.threshold_x[1],0.0001)
65
65
  end
66
66
  end
67
67
  end
@@ -39,7 +39,7 @@ class DistributionTestCase < MiniTest::Unit::TestCase
39
39
  def test_normal_bivariate
40
40
  if Distribution.has_gsl?
41
41
  [0.2,0.4,0.6,0.8,0.9, 0.99,0.999,0.999999].each {|rho|
42
- assert_equal(GSL::Ran::bivariate_gaussian_pdf(0, 0, 1,1,rho), Distribution::NormalBivariate.pdf(0,0, rho , 1,1))
42
+ assert_in_delta(GSL::Ran::bivariate_gaussian_pdf(0, 0, 1,1,rho), Distribution::NormalBivariate.pdf(0,0, rho , 1,1),1e-8)
43
43
 
44
44
  }
45
45
  end
@@ -1,6 +1,4 @@
1
1
  require(File.dirname(__FILE__)+'/helpers_tests.rb')
2
-
3
-
4
2
  class StatsampleReliabilityTestCase < MiniTest::Unit::TestCase
5
3
  context Statsample::Reliability do
6
4
  context "Cronbach's alpha" do
@@ -30,6 +28,19 @@ class StatsampleReliabilityTestCase < MiniTest::Unit::TestCase
30
28
  expected = @k.quo(@k-1) * (1-(ind_var.quo(total_sum)))
31
29
  assert_in_delta(expected, @a,1e-10)
32
30
  end
31
+ should "method cronbach_alpha_from_n_s2_cov return correct values" do
32
+ sa=Statsample::Reliability::ScaleAnalysis.new(@ds)
33
+ vm, cm = sa.variances_mean, sa.covariances_mean
34
+ assert_in_delta(sa.alpha, Statsample::Reliability.cronbach_alpha_from_n_s2_cov(@n_variables, vm,cm), 1e-10 )
35
+
36
+ end
37
+ should "return correct n for desired alpha, covariance and variance" do
38
+ sa=Statsample::Reliability::ScaleAnalysis.new(@ds)
39
+ vm, cm = sa.variances_mean, sa.covariances_mean
40
+ n_obtained=Statsample::Reliability.n_for_desired_alpha(@a, vm,cm)
41
+ #p n_obtained
42
+ assert_in_delta(Statsample::Reliability.cronbach_alpha_from_n_s2_cov(n_obtained, vm,cm) ,@a,0.001)
43
+ end
33
44
  should "standarized alpha will be equal to sum of matrix covariance less the individual variances on standarized values" do
34
45
  total_sum=@cme.total_sum
35
46
  ind_var=@dse.fields.inject(0) {|ac,v| ac+@dse[v].variance}
@@ -87,14 +98,82 @@ class StatsampleReliabilityTestCase < MiniTest::Unit::TestCase
87
98
  end
88
99
 
89
100
  end
90
- context Statsample::Reliability::ItemAnalysis do
101
+
102
+ context Statsample::Reliability::MultiScaleAnalysis do
103
+
104
+ setup do
105
+
106
+ size=100
107
+ @scales=4
108
+ @items_per_scale=10
109
+ h={}
110
+ @scales.times {|s|
111
+ @items_per_scale.times {|i|
112
+ h["#{s}_#{i}"] = (size.times.map {(s*2)+rand}).to_scale
113
+ }
114
+ }
115
+ @ds=h.to_dataset
116
+ @msa=Statsample::Reliability::MultiScaleAnalysis.new(:name=>'Multiple Analysis') do |m|
117
+ m.scale "complete", @ds
118
+ @scales.times {|s|
119
+ m.scale "scale_#{s}", @ds.clone(@items_per_scale.times.map {|i| "#{s}_#{i}"}), {:name=>"Scale #{s}"}
120
+ }
121
+ end
122
+ end
123
+ should "Retrieve correct ScaleAnalysis for whole scale" do
124
+ sa=Statsample::Reliability::ScaleAnalysis.new(@ds, :name=>"Scale complete")
125
+ assert_equal(sa.variances_mean, @msa.scale("complete").variances_mean)
126
+ end
127
+ should "Retrieve correct ScaleAnalysis for each scale" do
128
+ @scales.times {|s|
129
+ sa=Statsample::Reliability::ScaleAnalysis.new(@ds.dup(@items_per_scale.times.map {|i| "#{s}_#{i}"}), :name=>"Scale #{s}")
130
+ assert_equal(sa.variances_mean,@msa.scale("scale_#{s}").variances_mean)
131
+ }
132
+ end
133
+ should "retrieve correct correlation matrix for each scale" do
134
+ vectors={'complete'=>@ds.vector_sum}
135
+
136
+ @scales.times {|s|
137
+ vectors["scale_#{s}"]=@ds.dup(@items_per_scale.times.map {|i| "#{s}_#{i}"}).vector_sum
138
+ }
139
+ ds2=vectors.to_dataset
140
+ assert_equal(Statsample::Bivariate.correlation_matrix(ds2), @msa.correlation_matrix)
141
+ end
142
+ should "delete scale using delete_scale" do
143
+ @msa.delete_scale("complete")
144
+ assert_equal(@msa.scales.keys.sort, @scales.times.map {|s| "scale_#{s}"})
145
+ end
146
+ should "retrieve pca for scales" do
147
+ @msa.delete_scale("complete")
148
+ vectors=Hash.new
149
+ @scales.times {|s|
150
+ vectors["scale_#{s}"]=@ds.dup(@items_per_scale.times.map {|i| "#{s}_#{i}"}).vector_sum
151
+ }
152
+ ds2=vectors.to_dataset
153
+ cor_matrix=Statsample::Bivariate.correlation_matrix(ds2)
154
+ m=3
155
+ pca=Statsample::Factor::PCA.new(cor_matrix, :m=>m)
156
+ assert_equal(pca.component_matrix, @msa.pca(:m=>m).component_matrix)
157
+ end
158
+ should "retrieve acceptable summary" do
159
+ @msa.delete_scale("scale_0")
160
+ @msa.delete_scale("scale_1")
161
+ @msa.delete_scale("scale_2")
162
+
163
+
164
+ #@msa.summary_correlation_matrix=true
165
+ #@msa.summary_pca=true
166
+ assert(@msa.summary.size>0)
167
+ end
168
+ end
169
+ context Statsample::Reliability::ScaleAnalysis do
91
170
  setup do
92
- @x1=[1,1,1,1,2,2,2,2,3,3,3,30].to_vector(:scale)
93
- @x2=[1,1,1,2,2,3,3,3,3,4,4,50].to_vector(:scale)
94
- @x3=[2,2,1,1,1,2,2,2,3,4,5,40].to_vector(:scale)
95
- @x4=[1,2,3,4,4,4,4,3,4,4,5,30].to_vector(:scale)
171
+ @x1=[1,1,1,1,2,2,2,2,3,3,3,30].to_scale
172
+ @x2=[1,1,1,2,2,3,3,3,3,4,4,50].to_scale
173
+ @x3=[2,2,1,1,1,2,2,2,3,4,5,40].to_scale
174
+ @x4=[1,2,3,4,4,4,4,3,4,4,5,30].to_scale
96
175
  @ds={'x1'=>@x1,'x2'=>@x2,'x3'=>@x3,'x4'=>@x4}.to_dataset
97
- @ia=Statsample::Reliability::ItemAnalysis.new(@ds)
176
+ @ia=Statsample::Reliability::ScaleAnalysis.new(@ds)
98
177
  @cov_matrix=Statsample::Bivariate.covariance_matrix(@ds)
99
178
  end
100
179
  should "return correct values for item analysis" do
data/test/test_vector.rb CHANGED
@@ -200,14 +200,6 @@ class StatsampleTestVector < MiniTest::Unit::TestCase
200
200
 
201
201
  assert_match(/#{@c.name}/, @c.summary)
202
202
  end
203
- should "have output dependent of #type" do
204
- @c.type=:nominal
205
- assert_match(/Distribution/, @c.summary())
206
- @c.type=:ordinal
207
- assert_match(/median/, @c.summary())
208
- @c.type=:scale
209
- assert_match(/mean/, @c.summary())
210
- end
211
203
 
212
204
 
213
205
  end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 11
8
- - 2
9
- version: 0.11.2
7
+ - 12
8
+ - 0
9
+ version: 0.12.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Claudio Bustos
@@ -35,7 +35,7 @@ cert_chain:
35
35
  rpP0jjs0
36
36
  -----END CERTIFICATE-----
37
37
 
38
- date: 2010-05-05 00:00:00 -04:00
38
+ date: 2010-06-14 00:00:00 -04:00
39
39
  default_executable:
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
@@ -118,7 +118,7 @@ dependencies:
118
118
  type: :runtime
119
119
  version_requirements: *id006
120
120
  - !ruby/object:Gem::Dependency
121
- name: statistics2
121
+ name: extendmatrix
122
122
  prerelease: false
123
123
  requirement: &id007 !ruby/object:Gem::Requirement
124
124
  requirements:
@@ -126,66 +126,51 @@ dependencies:
126
126
  - !ruby/object:Gem::Version
127
127
  segments:
128
128
  - 0
129
- - 54
130
- version: "0.54"
129
+ - 2
130
+ - 0
131
+ version: 0.2.0
131
132
  type: :runtime
132
133
  version_requirements: *id007
133
134
  - !ruby/object:Gem::Dependency
134
- name: extendmatrix
135
+ name: rubyforge
135
136
  prerelease: false
136
137
  requirement: &id008 !ruby/object:Gem::Requirement
137
138
  requirements:
138
- - - ~>
139
+ - - ">="
139
140
  - !ruby/object:Gem::Version
140
141
  segments:
141
- - 0
142
142
  - 2
143
143
  - 0
144
- version: 0.2.0
145
- type: :runtime
144
+ - 4
145
+ version: 2.0.4
146
+ type: :development
146
147
  version_requirements: *id008
147
148
  - !ruby/object:Gem::Dependency
148
- name: gsl
149
+ name: shoulda
149
150
  prerelease: false
150
151
  requirement: &id009 !ruby/object:Gem::Requirement
151
- requirements:
152
- - - ~>
153
- - !ruby/object:Gem::Version
154
- segments:
155
- - 1
156
- - 12
157
- - 109
158
- version: 1.12.109
159
- type: :runtime
160
- version_requirements: *id009
161
- - !ruby/object:Gem::Dependency
162
- name: rubyforge
163
- prerelease: false
164
- requirement: &id010 !ruby/object:Gem::Requirement
165
152
  requirements:
166
153
  - - ">="
167
154
  - !ruby/object:Gem::Version
168
155
  segments:
169
- - 2
170
156
  - 0
171
- - 4
172
- version: 2.0.4
157
+ version: "0"
173
158
  type: :development
174
- version_requirements: *id010
159
+ version_requirements: *id009
175
160
  - !ruby/object:Gem::Dependency
176
161
  name: hoe
177
162
  prerelease: false
178
- requirement: &id011 !ruby/object:Gem::Requirement
163
+ requirement: &id010 !ruby/object:Gem::Requirement
179
164
  requirements:
180
165
  - - ">="
181
166
  - !ruby/object:Gem::Version
182
167
  segments:
183
168
  - 2
184
169
  - 6
185
- - 0
186
- version: 2.6.0
170
+ - 1
171
+ version: 2.6.1
187
172
  type: :development
188
- version_requirements: *id011
173
+ version_requirements: *id010
189
174
  description: |-
190
175
  A suite for basic and advanced statistics on Ruby. Tested on Ruby 1.8.7, 1.9.1, 1.9.2 (April, 2010) and JRuby 1.4 (Ruby 1.8.7 compatible).
191
176
 
@@ -197,6 +182,7 @@ description: |-
197
182
  * Tests: F, T, Levene, U-Mannwhitney.
198
183
  * Regression: Simple, Multiple (OLS), Probit and Logit
199
184
  * Factorial Analysis: Extraction (PCA and Principal Axis), Rotation (Varimax, Equimax, Quartimax) and Parallel Analysis, for estimation of number of factors.
185
+ * Reliability analysis for simple scale and helpers to analyze multiple scales using factor analysis and correlations
200
186
  * Dominance Analysis, with multivariate dependent and bootstrap (Azen & Budescu)
201
187
  * Sample calculation related formulas
202
188
  * Creates reports on text, html and rtf, using ReportBuilder gem
@@ -224,6 +210,7 @@ files:
224
210
  - data/test_binomial.csv
225
211
  - data/tetmat_matrix.txt
226
212
  - data/tetmat_test.txt
213
+ - doc_latex/manual/equations.tex
227
214
  - examples/correlation_matrix.rb
228
215
  - examples/dataset.rb
229
216
  - examples/dominance_analysis.rb
@@ -244,6 +231,7 @@ files:
244
231
  - lib/distribution/f.rb
245
232
  - lib/distribution/normal.rb
246
233
  - lib/distribution/normalbivariate.rb
234
+ - lib/distribution/normalmultivariate.rb
247
235
  - lib/distribution/t.rb
248
236
  - lib/spss.rb
249
237
  - lib/statsample.rb
@@ -293,6 +281,8 @@ files:
293
281
  - lib/statsample/regression/multiple/rubyengine.rb
294
282
  - lib/statsample/regression/simple.rb
295
283
  - lib/statsample/reliability.rb
284
+ - lib/statsample/reliability/multiscaleanalysis.rb
285
+ - lib/statsample/reliability/scaleanalysis.rb
296
286
  - lib/statsample/resample.rb
297
287
  - lib/statsample/srs.rb
298
288
  - lib/statsample/test.rb
@@ -347,7 +337,25 @@ has_rdoc: true
347
337
  homepage: http://ruby-statsample.rubyforge.org/
348
338
  licenses: []
349
339
 
350
- post_install_message:
340
+ post_install_message: |
341
+ ***************************************************
342
+ Thanks for installing statsample.
343
+
344
+ On *nix, you should install statsample-optimization
345
+ to retrieve gems gsl, statistics2 and a C extension
346
+ to speed some methods.
347
+
348
+ $sudo gem install statsample-optimization
349
+
350
+ To use it, on Ubuntu I recommend install
351
+ build-essential and libgsl0-dev using apt-get and
352
+ compile ruby 1.8 or 1.9 from source code first.
353
+
354
+ $sudo apt-get install build-essential libgsl0-dev
355
+
356
+
357
+ *****************************************************
358
+
351
359
  rdoc_options:
352
360
  - --main
353
361
  - README.txt
metadata.gz.sig CHANGED
Binary file