From eeb4f570f8e991b77ae5e9a7d9a58cc6b2dd115a Mon Sep 17 00:00:00 2001 From: mguetlein Date: Tue, 24 May 2011 09:59:02 +0200 Subject: fix r-square computation --- lib/predictions.rb | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/predictions.rb b/lib/predictions.rb index f97b764..4a15e1d 100755 --- a/lib/predictions.rb +++ b/lib/predictions.rb @@ -481,7 +481,12 @@ module Lib end def r_square - return sample_correlation_coefficient ** 2 + #return sample_correlation_coefficient ** 2 + + # see http://en.wikipedia.org/wiki/Coefficient_of_determination#Definitions + # see http://web.maths.unsw.edu.au/~adelle/Garvan/Assays/GoodnessOfFit.html + r_2 = 1 - residual_sum_of_squares / total_sum_of_squares + ( r_2.infinite? || r_2.nan? ) ? 0 : r_2 end def sample_correlation_coefficient @@ -493,7 +498,16 @@ module Lib end def total_sum_of_squares - return @variance_actual * ( @num_predicted - 1 ) + #return @variance_actual * ( @num_predicted - 1 ) + sum = 0 + @predicted_values.size.times do |i| + sum += (@actual_values[i]-@actual_mean)**2 if @predicted_values[i]!=nil + end + sum + end + + def residual_sum_of_squares + sum_squared_error end def target_variance_predicted -- cgit v1.2.3