%% Data input clear,clc diameter = [36,28,28,41,19,32,22,38,25,17,31,20,25,19,39,33,17,37,23,39]; % [inches] board_feet = [192,113,88,294,28,123,51,252,56,16,141,32,86,21,231,187,22,205,57,265]; % [inches^3] %% Built-in Matlab functions for linear fit scatter(diameter,board_feet,'filled') xlabel('Diameter') ylabel('Board-feet') coeffs = polyfit(diameter, board_feet, 1); % Get fitted values x = linspace(min(diameter), max(diameter), 200); y = polyval(coeffs, x); % Plot the fitted line hold on; plot(x, y, 'r-', 'LineWidth', 2); linear_fit = fitlm(diameter,board_feet,'y~x1') linear_fit.Rsquared.Ordinary %% Try some of our models fit1 = fitlm(diameter,board_feet,'y~x1^3-x1^2-x1-1') fit1.Rsquared.Ordinary fit2 = fitlm(diameter,board_feet,'y~x1^3-x1^2-x1') fit2.Rsquared.Ordinary fit3 = fitlm(diameter,board_feet,'y~x1^2-x1') fit3.Rsquared.Ordinary fit4 = fitlm(diameter,board_feet,'y~x1^2-x1-1') fit4.Rsquared.Ordinary fit5 = fitlm(diameter,board_feet,'y~x1^2-1') fit5.Rsquared.Ordinary %% Plot residuals for the various fits figure, plotResiduals(fit4,'fitted') xlabel('Diameter'), ylabel('Residuals') %% figure, subplot(2,2,1), plotResiduals(fit1,'fitted') xlabel('Diameter'), ylabel('Residuals for y~x1^3') subplot(2,2,2), plotResiduals(fit2,'fitted') xlabel('Diameter'), ylabel('Residuals for y~x1^3+1') subplot(2,2,3), plotResiduals(fit3,'fitted') xlabel('Diameter'), ylabel('Residuals for y~x1^2+1') subplot(2,2,4), plotResiduals(fit4,'fitted') xlabel('Diameter'), ylabel('Residuals for y~x1^2')