您好,欢迎来到测品娱乐。
搜索
您的当前位置:首页MATLAB一元线性回归方程的计算和检验

MATLAB一元线性回归方程的计算和检验

来源:测品娱乐


1. 从input语句键盘输入一组数据(xi,yi),i=1,2,…n。

2。 计算一元线性回归方程y=ax+b的系数a和b,用两种方法计算: 一是公式:a(xx)(yy),byax; (xx)ii2i二是用最小二乘法的公式求出最小值点(a,b),使Q(a,b}min(yiaxib)2

3。 检验回归方程是否有效(用F分布检验)。

4. 把散列点(xi,yi)和回归曲线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 3

num=input('选择求解的方法:'); switch num case 1

[a0,b0]=huigui(x,y) case 2

[a0,b0]=zxec(x,y) case 3

break; case 0

return; otherwise

disp(’输入错误,请重先输入!'); end end

X=x';Y=y';

X=[ones(size(X)),X];alpha=0.5; [b,bint,e,rint,stats]=regress(Y,X) if stats(3)〈alpha

disp('有效的x’) end

n=[min(x):0.1: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; for i=1:n

x1=x1+x(i); y1=y1+y(i); end

x0=x1/n; y0=y1/n; a1=0;a2=0; for j=1:n

a1=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=[x'ones(m,1)];a=R\\y’; A=zeros(2,2); A(2,2)=n; B=zeros(2,1); for p=1:n

A(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); end

MATLAB 线性回归

2011—07-03 09:40 二、一元线性回归

2.1.命令 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+…+amx+am+1的系数; S是一个矩阵,用来估计预测误差. 2.2.命令 polyval多项式函数的预测值

Y=polyval(p,x)求polyfit所得的回归多项式在x处的预测值Y; p是polyfit函数的返回值; x和polyfit函数的x值相同。 2.3.命令 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值相同。

2.4 命令 polytool(x,y,m)一元多项式回归命令

2.5.命令regress多元线性回归(可用于一元线性回归) b=regress( Y, X )

[b, bint,r,rint,stats]=regress(Y,X,alpha) 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)。

三、多元线性回归

3.1.命令 regress(见2。5) 3.2.命令 rstool 多元二项式回归 命令:rstool(x,y,’model', alpha) x 为n*m矩阵 y为 n维列向量

model 由下列4个模型中选择1个(用字符串输入,缺省时为线性模型): linear(线性):

purequadratic(纯二次): interaction(交叉): quadratic(完全二次):

alpha 显著性水平(缺省时为0.05)

返回值beta 系数 返回值rmse剩余标准差 返回值residuals残差

四、非线性回归 4.1.命令 nlinfit

[beta,R,J]=nlinfit(X,Y,’’model’,beta0)

X 为n*m矩阵 Y为 n维列向量 model为自定义函数 beta0为估计的模型系数 beta为回归系数 R为残差 J

4.2.命令 nlintool

nlintool(X,Y,’model’,beta0,alpha) X 为n*m矩阵 Y为 n维列向量 model为自定义函数 beta0为估计的模型系数

alpha显著性水平(缺省时为0。05)

4.3.命令 nlparci

betaci=nlparci(beta,R,J) beta为回归系数 R为残差 J

返回值为回归系数beta的置信区间

4.4.命令 nlpredci

[Y,DELTA]=nlpredci(‘model',X,beta,R,J)

Y为预测值

DELTA为预测值的显著性为1—alpha的置信区间;alpha缺省时为0。05。 X 为n*m矩阵 model为自定义函数 beta为回归系数 R为残差 J

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务