class StatiStica::CoefficientOfDetermination
Public Class Methods
new(dx:, dy:)
click to toggle source
# File lib/stati_stica/coefficient_of_determination.rb, line 5 def initialize(dx:, dy:) raise ArgumentError unless dx.size == dy.size @dx = dx.map { |x| Float(x) } @dy = dy.map { |y| Float(y) } end
Public Instance Methods
value()
click to toggle source
# File lib/stati_stica/coefficient_of_determination.rb, line 12 def value mean = StatiStica::Mean.new(@dy).value ess = @dx.map{ |x| (x - mean) **2 }.inject(0, &:+) tss = @dy.map{ |y| (y - mean) **2 }.inject(0, &:+) ratio = ess / tss (ratio.nan? || ratio.infinite?) ? 1 : ratio end