Module: Corr
- Defined in:
- lib/corr.rb,
lib/corr/version.rb
Constant Summary collapse
- VERSION =
"0.3.0"
Class Method Summary collapse
- .correlation(vector_x, vector_y) ⇒ Object
- .covariance(vector_x, vector_y) ⇒ Object
- .mean(vector) ⇒ Object
- .standard_deviation(vector) ⇒ Object
- .sum(vector) ⇒ Object
Class Method Details
.correlation(vector_x, vector_y) ⇒ Object
4 5 6 |
# File 'lib/corr.rb', line 4 def self.correlation(vector_x, vector_y) covariance(vector_x, vector_y) / (standard_deviation(vector_x) * standard_deviation(vector_y)) end |
.covariance(vector_x, vector_y) ⇒ Object
22 23 24 25 |
# File 'lib/corr.rb', line 22 def self.covariance(vector_x, vector_y) raise 'The variable lengths are not the same.' if vector_x.length != vector_y.length sum_cov(vector_x, vector_y) / vector_x.length end |
.mean(vector) ⇒ Object
12 13 14 |
# File 'lib/corr.rb', line 12 def self.mean(vector) sum(vector) / vector.length end |
.standard_deviation(vector) ⇒ Object
16 17 18 19 20 |
# File 'lib/corr.rb', line 16 def self.standard_deviation(vector) vector_mean = mean(vector) sum_result = vector.reduce(0.0) {|result, value| result + (value - vector_mean)**2} Math.sqrt((1.0 / vector.length) * sum_result) end |
.sum(vector) ⇒ Object
8 9 10 |
# File 'lib/corr.rb', line 8 def self.sum(vector) vector.reduce(0.0) { |result, value| result + value } end |