non parametric and parametric linear and nonlinear regression

to run this m file type 'nppregression(sigma)' in the matlab command line, where 'sigma' is parameter of the gauss window function

Contents

 %function nppregression(sigma) % For HTML demo, function is omitted
sigma=0.8;                      % For HTML demo, value of 0.8 is chosen.
close all;
% vrednosti enako spremenljivk X in Y
X=[2.0,6.5,4.5,2.7,0.1,5.5,4.0,7.1,2.5,2.6];
Y=[4.5,1.2,2.3,3.6,6.2,2.0,3.0,0.1,4.1,3.8];
% dimension of X
n=size(X);
% plot of points (X,Y)
plot(X,Y,'xr');
hold on
grid on
legend({'X,Y points'})

press "enter" to continue

pause;
z = [];

calculation of nonparametric regression Yc=y1/y2 for xmin to xmax with step 0.1

for t=min(X):0.1:max(X)
    y1=0;
    y2=0;
    for i=1:n(2)
     y1=y1+Y(i)*wgauss(t,X(i),sigma);
     y2=y2+wgauss(t,X(i),sigma);
    end
  y=y1/y2;
  z = [z; [t y]];
end

plot of Yc

plot(z(:,1),z(:,2),'b.-')
legend({'X,Y points';'nonparametric regression'})
hold on

linear regression

pause;
 x=X';
p=polyfit(X,Y,1)
t=min(X):0.1:max(X);
ylr=p(1)*t+p(2);
plot(t,ylr,'g.-')
hold on
legend({'X,Y points';'nonparametric regression';'linear regression'})
p =

   -0.7975    6.0707

quadratic regression

pause;
 x=X';
p=polyfit(X,Y,2)
t=min(X):0.1:max(X);
ylr=p(1)*t.^2+p(2)*t+p(3);
plot(t,ylr,'m.-')
hold on

legend({'X,Y points';'nonparametric regression';'linear regression';'quadratic regression'})
p =

    0.0103   -0.8760    6.1763