Linear Regression

Linear Regression

Solution

%% Input data for linear regression

%% Dependent DATA SETS

O2=[14.6; 12.8; 11.3; 10.1; 9.09; 8.26; 7.56; 12.9; 11.3; 10.1; 9.03; 8.17;

7.46; 6.85; 11.4; 10.3; 8.96; 8.08; 7.35; 6.73; 6.2; 14.32; 12.49; 10.78;

9.07; 8.45; 7.71; 7.25; 11.64; 10.94; 9.13; 8.99; 7.43; 6.74; 6.32];

%% Independent DATA SETS

T=[0;5;10;15;20;25;30;0;5;10;15;20;25;30;0;5;10;15;20;25;30;0;5;10;15;20;25;30;0;5;10;15;20;25;30];

Cl=[0;0;0;0;0;0;0;10;10;10;10;10;10;10;20;20;20;20;20;20;20;0;0;0;0;0;0;0;0;0;0;0;0;0;0];

CO2=[0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;10;10;10;10;10;10;10;20;20;20;20;20;20;20];

%% Dependent matrix

Y=O2;

%%Independent Matrix

Z=[ones(35,1) T Cl CO2];

A=Z’*Z;

b=Z’*Y;

%% Gauss Seidel Method

%% Solution of ‘a’ in ‘Aa=b’ using Gauss Seidel Method

%% Intial guess for ‘a’

a=[0 0 0 0]’;

n=size(a,1);

absVal=Inf;

%% Tolerence for method

tol=1e-4; itr=0;

%% Algorithm: Gauss Seidel Method

%%

whileabsVal>tol

a_old=a;

for i=1:n

sigma=0;

for j=1:i-1

sigma=sigma+A(i,j)*a(j);

end

for j=i+1:n

sigma=sigma+A(i,j)*a_old(j);

end

a(i)=(1/A(i,i))*(b(i)-sigma);

end

itr=itr+1;

absVal=abs((a_old-a)./a_old);

end

%% Value of ‘a’

fprintf(‘\n a0= %f\n a1=%f\n a2=%f \n a3=%f \n’,a);

%% Predicted value of O2

O2_predicted=Z*a;

%% Absolute relative percentage error

error=abs((O2-O2_predicted)./O2)*100;

%% Data to predict with linear regression on T, Cl& CO2

O2_new=[12.13; 10.87; 9.70; 9.15; 7.93; 7.11; 5.91; 9.94; 8.99; 7.81; 7.36; 5.85; 4.85; 3.95];

T_new=[0;5;10;15;20;25;30;0;5;10;15;20;25;30];

Cl_new=[10;10;10;10;10;10;10;20;20;20;20;20;20;20];

CO2_new=[10;10;10;10;10;10;10;20;20;20;20;20;20;20];

Z_new=[ones(14,1) T_newCl_new CO2_new];

%% Predicted value of O2_new

O2_new_predicted=Z_new*a;

%% Absolute relative percentage error

New_error=abs((O2_new-O2_new_predicted)./O2_new)*100;