% PARTIAL REGRESSION PLOTS % Load in Data clc; n = 51; M = importdata('matlabex10data.txt','\t',1); data = M.data; n = size(data,1); % Name Variables year = data(:,1); undergrads = data(:,2); oilprice = data(:,3); seniors = data(:,4); % Calculate Values for Normal Equations y = undergrads; x2 = oilprice; constant = ones(n,1); x1 = [constant seniors]; % Auxillary Regressions M1 = eye(n) - x1*inv(x1'*x1)*x1'; e21 = M1*x2; ey1 = M1*y; % Calculating OLS Estimates xmat = [x1,x2]; b = inv(xmat' * xmat)*(xmat' * y); disp(' '); disp('b vector = '); disp(b); b2 = inv(e21'*e21)*(e21'*ey1); % Calculating R^2 M0 = eye(n)-(1/n)*ones(n,n); SST = y'*M0*y; SSR = b'*xmat'*M0*xmat*b; SSE = (y-xmat*b)'*(y-xmat*b); R2a = SSR/SST; R2b = 1 - SSE/SST; % Predicted Values yhat = xmat*b; ey1hat = e21*b(3,1); % Graphs scatter(mean(x2)+e21,mean(y)+ey1); hold on; line(mean(x2)+e21,mean(y)+ey1hat); title('Conditional Regression of UW Enrollment on the Price of Oil'); ylabel('UW resident undergraduate enrollment'); xlabel('Price of oil');