(xi,yi),i=1,2,…n。=ax+b的系数a和b,用两种方法计算:一是公式:;二是用最小二乘法的公式求出最小值点(a,b),(用F分布检验)。(xi,yi)和回归曲线y=ax+b画在一个图上。,且每种计算法都要编成一个自定义函数。functionyiyuanclc;disp('从键盘输入一组数据:');x=input('pleaseInputdatax:');y=input('pleaseInputdatay:');disp('一元线性回归的计算和检验:');disp('');disp('');disp('');disp('');globala0b0;while3num=input('选择求解的方法:');switchnumcase1[a0,b0]=huigui(x,y)case2[a0,b0]=zxec(x,y)case3break;case0return;otherwisedisp('输入错误,请重先输入!');endendX=x';Y=y';X=[ones(size(X)),X];alpha=;[b,bint,e,rint,stats]=regress(Y,X)ifstats(3)<alphadisp('有效的x')endn=[min(x)::max(x)];f=a0*n+b0;xlabel('x','b');ylabel('y','r');legend('散点','k');end%.................................function[a0,b0]=huigui(x,y)n=length(x);x1=0;y1=0;fori=1:nx1=x1+x(i);y1=y1+y(i);endx0=x1/n;y0=y1/n;a1=0;a2=0;forj=1:na1=a1+(x(j)-x0)*(y(j)-y0);a2=a2+(x(j)-x0)*(x(j)-x0);enda0=a1/a2;b0=y0-a0*x0;x2=min(x)::max(x);y2=a0*x2+b0;end%...............................function[a0,b0]=zxec(x,y)%m=length(x);%R=[x'ones(m,1)];a=R\y';A=zeros(2,2);A(2,2)=n;B=zeros(2,1);forp=1:nA(1,1)=A(1,1)+x(i)*x(i);A(1,2)=A(1,2)+x(i);B(1,1)=B(1,1)+x(i)*y(i);B(2,1)=B(2,1)+y(i);endA(2,1)=A(1,2);a0=a(1);b0=a(2);endMATLAB线性回归2011-07-0309:40二、 polyfit最小二乘多项式拟合[p,S]=polyfit(x,y,m)多项式y=a1xm+a2xm-1+…+amx+am+1其中x=(x1,x2,…,xm)x1…xm为(n*1)的矩阵;y为(n*1)的矩阵;p=(a1,a2,…,am+1)是多项式y=a1xm+a2xm-1+…+a
MATLAB一元线性回归方程的计算和检验 来自淘豆网www.taodocs.com转载请标明出处.