statsample 0.14.0 → 0.14.1

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.
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,15 @@
1
+ === 0.14.1 / 2010-08-18
2
+
3
+ * Added extra information on $DEBUG=true.
4
+ * Changed ParallelAnalysis: with_random_data parameters, bootstrap_method options are data and random, resolve bug related to number of factors to preserve, resolved bug related to original eigenvalues, can support failed bootstrap of data for Tetrachoric correlation.
5
+ * Optimized eigenpairs on Matrix when GSL is available.
6
+ * Added test for parallel analysis using data bootstraping
7
+ * Updated .pot and Manifest.txt
8
+ * Added test for kmo(global and univariate), bartlett and anti-image. Kmo and Bartlett have test based on Dziuban and Shirkey with correct results
9
+ * Complete set of test to test if a correlation matrix is appropriate for factor analysis: test of sphericity, KMO and anti-image (see Dziuban and Shirkey, 1974)
10
+ * Updated Parallel Analysis to work on Principal Axis Analysis based on O'Connors formulae
11
+ * Added reference for Statsample::Factor::MAP
12
+
1
13
  === 0.14.0 / 2010-08-16
2
14
  * Added Statsample::Factor::MAP, to execute Velicer's (1976) MAP to determine the number of factors to retain on EFA
3
15
  * Bug fix on test suite on Ruby 1.8.7
@@ -90,6 +90,7 @@ lib/statsample/resample.rb
90
90
  lib/statsample/rserve_extension.rb
91
91
  lib/statsample/srs.rb
92
92
  lib/statsample/test.rb
93
+ lib/statsample/test/bartlettsphericity.rb
93
94
  lib/statsample/test/chisquare.rb
94
95
  lib/statsample/test/f.rb
95
96
  lib/statsample/test/levene.rb
@@ -100,11 +101,13 @@ po/es/statsample.mo
100
101
  po/es/statsample.po
101
102
  po/statsample.pot
102
103
  setup.rb
104
+ test/fixtures/correlation_matrix.rb
103
105
  test/helpers_tests.rb
104
106
  test/test_anovaoneway.rb
105
107
  test/test_anovatwoway.rb
106
108
  test/test_anovatwowaywithdataset.rb
107
109
  test/test_anovawithvectors.rb
110
+ test/test_bartlettsphericity.rb
108
111
  test/test_bivariate.rb
109
112
  test/test_codification.rb
110
113
  test/test_combination.rb
@@ -15,7 +15,7 @@ module Distribution
15
15
  # Returns the integral of Chi-squared distribution
16
16
  # with k degrees of freedom over [0, x]
17
17
  #
18
- def cdf(x,k)
18
+ def cdf(x, k)
19
19
  Statistics2.chi2dist(k.to_i,x)
20
20
  end
21
21
  end
@@ -113,7 +113,7 @@ module Statsample
113
113
  end
114
114
  end
115
115
 
116
- VERSION = '0.14.0'
116
+ VERSION = '0.14.1'
117
117
  SPLIT_TOKEN = ","
118
118
  autoload(:Database, 'statsample/converters')
119
119
  autoload(:Anova, 'statsample/anova')
@@ -15,5 +15,79 @@ module Statsample
15
15
  # * Statsample::Factor::Quartimax
16
16
  # See documentation of each class to use it
17
17
  module Factor
18
+ # Anti-image covariance matrix.
19
+ # Useful for inspection of desireability of data for factor analysis.
20
+ # According to Dziuban & Shirkey (1974, p.359):
21
+ # "If this matrix does not exhibit many zero off-diagonal elements,
22
+ # the investigator has evidence that the correlation
23
+ # matrix is not appropriate for factor analysis."
24
+ #
25
+ def self.anti_image_covariance_matrix(matrix)
26
+ s2=Matrix.diag(*(matrix.inverse.diagonal)).inverse
27
+ aicm=(s2)*matrix.inverse*(s2)
28
+ aicm.extend(Statsample::CovariateMatrix)
29
+ aicm.fields=matrix.fields if matrix.respond_to? :fields
30
+ aicm
31
+ end
32
+ def self.anti_image_correlation_matrix(matrix)
33
+ s=Matrix.diag(*(matrix.inverse.diagonal)).sqrt.inverse
34
+ aicm=s*matrix.inverse*s
35
+ aicm.extend(Statsample::CovariateMatrix)
36
+ aicm.fields=matrix.fields if matrix.respond_to? :fields
37
+ aicm
38
+
39
+ end
40
+
41
+ # Kaiser-Meyer-Olkin measure of sampling adequacy for correlation matrix.
42
+ #
43
+ # Kaiser's (1974, cited on Dziuban & Shirkey, 1974) present calibration of the index is as follows :
44
+ # * .90s—marvelous
45
+ # * .80s— meritorious
46
+ # * .70s—middling
47
+ # * .60s—mediocre
48
+ # * .50s—miserable
49
+ # * .50 •—unacceptable
50
+ def self.kmo(matrix)
51
+ q=anti_image_correlation_matrix(matrix)
52
+ n=matrix.row_size
53
+ sum_r,sum_q=0,0
54
+ n.times do |j|
55
+ n.times do |k|
56
+ if j!=k
57
+ sum_r+=matrix[j,k]**2
58
+ sum_q+=q[j,k]**2
59
+ end
60
+ end
61
+ end
62
+ sum_r.quo(sum_r+sum_q)
63
+ end
64
+ # Kaiser-Meyer-Olkin measure of sampling adequacy for one variable.
65
+ #
66
+ def self.kmo_univariate(matrix, var)
67
+ if var.is_a? String
68
+ if matrix.respond_to? :fields
69
+ j=matrix.fields.index(var)
70
+ raise "Matrix doesn't have field #{var}" if j.nil?
71
+ else
72
+ raise "Matrix doesn't respond to fields"
73
+ end
74
+ else
75
+ j=var
76
+ end
77
+
78
+ q=anti_image_correlation_matrix(matrix)
79
+ n=matrix.row_size
80
+
81
+ sum_r,sum_q=0,0
82
+
83
+ n.times do |k|
84
+ if j!=k
85
+ sum_r+=matrix[j,k]**2
86
+ sum_q+=q[j,k]**2
87
+ end
88
+ end
89
+ sum_r.quo(sum_r+sum_q)
90
+ end
91
+
18
92
  end
19
93
  end
@@ -29,6 +29,12 @@ module Statsample
29
29
  # tematic variance." (O'Connor, 2000, p.397).
30
30
  #
31
31
  # Current algorithm is loosely based on SPSS O'Connor algorithm
32
+ #
33
+ # == Reference
34
+ # * O'Connor, B. (2000). SPSS and SAS programs for determining the number of components using parallel analysis and Velicer’s MAP test. Behavior Research Methods, Instruments, & Computers, 32(3), 396-402.
35
+ #
36
+
37
+
32
38
 
33
39
  class MAP
34
40
  include Summarizable
@@ -52,12 +58,13 @@ module Statsample
52
58
  end
53
59
  def compute
54
60
  eigen=@matrix.eigen
55
- eigvect,@eigenvalues=eigen[:eigenvectors],eigen[:eigenvalues]
61
+ eigvect,@eigenvalues=eigen[:eigenvectors], eigen[:eigenvalues]
56
62
  loadings=eigvect*(Matrix.diag(*@eigenvalues).sqrt)
57
63
  fm=Array.new(@matrix.row_size)
58
64
  ncol=@matrix.column_size
59
65
  fm[0]=(@matrix.mssq - ncol).quo(ncol*(ncol-1))
60
66
  (ncol-1).times do |m|
67
+ puts "MAP:Eigenvalue #{m+1}" if $DEBUG
61
68
  a=loadings[0..(loadings.row_size-1),0..m]
62
69
  partcov= @matrix - (a*a.t)
63
70
  pc_prediag=partcov.row_size.times.map{|i|
@@ -18,13 +18,16 @@ module Statsample
18
18
  # == References:
19
19
  # * Hayton, J., Allen, D. & Scarpello, V.(2004). Factor Retention Decisions in Exploratory Factor Analysis: a Tutorial on Parallel Analysis. <i>Organizational Research Methods, 7</i> (2), 191-205.
20
20
  # * O'Connor, B. (2000). SPSS and SAS programs for determining the number of components using parallel analysis and Velicer’s MAP test. Behavior Research Methods, Instruments, & Computers, 32 (3), 396-402
21
+ # * Liu, O., & Rijmen, F. (2008). A modified procedure for parallel analysis of ordered categorical data. Behavior Research Methods, 40(2), 556-562.
22
+
21
23
  class ParallelAnalysis
22
- def self.with_random_data(cases,vars,iterations=100,percentil=95)
24
+ def self.with_random_data(cases,vars,opts=Hash.new)
23
25
  require 'ostruct'
24
26
  ds=OpenStruct.new
25
27
  ds.fields=vars.times.map {|i| "v#{i+1}"}
26
28
  ds.cases=cases
27
- pa=new(ds,{:bootstrap_method=>:random, :no_data=>true, :iterations=>iterations,:percentil=>percentil})
29
+ opts=opts.merge({:bootstrap_method=> :random, :no_data=>true})
30
+ pa=new(ds, opts)
28
31
  end
29
32
  include DirtyMemoize
30
33
  include Summarizable
@@ -36,15 +39,15 @@ module Statsample
36
39
  attr_reader :ds
37
40
  # Bootstrap method. <tt>:random</tt> used by default
38
41
  # * <tt>:random</tt>: uses number of variables and cases for the dataset
39
- # * <tt>:raw_data</tt> : sample with replacement from actual data.
40
- # * <tt>:parameter</tt>: uses number of variables and cases, uses mean and standard deviation of each variable
42
+ # * <tt>:data</tt> : sample with replacement from actual data.
41
43
 
42
44
  attr_accessor :bootstrap_method
43
- # Factor method.
44
- # Could be Statsample::Factor::PCA or Statsample::Factor::PrincipalAxis.
45
- # PCA used by default.
46
- # Remember to set n_variables when using Principal Axis Analysis.
47
- attr_accessor :factor_class
45
+ # Uses smc on diagonal of matrixes, to perform simulation
46
+ # of a Principal Axis analysis.
47
+ # By default, false.
48
+
49
+ attr_accessor :smc
50
+
48
51
  # Percentil over bootstrap eigenvalue should be accepted. 95 by default
49
52
  attr_accessor :percentil
50
53
  # Correlation matrix used with :raw_data . <tt>:correlation_matrix</tt> used by default
@@ -66,9 +69,9 @@ module Statsample
66
69
  @n_cases=ds.cases
67
70
  opts_default={
68
71
  :name=>_("Parallel Analysis"),
69
- :iterations=>100,
72
+ :iterations=>50, # See Liu and Rijmen (2008)
70
73
  :bootstrap_method => :random,
71
- :factor_class => Statsample::Factor::PCA,
74
+ :smc=>false,
72
75
  :percentil=>95,
73
76
  :debug=>false,
74
77
  :no_data=>false,
@@ -82,13 +85,18 @@ module Statsample
82
85
  def number_of_factors
83
86
  total=0
84
87
  ds_eigenvalues.fields.each_with_index do |f,i|
85
- total+=1 if (@original[i]>0 and @original[i]>ds_eigenvalues[f].percentil(percentil))
88
+ if (@original[i]>0 and @original[i]>ds_eigenvalues[f].percentil(percentil))
89
+ total+=1
90
+ else
91
+ break
92
+ end
86
93
  end
87
94
  total
88
95
  end
89
96
  def report_building(g) #:nodoc:
90
97
  g.section(:name=>@name) do |s|
91
98
  s.text _("Bootstrap Method: %s") % bootstrap_method
99
+ s.text _("Uses SMC: %s") % (smc ? _("Yes") : _("No"))
92
100
  s.text _("Correlation Matrix type : %s") % matrix_method
93
101
  s.text _("Number of variables: %d") % @n_variables
94
102
  s.text _("Number of cases: %d") % @n_cases
@@ -114,8 +122,8 @@ module Statsample
114
122
  end
115
123
  # Perform calculation. Shouldn't be called directly for the user
116
124
  def compute
117
- @original=factor_class.new(Statsample::Bivariate.correlation_matrix(@ds), :m=>@n_variables).eigenvalues.sort.reverse unless no_data
118
125
 
126
+ @original=Statsample::Bivariate.send(matrix_method, @ds).eigenvalues unless no_data
119
127
  @ds_eigenvalues=Statsample::Dataset.new((1..@n_variables).map{|v| "ev_%05d" % v})
120
128
  @ds_eigenvalues.fields.each {|f| @ds_eigenvalues[f].type=:scale}
121
129
  if bootstrap_method==:parameter or bootstrap_method==:random
@@ -123,29 +131,37 @@ module Statsample
123
131
  end
124
132
 
125
133
  @iterations.times do |i|
126
- # Create a dataset of dummy values
127
- ds_bootstrap=Statsample::Dataset.new(@ds.fields)
128
- @fields.each do |f|
129
- if bootstrap_method==:parameter
130
- sd=@ds[f].sd
131
- mean=@ds[f].mean
132
- ds_bootstrap[f]=@n_cases.times.map {|c| rng.gaussian(sd) + mean }.to_scale
133
- elsif bootstrap_method==:random
134
- ds_bootstrap[f]=@n_cases.times.map {|c| rng.ugaussian()}.to_scale
135
- elsif bootstrap_method==:raw_data
136
- ds_bootstrap[f]=ds[f].sample_with_replacement(@n_cases).to_scale
134
+ begin
135
+ puts "#{@name}: Iteration #{i}" if $DEBUG or debug
136
+ # Create a dataset of dummy values
137
+ ds_bootstrap=Statsample::Dataset.new(@ds.fields)
138
+ @fields.each do |f|
139
+ if bootstrap_method==:random
140
+ ds_bootstrap[f]=@n_cases.times.map {|c| rng.ugaussian()}.to_scale
141
+ elsif bootstrap_method==:data
142
+ ds_bootstrap[f]=ds[f].sample_with_replacement(@n_cases).to_scale
143
+ else
144
+ raise "bootstrap_method doesn't recogniced"
145
+ end
146
+ end
147
+ matrix=Statsample::Bivariate.send(matrix_method, ds_bootstrap)
148
+ if smc
149
+ smc_v=matrix.inverse.diagonal.map{|ii| 1-(1.quo(ii))}
150
+ smc_v.each_with_index do |v,ii|
151
+ matrix[ii,ii]=v
152
+ end
137
153
  end
154
+ ev=matrix.eigenvalues
155
+ @ds_eigenvalues.add_case_array(ev)
156
+ rescue Tetrachoric::RequerimentNotMeet => e
157
+ puts "Error: #{e}" if $DEBUG
158
+ redo
138
159
  end
139
- #pp Statsample::Bivariate.correlation_matrix(ds_bootstrap)
140
- fa=factor_class.new(Statsample::Bivariate.send(matrix_method, ds_bootstrap), :m=>@n_variables)
141
- ev=fa.eigenvalues.sort.reverse
142
- @ds_eigenvalues.add_case_array(ev)
143
- puts "iteration #{i}" if $DEBUG or debug
144
160
  end
145
161
  @ds_eigenvalues.update_valid_data
146
162
  end
147
163
  dirty_memoize :number_of_factors, :ds_eigenvalues
148
- dirty_writer :iterations, :bootstrap_method, :factor_class, :percentil
164
+ dirty_writer :iterations, :bootstrap_method, :percentil, :smc
149
165
  end
150
166
  end
151
167
  end
@@ -146,15 +146,15 @@ module Factor
146
146
  end
147
147
 
148
148
  def calculate_eigenpairs_ruby
149
- @eigenpairs = @matrix.eigenpairs
149
+ @eigenpairs = @matrix.eigenpairs_ruby
150
150
  end
151
151
  def calculate_eigenpairs_gsl
152
152
  eigval, eigvec= GSL::Eigen.symmv(@matrix.to_gsl)
153
- @eigenpairs={}
154
- eigval.each_index {|i|
155
- @eigenpairs[eigval[i]]=eigvec.get_col(i)
156
- }
157
- @eigenpairs=@eigenpairs.sort.reverse
153
+
154
+ ep=eigval.size.times.map {|i|
155
+ [eigval[i], eigvec.get_col(i)]
156
+ }
157
+ @eigenpairs=ep.sort{|a,b| a[0]<=>b[0]}.reverse
158
158
  end
159
159
 
160
160
  def report_building(builder) # :nodoc:
@@ -124,6 +124,7 @@ module Factor
124
124
  prev_sum=prev_com.inject(0) {|ac,v| ac+v}
125
125
  @iterations=0
126
126
  t.times do |i|
127
+ "#{@name}: Iteration #{i}" if $DEBUG
127
128
  @iterations+=1
128
129
  prev_com.each_with_index{|v,it|
129
130
  work_matrix[it][it]=v
@@ -134,7 +135,7 @@ module Factor
134
135
  com_sum = @communalities.inject(0) {|ac,v| ac+v}
135
136
  jump=true
136
137
 
137
- break if (com_sum-prev_sum).abs<@delta
138
+ break if (com_sum-prev_sum).abs < @delta
138
139
  @communalities.each_with_index do |v2,i2|
139
140
  raise "Variable #{i2} with communality > 1" if v2>1.0
140
141
  end
@@ -153,12 +154,17 @@ module Factor
153
154
 
154
155
  def initial_communalities
155
156
  if @initial_communalities.nil?
157
+
156
158
  if @smc
159
+ # Based on O'Connors(2000)
160
+ @initial_communalities=@matrix.inverse.diagonal.map{|i| 1-(1.quo(i))}
161
+ =begin
157
162
  @initial_communalities=@matrix.column_size.times.collect {|i|
158
163
  rxx , rxy = PrincipalAxis.separate_matrices(@matrix,i)
159
164
  matrix=(rxy.t*rxx.inverse*rxy)
160
165
  matrix[0,0]
161
166
  }
167
+ =end
162
168
  else
163
169
  @initial_communalities=[1.0]*@matrix.column_size
164
170
  end
@@ -5,7 +5,22 @@ class ::Matrix
5
5
  def to_matrix
6
6
  self
7
7
  end
8
+ alias :eigenpairs_ruby :eigenpairs
8
9
 
10
+ if Statsample.has_gsl?
11
+ # Optimize eigenpairs of extendmatrix module using gsl
12
+ def eigenpairs
13
+ eigval, eigvec= GSL::Eigen.symmv(self.to_gsl)
14
+ ep=eigval.size.times.map {|i|
15
+ [eigval[i], eigvec.get_col(i)]
16
+ }
17
+ ep.sort{|a,b| a[0]<=>b[0]}.reverse
18
+ end
19
+ end
20
+ def eigenvalues
21
+ eigen[:eigenvalues]
22
+ end
23
+
9
24
  def to_gsl
10
25
  out=[]
11
26
  self.row_size.times{|i|
@@ -7,6 +7,7 @@ module Statsample
7
7
  autoload(:T, 'statsample/test/t')
8
8
  autoload(:F, 'statsample/test/f')
9
9
  autoload(:ChiSquare, 'statsample/test/chisquare')
10
+ autoload(:BartlettSphericity, 'statsample/test/bartlettsphericity')
10
11
 
11
12
  # Returns probability of getting a value lower or higher
12
13
  # than sample, using cdf and number of tails.
@@ -0,0 +1,45 @@
1
+ module Statsample
2
+ module Test
3
+ # == Bartlett's test of Sphericity.
4
+ # Test the hyphotesis that the sample correlation matrix
5
+ # comes from a multivariate normal population where variables
6
+ # are independent. In other words, the population correlation
7
+ # matrix is the identity matrix.
8
+ # == Reference
9
+ # * Dziuban, C., & Shirkey E. (1974). When is a correlation matrix appropriate for factor analysis? Some decision rules. Psychological Bulletin, 81(6), 358-361.
10
+ class BartlettSphericity
11
+ include Statsample::Test
12
+ include Summarizable
13
+ attr_accessor :name
14
+ attr_reader :ncases
15
+ attr_reader :nvars
16
+ attr_reader :value
17
+ attr_reader :df
18
+ # Args
19
+ # * _matrix_: correlation matrix
20
+ # * _ncases_: number of cases
21
+ def initialize(matrix,ncases)
22
+ @matrix=matrix
23
+ @ncases=ncases
24
+ @nvars=@matrix.row_size
25
+ @name=_("Bartlett's test of sphericity")
26
+ compute
27
+ end
28
+ # Uses SPSS formula.
29
+ # On Dziuban & Shirkey, the minus between the first and second
30
+ # statement is a *!!!
31
+ #
32
+ def compute
33
+ @value=-((@ncases-1)-(2*@nvars+5).quo(6))*Math::log(@matrix.determinant)
34
+ @df=(@nvars*(@nvars-1)).quo(2)
35
+ end
36
+ def probability
37
+ 1-Distribution::ChiSquare.cdf(@value,@df)
38
+ end
39
+ def report_building(builder) # :nodoc:
40
+ builder.text "%s : X(%d) = %0.4f , p = %0.4f" % [@name, @df, @value, probability]
41
+ end
42
+
43
+ end
44
+ end
45
+ end
Binary file
@@ -1,8 +1,8 @@
1
1
  msgid ""
2
2
  msgstr ""
3
- "Project-Id-Version: statsample 0.13.1\n"
4
- "POT-Creation-Date: 2010-08-10 17:00-0400\n"
5
- "PO-Revision-Date: 2010-08-10 17:27-0300\n"
3
+ "Project-Id-Version: statsample 0.14.0\n"
4
+ "POT-Creation-Date: 2010-08-17 18:46-0400\n"
5
+ "PO-Revision-Date: 2010-08-17 18:50-0300\n"
6
6
  "Last-Translator: Claudio Bustos <clbustos@gmail.com>\n"
7
7
  "Language-Team: Desarrollador\n"
8
8
  "MIME-Version: 1.0\n"
@@ -20,8 +20,8 @@ msgid "Mean and standard deviation"
20
20
  msgstr "Promedio y desviación estándar"
21
21
 
22
22
  #: lib/statsample/test/t.rb:209
23
- #: lib/statsample/factor/pca.rb:169
24
- #: lib/statsample/factor/principalaxis.rb:190
23
+ #: lib/statsample/factor/pca.rb:163
24
+ #: lib/statsample/factor/principalaxis.rb:202
25
25
  msgid "Variable"
26
26
  msgstr "Variable"
27
27
 
@@ -35,7 +35,8 @@ msgid "sd"
35
35
  msgstr "de"
36
36
 
37
37
  #: lib/statsample/test/t.rb:209
38
- #: lib/statsample/factor/parallelanalysis.rb:79
38
+ #: lib/statsample/factor/parallelanalysis.rb:100
39
+ #: lib/statsample/factor/parallelanalysis.rb:108
39
40
  msgid "n"
40
41
  msgstr "n"
41
42
 
@@ -88,6 +89,10 @@ msgstr "p exacto (Dinneen & Blakesley, 1973):"
88
89
  msgid "Levene Test"
89
90
  msgstr "Test de Levene"
90
91
 
92
+ #: lib/statsample/test/bartlettsphericity.rb:25
93
+ msgid "Bartlett's test of sphericity"
94
+ msgstr "Test de esfericidad de Bartlett"
95
+
91
96
  #: lib/statsample/regression/multiple/baseengine.rb:25
92
97
  msgid "Multiple Regression: %s over %s"
93
98
  msgstr "Regresión Múltiple: %s sobre %s"
@@ -269,11 +274,11 @@ msgstr "Dentro de grupos"
269
274
  msgid "Descriptives"
270
275
  msgstr "Descriptivos"
271
276
 
272
- #: lib/statsample/bivariate/pearson.rb:33
277
+ #: lib/statsample/bivariate/pearson.rb:32
273
278
  msgid "Correlation (%s - %s)"
274
279
  msgstr "Correlación (%s - %s)"
275
280
 
276
- #: lib/statsample/bivariate/pearson.rb:51
281
+ #: lib/statsample/bivariate/pearson.rb:50
277
282
  msgid "%s : r=%0.3f (t:%0.3f, g.l.=%d, p:%0.3f / %s tails)"
278
283
  msgstr "%s : r=%0.3f (t:%0.3f, g.l.=%d, p:%0.3f / %s colas)"
279
284
 
@@ -281,147 +286,190 @@ msgstr "%s : r=%0.3f (t:%0.3f, g.l.=%d, p:%0.3f / %s colas)"
281
286
  msgid "Histogram %s"
282
287
  msgstr "Histograma: %s"
283
288
 
284
- #: lib/statsample/factor/parallelanalysis.rb:51
289
+ #: lib/statsample/factor/parallelanalysis.rb:70
285
290
  msgid "Parallel Analysis"
286
291
  msgstr "Análisis Paralelo"
287
292
 
288
- #: lib/statsample/factor/parallelanalysis.rb:73
293
+ #: lib/statsample/factor/parallelanalysis.rb:93
289
294
  msgid "Bootstrap Method: %s"
290
295
  msgstr "Método de Remuestreo: %s"
291
296
 
292
- #: lib/statsample/factor/parallelanalysis.rb:74
297
+ #: lib/statsample/factor/parallelanalysis.rb:94
298
+ msgid "Uses SMC: %s"
299
+ msgstr "Usa SMC: %s"
300
+
301
+ #: lib/statsample/factor/parallelanalysis.rb:94
302
+ msgid "Yes"
303
+ msgstr "Sí"
304
+
305
+ #: lib/statsample/factor/parallelanalysis.rb:94
306
+ msgid "No"
307
+ msgstr "No"
308
+
309
+ #: lib/statsample/factor/parallelanalysis.rb:95
293
310
  msgid "Correlation Matrix type : %s"
294
311
  msgstr "Tipo de matriz de correlacion : %s"
295
312
 
296
- #: lib/statsample/factor/parallelanalysis.rb:75
313
+ #: lib/statsample/factor/parallelanalysis.rb:96
297
314
  msgid "Number of variables: %d"
298
315
  msgstr "Número de variables: %d"
299
316
 
300
- #: lib/statsample/factor/parallelanalysis.rb:76
317
+ #: lib/statsample/factor/parallelanalysis.rb:97
301
318
  msgid "Number of cases: %d"
302
319
  msgstr "Número de casos: %d"
303
320
 
304
- #: lib/statsample/factor/parallelanalysis.rb:77
321
+ #: lib/statsample/factor/parallelanalysis.rb:98
305
322
  msgid "Number of iterations: %d"
306
323
  msgstr "Número de iteraciones: %d"
307
324
 
308
- #: lib/statsample/factor/parallelanalysis.rb:78
309
- msgid "Number or factors to preserve: %d"
310
- msgstr "Número de factores a preservar: %d"
311
-
312
- #: lib/statsample/factor/parallelanalysis.rb:79
325
+ #: lib/statsample/factor/parallelanalysis.rb:100
326
+ #: lib/statsample/factor/parallelanalysis.rb:108
327
+ #: lib/statsample/factor/map.rb:90
313
328
  msgid "Eigenvalues"
314
329
  msgstr "Eigenvalues"
315
330
 
316
- #: lib/statsample/factor/parallelanalysis.rb:79
317
- msgid "data eigenvalue"
318
- msgstr "eigenvalue de los datos"
319
-
320
- #: lib/statsample/factor/parallelanalysis.rb:79
331
+ #: lib/statsample/factor/parallelanalysis.rb:100
332
+ #: lib/statsample/factor/parallelanalysis.rb:108
321
333
  msgid "generated eigenvalue"
322
334
  msgstr "eigenvalue generado"
323
335
 
324
- #: lib/statsample/factor/parallelanalysis.rb:79
336
+ #: lib/statsample/factor/parallelanalysis.rb:107
337
+ msgid "Number or factors to preserve: %d"
338
+ msgstr "Número de factores a preservar: %d"
339
+
340
+ #: lib/statsample/factor/parallelanalysis.rb:108
341
+ msgid "data eigenvalue"
342
+ msgstr "eigenvalue de los datos"
343
+
344
+ #: lib/statsample/factor/parallelanalysis.rb:108
325
345
  msgid "preserve?"
326
346
  msgstr "¿preservar?"
327
347
 
328
- #: lib/statsample/factor/pca.rb:51
348
+ #: lib/statsample/factor/map.rb:54
349
+ msgid "Velicer's MAP"
350
+ msgstr "PPM de Velicer"
351
+
352
+ #: lib/statsample/factor/map.rb:90
353
+ msgid "Value"
354
+ msgstr "Valor"
355
+
356
+ #: lib/statsample/factor/map.rb:95
357
+ msgid "Velicer's Average Squared Correlations"
358
+ msgstr "Correlaciones Cuadradas Promedio de Velicer "
359
+
360
+ #: lib/statsample/factor/map.rb:95
361
+ msgid "number of components"
362
+ msgstr "número de componentes"
363
+
364
+ #: lib/statsample/factor/map.rb:95
365
+ msgid "average square correlation"
366
+ msgstr "correlación cuadrada promedio"
367
+
368
+ #: lib/statsample/factor/map.rb:100
369
+ msgid "The smallest average squared correlation is : %0.6f"
370
+ msgstr "La correlación cuadrada promedio más pequeña es: %0.6f"
371
+
372
+ #: lib/statsample/factor/map.rb:101
373
+ msgid "The number of components is : %d"
374
+ msgstr "El número de componentes es: %d"
375
+
376
+ #: lib/statsample/factor/pca.rb:50
329
377
  msgid "Principal Component Analysis"
330
378
  msgstr "Análisis de componentes principales"
331
379
 
332
- #: lib/statsample/factor/pca.rb:118
380
+ #: lib/statsample/factor/pca.rb:117
333
381
  msgid "Component matrix"
334
382
  msgstr "Matriz de componentes"
335
383
 
336
- #: lib/statsample/factor/pca.rb:168
337
- #: lib/statsample/factor/principalaxis.rb:188
384
+ #: lib/statsample/factor/pca.rb:162
385
+ #: lib/statsample/factor/principalaxis.rb:200
338
386
  msgid "Number of factors: %d"
339
387
  msgstr "Número de factores: %d"
340
388
 
341
- #: lib/statsample/factor/pca.rb:169
342
- #: lib/statsample/factor/principalaxis.rb:190
389
+ #: lib/statsample/factor/pca.rb:163
390
+ #: lib/statsample/factor/principalaxis.rb:202
343
391
  msgid "Communalities"
344
392
  msgstr "Comunalidades"
345
393
 
346
- #: lib/statsample/factor/pca.rb:169
347
- #: lib/statsample/factor/principalaxis.rb:190
394
+ #: lib/statsample/factor/pca.rb:163
395
+ #: lib/statsample/factor/principalaxis.rb:202
348
396
  msgid "Initial"
349
397
  msgstr "Inicial"
350
398
 
351
- #: lib/statsample/factor/pca.rb:169
352
- #: lib/statsample/factor/principalaxis.rb:190
399
+ #: lib/statsample/factor/pca.rb:163
400
+ #: lib/statsample/factor/principalaxis.rb:202
353
401
  msgid "Extraction"
354
402
  msgstr "Extracción"
355
403
 
356
- #: lib/statsample/factor/pca.rb:175
404
+ #: lib/statsample/factor/pca.rb:169
357
405
  msgid "Total Variance Explained"
358
406
  msgstr "Varianza Total Explicada"
359
407
 
360
- #: lib/statsample/factor/pca.rb:175
408
+ #: lib/statsample/factor/pca.rb:169
361
409
  msgid "Component"
362
410
  msgstr "Componente"
363
411
 
364
- #: lib/statsample/factor/pca.rb:175
412
+ #: lib/statsample/factor/pca.rb:169
365
413
  msgid "E.Total"
366
414
  msgstr "E. Total"
367
415
 
368
- #: lib/statsample/factor/pca.rb:175
416
+ #: lib/statsample/factor/pca.rb:169
369
417
  msgid "%"
370
418
  msgstr "%"
371
419
 
372
- #: lib/statsample/factor/pca.rb:175
420
+ #: lib/statsample/factor/pca.rb:169
373
421
  msgid "Cum. %"
374
422
  msgstr "% Acum."
375
423
 
376
- #: lib/statsample/factor/pca.rb:179
424
+ #: lib/statsample/factor/pca.rb:173
377
425
  msgid "Component %d"
378
426
  msgstr "Componente %d"
379
427
 
380
- #: lib/statsample/factor/principalaxis.rb:64
428
+ #: lib/statsample/factor/principalaxis.rb:71
381
429
  msgid "Variable %d"
382
430
  msgstr "Variable %d"
383
431
 
384
- #: lib/statsample/factor/principalaxis.rb:140
432
+ #: lib/statsample/factor/principalaxis.rb:147
385
433
  msgid "Factor Matrix"
386
434
  msgstr "Matriz de Factores"
387
435
 
388
- #: lib/statsample/factor/principalaxis.rb:189
436
+ #: lib/statsample/factor/principalaxis.rb:201
389
437
  msgid "Iterations: %d"
390
438
  msgstr "Iteraciones: %d"
391
439
 
392
- #: lib/statsample/factor/principalaxis.rb:195
440
+ #: lib/statsample/factor/principalaxis.rb:207
393
441
  msgid "Total Variance"
394
442
  msgstr "Varianza Total"
395
443
 
396
- #: lib/statsample/factor/principalaxis.rb:195
444
+ #: lib/statsample/factor/principalaxis.rb:207
397
445
  msgid "Factor"
398
446
  msgstr "Factor"
399
447
 
400
- #: lib/statsample/factor/principalaxis.rb:195
448
+ #: lib/statsample/factor/principalaxis.rb:207
401
449
  msgid "I.E.Total"
402
450
  msgstr "E.I. Total"
403
451
 
404
- #: lib/statsample/factor/principalaxis.rb:195
452
+ #: lib/statsample/factor/principalaxis.rb:207
405
453
  msgid "I.E. %"
406
454
  msgstr "E.I. %"
407
455
 
408
- #: lib/statsample/factor/principalaxis.rb:195
456
+ #: lib/statsample/factor/principalaxis.rb:207
409
457
  msgid "I.E.Cum. %"
410
458
  msgstr "E.I. Acum. %"
411
459
 
412
- #: lib/statsample/factor/principalaxis.rb:196
460
+ #: lib/statsample/factor/principalaxis.rb:208
413
461
  msgid "S.L.Total"
414
462
  msgstr "C.C. Total"
415
463
 
416
- #: lib/statsample/factor/principalaxis.rb:196
464
+ #: lib/statsample/factor/principalaxis.rb:208
417
465
  msgid "S.L. %"
418
466
  msgstr "C.C. %"
419
467
 
420
- #: lib/statsample/factor/principalaxis.rb:196
468
+ #: lib/statsample/factor/principalaxis.rb:208
421
469
  msgid "S.L.Cum. %"
422
470
  msgstr "C.C. Acum %"
423
471
 
424
- #: lib/statsample/factor/principalaxis.rb:203
472
+ #: lib/statsample/factor/principalaxis.rb:215
425
473
  msgid "Factor %d"
426
474
  msgstr "Factor %d"
427
475
 
@@ -437,31 +485,31 @@ msgstr "Matriz de componentes rotada"
437
485
  msgid "Component transformation matrix"
438
486
  msgstr "Matriz de transformación de componentes"
439
487
 
440
- #: lib/statsample/reliability/multiscaleanalysis.rb:57
488
+ #: lib/statsample/reliability/multiscaleanalysis.rb:58
441
489
  msgid "Multiple Scale analysis"
442
490
  msgstr "Análisis de múltiples escalas"
443
491
 
444
- #: lib/statsample/reliability/multiscaleanalysis.rb:85
492
+ #: lib/statsample/reliability/multiscaleanalysis.rb:86
445
493
  msgid "Scale %s"
446
494
  msgstr "Escala %s"
447
495
 
448
- #: lib/statsample/reliability/multiscaleanalysis.rb:125
496
+ #: lib/statsample/reliability/multiscaleanalysis.rb:128
449
497
  msgid "Reliability analysis of scales"
450
498
  msgstr "Análisis de confiabilidad de escalas"
451
499
 
452
- #: lib/statsample/reliability/multiscaleanalysis.rb:131
500
+ #: lib/statsample/reliability/multiscaleanalysis.rb:134
453
501
  msgid "Correlation matrix for %s"
454
502
  msgstr "Matriz de correlaciones para %s"
455
503
 
456
- #: lib/statsample/reliability/multiscaleanalysis.rb:136
504
+ #: lib/statsample/reliability/multiscaleanalysis.rb:139
457
505
  msgid "PCA for %s"
458
506
  msgstr "ACP para %s"
459
507
 
460
- #: lib/statsample/reliability/multiscaleanalysis.rb:141
508
+ #: lib/statsample/reliability/multiscaleanalysis.rb:144
461
509
  msgid "Principal Axis for %s"
462
510
  msgstr "Ejes principales para %s"
463
511
 
464
- #: lib/statsample/reliability/multiscaleanalysis.rb:147
512
+ #: lib/statsample/reliability/multiscaleanalysis.rb:150
465
513
  msgid "Parallel Analysis for %s"
466
514
  msgstr "Análisis Paralelo para %s"
467
515
 
@@ -665,8 +713,6 @@ msgstr "Dataset %d"
665
713
  msgid "Cases: %d"
666
714
  msgstr "Casos: %s"
667
715
 
668
- #~ msgid "Value"
669
- #~ msgstr "Valor de U"
670
716
  #~ msgid "actual"
671
717
  #~ msgstr "real"
672
718
  #~ msgid "Polychoric correlation"
@@ -695,8 +741,6 @@ msgstr "Casos: %s"
695
741
  #~ msgstr "Umbral X: %0.3f"
696
742
  #~ msgid "Threshold Y: %0.3f "
697
743
  #~ msgstr "Umbral Y:%0.3f"
698
- #~ msgid "Tetrachoric correlation"
699
- #~ msgstr "Correlación tetracórica"
700
744
  #~ msgid "Factor Analysis: "
701
745
  #~ msgstr "Análisis de Factores:"
702
746
  #~ msgid "DAB: "