File Exchange

image thumbnail

rsquared

version 1.0.0.0 (2.05 KB) by R P
calculate standard and adjusted R-squared (coefficient of determination)

18 Downloads

Updated 05 Dec 2016

View License

rsquared calculates the coefficient of determination (r2) from the original
data (ydata) and fited data (yestimation). It also calculates the adjusted
coefficient (r2adj) considering the number of parameters of the model
(nparam).

Syntax:
r2 = rsquared(ydata,yestimation)
[r2,r2adj]=rsquared(ydata,yestimation,nparam)

Example:
xdata = [1 5 14 23 25 48 49 59 73 77 99 ];
ydata = [-100 70 100 450 550 2200 2300 3400 5300 5906 9600];
plot(xdata,ydata,'ok'), hold on
param_1 = polyfit(xdata,ydata,1);
yestimation_1 = polyval(param_1,xdata);
[r2_1,r2adj_1]=rsquared(ydata,yestimation_1,length(param_1))
plot(xdata,yestimation_1,'-r')
param_2 = polyfit(xdata,ydata,2);
yestimation_2 = polyval(param_2,xdata);
plot(xdata,yestimation_2,'-b')
[r2_2,r2adj_2]=rsquared(ydata,yestimation_2,length(param_2))
legend({'data',['r2=' num2str(r2_1) ', r2adj=' ...
num2str(r2adj_1)],['r2=' num2str(r2_2) ', r2adj=' num2str(r2adj_2)]}, ...
'Location','best')

Equations
SSres=sum( (ydata-yestimation).^2 ); % residual sum of squares
SStot=sum( (ydata-mean(ydata)).^2 ); % total sum of squares
r2=1-SSres/SStot; % standard rsquared
r2adj = 1 - SSres/SStot * (length(ydata)-1)/(length(ydata)-nparam); % adjust for the number of parameters

Check https://en.wikipedia.org/wiki/Coefficient_of_determination

Cite As

R P (2019). rsquared (https://www.mathworks.com/matlabcentral/fileexchange/60577-rsquared), MATLAB Central File Exchange. Retrieved .

Comments and Ratings (0)

Updates

1.0.0.0

help update

MATLAB Release Compatibility
Created with R2016a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags