%% Multiple Regression
% This example shows how to use multiple regression to model data that is a function of more than one predictor variable.
% When y is a function of more than one predictor variable, the matrix equations that express the relationships among the variables must be expanded to accommodate the additional data. This is called multiple regression.
%
% Measure a quantity y for several values of x_{1} and x_{2}. Store these values in vectors x1, x2, and y, respectively.

x1 = [.2 .5 .6 .8 1.0 1.1]';
x2 = [.1 .3 .4 .9 1.1 1.4]';
y  = [.17 .26 .28 .23 .27 .24]';

% A model of this data is of the form
% y = a_{0} + a_{1}x_{1} + a_{2}x_{2}.
% Multiple regression solves for unknown coefficients a_{0}, a_{1}, and a_{2} by minimizing the sum of the squares of the deviations of the data from the model (least-squares fit).
%
% Construct and solve the set of simultaneous equations by forming a design matrix, X.

X = [ones(size(x1))  x1  x2];

%
% Solve for the parameters by using the backslash operator.

a = X\y

% The least-squares fit model of the data is
% y = 0.1018 + 0.4844x_{1} - 0.2847x_{2}.
%
% To validate the model, find the maximum of the absolute value of the deviation of the data from the model.

Y = X*a;
MaxErr = max(abs(Y - y))

% This value is much smaller than any of the data values, indicating that this model accurately follows the data.
% Copyright 2015 The MathWorks, Inc.