regression

%regression learning


 

x=[23.8 27.6 31.6 32.4 33.7 34.9 43.2 52.8 63.8 73.4];
y=[41.4 51.8 61.7 67.9 68.7 77.5 95.9 137.4 155 175];
figure
plot(x,y,'r*')
xlabel('wages','fontsize',12)
ylabel('total','fontsize',12)
set(gca,'linewidth',2)

%最小二乘法
lxx=sum((x-mean(x)).^2);
lxy=sum((x-mean(x)).*(y-mean(y)));
lxy=sum((x-mean(x)).*(y-mean(y)));
b1=lxy/lxx;
b0=mean(y)-b1*mean(x);
y1=b1*x+b0;
hold on
plot(x,y1,'linewidth',2)


%LinearModel
m2=LinearModel.fit(x,y);


 

%regress
yy=y';
xx=[ones(size(x,2),1),x'];
[b,bint,r,rint,s]=regress(yy,xx);


 

%nonlinear model
x=[1.5 4.5 7.5 10.5 13.5 16.5 19.5 22.5 25.5];
y=[7 4.8 3.6 3.1 2.7 2.5 2.4 2. 2.2];
figure
plot(x,y,'o','linewidth',3);
set(gca,'linewidth',2);
xlabel('sellNUm','fontsize',6)
ylabel('transfee','fontsize',12)


m1=@(b,x)b(1)+b(2)*log(x);
nonlinfit1=fitnlm(x,y,m1,[0.01;0.01]);
b=nonlinfit1.Coefficients.Estimate;
yy=b(1)+b(2)*log(x);
hold on
plot(x,yy,'--b*')


m2='y~ b1*x^b2';
nonlinfit2=fitnlm(x,y,m2,[1;1]);
b2=nonlinfit2.Coefficients.Estimate;
y2=b2(1)*x.^b2(2);
hold on
plot(x,y2,'-^r','linewidth',2)


 

 除此之外,还有fit函数。

 

原文地址:https://www.cnblogs.com/lancezliang/p/10423866.html