Module: Corr

Defined in:
lib/corr.rb,
lib/corr/version.rb

Constant Summary collapse

VERSION =
"0.3.0"

Class Method Summary collapse

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