Sha256: 327efc6ed50ebdfb168e79b64ed69c464ab54b3fe94c45b3f10b146c0e235236

Contents?: true

Size: 1.77 KB

Versions: 2

Compression:

Stored size: 1.77 KB

Contents

require(File.expand_path(File.dirname(__FILE__) + '/helpers_tests.rb'))
# require 'rserve'
# require 'statsample/rserve_extension'

class StatsampleFactorTestCase < Minitest::Test
  include Statsample::Fixtures
  # Based on Hardle and Simar
  def setup
    @fixtures_dir = File.expand_path(File.dirname(__FILE__) + '/fixtures')
  end

  def test_parallelanalysis_with_data
    if Statsample.has_gsl?
      samples = 100
      variables = 10
      iterations = 50
      rng = Distribution::Normal.rng
      f1 = samples.times.collect { rng.call }.to_scale
      f2 = samples.times.collect { rng.call }.to_scale
      vectors = {}
      variables.times do |i|
        if i < 5
          vectors["v#{i}"] = samples.times.collect {|nv|
            f1[nv] * 5 + f2[nv] * 2 + rng.call
          }.to_scale
        else
          vectors["v#{i}"] = samples.times.collect {|nv|
            f2[nv] * 5 + f1[nv] * 2 + rng.call
          }.to_scale
        end
      end
      ds = vectors.to_dataset

      pa1 = Statsample::Factor::ParallelAnalysis.new(ds, bootstrap_method: :data, iterations: iterations)
      pa2 = Statsample::Factor::ParallelAnalysis.with_random_data(samples, variables, iterations: iterations, percentil: 95)
      3.times do |n|
        var = "ev_0000#{n + 1}"
        assert_in_delta(pa1.ds_eigenvalues[var].mean, pa2.ds_eigenvalues[var].mean, 0.05)
      end
    else
      skip('Too slow without GSL')
    end
  end

  def test_parallelanalysis
    pa = Statsample::Factor::ParallelAnalysis.with_random_data(305, 8, iterations: 100, percentil: 95)
    assert_in_delta(1.2454, pa.ds_eigenvalues['ev_00001'].mean, 0.01)
    assert_in_delta(1.1542, pa.ds_eigenvalues['ev_00002'].mean, 0.01)
    assert_in_delta(1.0836, pa.ds_eigenvalues['ev_00003'].mean, 0.01)
    assert(pa.summary.size > 0)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
statsample-1.4.3 test/test_factor_pa.rb
statsample-1.4.2 test/test_factor_pa.rb