statsample 0.14.0 → 0.14.1

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