Sha256: 2d30ee372844b84a6f5116cddb23c3fb5449c554a9e1d64d9126fa382e04ae5b

Contents?: true

Size: 938 Bytes

Versions: 6

Compression:

Stored size: 938 Bytes

Contents

#!/usr/bin/ruby
$:.unshift(File.dirname(__FILE__)+'/../lib/')
# == Description
#
# Velicer MAP test.

require 'statsample'

Statsample::Analysis.store(Statsample::Factor::MAP) do
  
  rng=Distribution::Normal.rng
  samples=100
  variables=10
  
  f1=rnorm(samples)
  f2=rnorm(samples)
  
  vectors={}
  
  variables.times do |i|
  vectors["v#{i}".to_sym]= Daru::Vector.new(
    samples.times.collect do |nv|    
      if i<5
        f1[nv]*5 + f2[nv] *2 +rng.call
      else
        f1[nv]*2 + f2[nv] *3 +rng.call
      end
    end)
  end
  
  
  ds = Daru::DataFrame.new(vectors)
  cor=cor(ds)
  pca=pca(cor)
  
  map=Statsample::Factor::MAP.new(cor)
  
  echo ("There are 2 real factors on data")
  summary(pca)
  echo("Traditional Kaiser criterion (k>1) returns #{pca.m} factors")
  summary(map)
  echo("Velicer's MAP Test returns #{map.number_of_factors} factors to preserve")
end
if __FILE__==$0
  Statsample::Analysis.run_batch
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
statsample-ekatena-2.0.2.1 examples/velicer_map_test.rb
statsample-ekatena-2.0.2 examples/velicer_map_test.rb
statsample-2.1.0 examples/velicer_map_test.rb
statsample-2.0.2 examples/velicer_map_test.rb
statsample-2.0.1 examples/velicer_map_test.rb
statsample-2.0.0 examples/velicer_map_test.rb