MATLAB一元线性回归方程的计算和检验.docx
精品word 可编辑资料 - - - - - - - - - - - - -1. 从 input语句键盘输入一组数据(xi , yi ),i=1,2,n;2. 运算一元线性回来方程y=ax+b 的系数 a 和 b,用两种方法运算:一是公式:a( xix )( yiy)2,bya x ;( xix)二是用最小二乘法的公式求出最小值点(a,b ), 使 Q(a, bmin( yiaxib) 23. 检验回来方程是否有效(用F 分布检验);4. 把散列点( xi ,y i )和回来曲线y=ax+b 画在一个图上;5. 每种运算法都要有运算框图,且每种运算法都要编成一个自定义函数;function yiyuan clc;disp( 从键盘输入一组数据:);x=input(please Input data x : ); y=input(please Input data y : );disp( 一元线性回来的运算和检验:);disp(1. 公式法 );disp(2. 最小二乘 );disp(3. 检验 );disp(0. 退出 ); global a0 b0; while 3num=input( 挑选求解的方法:);switch numcase 1a0,b0=huigui(x,y) case 2a0,b0=zxec(x,y)case 3break; case 0return; otherwisedisp( 输入错误,请重先输入!);endendX=x;Y=y;X=ones(size(X),X;alpha=0.5; b,bint,e,rint,stats=regress(Y ,X) if stats(3)<alphadisp(有效的 x)end n=min(x):0.1:max(x);第 1 页,共 6 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -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;for i=1:nx1=x1+x(i); y1=y1+y(i);end x0=x1/n; y0=y1/n; a1=0;a2=0;for j=1:na1=a1+(x(j)-x0)*(y(j)-y0);a2=a2+(x(j)-x0)*(x(j)-x0);end a0=a1/a2; b0=y0-a0*x0;x2=min(x):0.05:max(x); y2=a0*x2+b0;end%.function a0,b0=zxec(x,y)%m=length(x);%R=xones(m,1);a=Ry; A=zeros(2,2);A(2,2)=n;B=zeros(2,1); for p=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);end A(2,1)=A(1,2);a0=a(1);b0=a(2);endMATLAB线性回来第 2 页,共 6 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -2021-07-03 09:40二、一元线性回来21命令 polyfit 最小二乘多项式拟合p,S=polyfit ( x, y, m)多项式 y=a1xm+a2xm-1+amx+am+1其中 x=(x1, x2, xm) x1xm 为( n*1 )的矩阵 ; y 为( n*1 )的矩阵;p=(a1, a2, am+1)是多项式 y=a1xm+a2xm-1+amx+am+1 的系数;S 是一个矩阵,用来估量猜测误差.22命令 polyval 多项式函数的猜测值Y=polyval (p,x)求 polyfit 所得的回来多项式在x 处的猜测值 Y ;p 是 polyfit 函数的返回值;x 和 polyfit 函数的 x 值相同;23命令 polyconf残差个案次序图Y ,DELTA=polyconf (p,x,S,alpha)求 polyfit 所得的回来多项式在x 处的猜测值 Y 及猜测值的显著性为1-alpha 的置信区间 DELTA ;alpha 缺省时为 0.05;p 是 polyfit 函 数 的 返 回 值 ; x 和 polyfit 函 数 的 x 值 相 同 ; S 和 polyfit 函数的 S 值相同;24 命令 polytool(x,y,m)一元多项式回来命令25命令 regress多元线性回来(可用于一元线性回来)b=regress( Y,X )b, bint,r,rint,stats=regress(Y,X,alpha)第 3 页,共 6 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -b 回来系数bint 回来系数的区间估量r 残差rint 残差置信区间stats用于检验回来模型的统计量,有三个数值:相关系数R2、F 值、与 F 对应的概率 p,相关系数 R2 越接近 1,说明回来方程越显著; F > F1-(k,n-k-1)时拒绝 H0,F 越大,说明回来方程越显著;与F 对应的概率 p 时拒绝 H0,回来模型成立;Y 为 n*1 的矩阵;X 为( ones(n,1),x1,),xm的矩阵;alpha 显著性水平(缺省时为0.05);三、多元线性回来31命令 regress(见 2;5) 32命令 rstool 多元二项式回来命 令 : rstool( x, y, model, alpha) x 为 n*m 矩 阵y 为 n 维 列 向 量model 由以下 4 个模型中挑选 1 个(用字符串输入,缺省时为线性模型): linear(线性):purequadratic( 纯 二 次 ): interaction( 交 叉 ): quadratic(完全二次): alpha 显著性水平(缺省时为0.05) 返回值 beta系数第 4 页,共 6 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -返回值 rmse 剩余标准差返回值 residuals残差四、非线性回来4 1命令 nlinfitbeta,R,J=nlinfit(X,Y, model ,beta0)X 为 n*m 矩 阵Y 为 n 维列向量model 为自定义函数beta0为估量的模型系数beta 为 回 归 系 数R 为残差J42命令 nlintoolnlintool(X,Y, model ,beta0,alpha) X 为 n*m 矩 阵Y 为 n 维 列 向 量model 为 自 定 义 函 数beta0为估量的模型系数 alpha 显著性水平(缺省时为0.05)43命令 nlparcibetaci=nlparci(beta,R,J)第 5 页,共 6 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -beta 为回来系数R 为残差 J返回值为回来系数beta 的置信区间4 4命令 nlpredciY,DELTA=nlpredci( model ,X,beta,R,J)Y 为猜测值DELTA 为猜测值的显著性为1-alpha 的置信区间; alpha 缺省时为 0.05;X 为 n*m 矩阵model 为自定义函数beta 为回来系数R 为残差 J第 6 页,共 6 页 - - - - - - - - - -