Module: Statsample::Vector::GSL_
- Defined in:
- lib/statsample/vector/gsl.rb
Instance Method Summary collapse
- #clear_gsl ⇒ Object
- #gsl ⇒ Object (also: #to_gsl)
-
#kurtosis ⇒ Object
:nodoc:.
- #mean ⇒ Object
- #median ⇒ Object
- #push(v) ⇒ Object
- #sample_with_replacement(sample = 1) ⇒ Object
- #sample_without_replacement(sample = 1) ⇒ Object
- #set_valid_data ⇒ Object
-
#skew ⇒ Object
:nodoc:.
-
#standard_deviation_population(m = nil) ⇒ Object
:nodoc:.
- #standard_deviation_sample(m = nil) ⇒ Object
- #sum ⇒ Object
-
#variance_population(m = nil) ⇒ Object
:nodoc:.
- #variance_sample(m = nil) ⇒ Object
- #vector_centered_compute(m) ⇒ Object
- #vector_standarized_compute(m, sd) ⇒ Object
Instance Method Details
#clear_gsl ⇒ Object
4 5 6 |
# File 'lib/statsample/vector/gsl.rb', line 4 def clear_gsl @gsl=nil end |
#gsl ⇒ Object Also known as: to_gsl
20 21 22 |
# File 'lib/statsample/vector/gsl.rb', line 20 def gsl @gsl||=GSL::Vector.alloc(@numeric_data) if @numeric_data.size>0 end |
#kurtosis ⇒ Object
:nodoc:
100 101 102 103 |
# File 'lib/statsample/vector/gsl.rb', line 100 def kurtosis # :nodoc: check_type :numeric gsl.nil? ? nil : gsl.kurtosis end |
#mean ⇒ Object
70 71 72 73 |
# File 'lib/statsample/vector/gsl.rb', line 70 def mean check_type :numeric gsl.nil? ? nil : gsl.mean end |
#median ⇒ Object
57 58 59 60 61 62 63 64 |
# File 'lib/statsample/vector/gsl.rb', line 57 def median if @type!=:numeric median_ruby else sorted=GSL::Vector.alloc(@numeric_data.sort) GSL::Stats::median_from_sorted_data(sorted) end end |
#push(v) ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/statsample/vector/gsl.rb', line 12 def push(v) # If data is GSL::Vector, should be converted first to an Array if @data.is_a? GSL::Vector @data=@data.to_a end push_ruby(v) end |
#sample_with_replacement(sample = 1) ⇒ Object
40 41 42 43 44 45 46 47 |
# File 'lib/statsample/vector/gsl.rb', line 40 def sample_with_replacement(sample=1) if(@type!=:numeric) sample_with_replacement_ruby(sample) else r = GSL::Rng.alloc(GSL::Rng::MT19937,rand(10000)) Statsample::Vector.new(r.sample(gsl, sample).to_a,:numeric) end end |
#sample_without_replacement(sample = 1) ⇒ Object
49 50 51 52 53 54 55 56 |
# File 'lib/statsample/vector/gsl.rb', line 49 def sample_without_replacement(sample=1) if(@type!=:numeric) sample_without_replacement_ruby(sample) else r = GSL::Rng.alloc(GSL::Rng::MT19937,rand(10000)) r.choose(gsl, sample).to_a end end |
#set_valid_data ⇒ Object
8 9 10 11 |
# File 'lib/statsample/vector/gsl.rb', line 8 def set_valid_data clear_gsl set_valid_data_ruby end |
#skew ⇒ Object
:nodoc:
96 97 98 99 |
# File 'lib/statsample/vector/gsl.rb', line 96 def skew # :nodoc: check_type :numeric gsl.nil? ? nil : gsl.skew end |
#standard_deviation_population(m = nil) ⇒ Object
:nodoc:
91 92 93 94 95 |
# File 'lib/statsample/vector/gsl.rb', line 91 def standard_deviation_population(m=nil) # :nodoc: check_type :numeric m||=mean gsl.nil? ? nil : gsl.sd_with_fixed_mean(m) end |
#standard_deviation_sample(m = nil) ⇒ Object
80 81 82 83 84 |
# File 'lib/statsample/vector/gsl.rb', line 80 def standard_deviation_sample(m=nil) check_type :numeric m||=mean gsl.nil? ? nil : gsl.sd(m) end |
#sum ⇒ Object
66 67 68 69 |
# File 'lib/statsample/vector/gsl.rb', line 66 def sum check_type :numeric gsl.nil? ? nil : gsl.sum end |
#variance_population(m = nil) ⇒ Object
:nodoc:
86 87 88 89 90 |
# File 'lib/statsample/vector/gsl.rb', line 86 def variance_population(m=nil) # :nodoc: check_type :numeric m||=mean gsl.nil? ? nil : gsl.variance_with_fixed_mean(m) end |
#variance_sample(m = nil) ⇒ Object
74 75 76 77 78 |
# File 'lib/statsample/vector/gsl.rb', line 74 def variance_sample(m=nil) check_type :numeric m||=mean gsl.nil? ? nil : gsl.variance_m end |
#vector_centered_compute(m) ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/statsample/vector/gsl.rb', line 33 def vector_centered_compute(m) if flawed? vector_centered_compute_ruby(m) else gsl.collect {|x| (x.to_f - m)}.to_numeric end end |
#vector_standarized_compute(m, sd) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/statsample/vector/gsl.rb', line 25 def vector_standarized_compute(m,sd) if flawed? vector_standarized_compute_ruby(m,sd) else gsl.collect {|x| (x.to_f - m).quo(sd)}.to_numeric end end |