From 047ed09ff6c775d5dc92bd3888673f22c583a509 Mon Sep 17 00:00:00 2001 From: Peter Torrione Date: Thu, 11 Jan 2018 19:49:15 -0500 Subject: [PATCH] added rSquared calculation --- regress/prtRegressLslr.m | 3 +++ regress/prtRegressLslrNonNeg.m | 16 ++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/regress/prtRegressLslr.m b/regress/prtRegressLslr.m index 869b04df..3ddc1018 100644 --- a/regress/prtRegressLslr.m +++ b/regress/prtRegressLslr.m @@ -76,6 +76,7 @@ rss = []; % Resisudal sum of the squared error + rSquared = []; % standardizedResiduals are standardized residuals (see Hastie...) standardizedResiduals = []; % Standardized residuals @@ -125,6 +126,8 @@ yHat = z*Obj.beta; e = yHat - y; Obj.rss = sum(e(:).^2); + Obj.rSquared = 1 - sum(e(:).^2)./sum((y - mean(y)).^2); + sigmaHat = sqrt(Obj.rss./(size(x,1) - size(x,2) - 1)); if size(x,1) < 1000 diff --git a/regress/prtRegressLslrNonNeg.m b/regress/prtRegressLslrNonNeg.m index a47e2a95..d02e11ac 100644 --- a/regress/prtRegressLslrNonNeg.m +++ b/regress/prtRegressLslrNonNeg.m @@ -30,6 +30,8 @@ properties beta = []; % Regression weights estimated via least squares linear regression + rss = []; % Resisudal sum of the squared error + rSquared = []; end properties (Hidden) @@ -52,11 +54,17 @@ y = dataSet.getTargets; if self.includeDcOffset x = cat(2,ones(size(x,1),1),x); - end - self.beta = lsqnonneg(x,y); - if ~self.includeDcOffset + self.beta = lsqnonneg(x,y); + yHat = x*self.beta; + elseif ~self.includeDcOffset + self.beta = lsqnonneg(x,y); + yHat = x*self.beta; self.beta = cat(1,0,self.beta); - end + end + + e = yHat - y; + self.rss = sum(e(:).^2); + self.rSquared = 1 - sum(e(:).^2)./sum((y - mean(y)).^2); end function dataSet = runAction(self,dataSet)