使用matlab计算回归方程

使用matlab计算回归方程,第1张

[b,bint,r,rint,stats]=regress(Y,X,alpha)

这里Y, X为列向量,alpha为显著性水平(缺省时设定为005),b,bint为回归系数估计值和

它们的置信区间,r,rint 为残差(向量)及其置信区间,stats 是用于检验回归模型的统计量。

clc,clearx=[2003;2004;2005;2006;2007;2008;2009;2010];

y=[192;195;197;201;205;208;212;223];

fun=@(a,x)a(1)+a(2)x; %y=a+bx

a=lsqcurvefit(fun,[0,0],x,y);

b=a(2)

a=a(1)

xi=2003:01:2010;

yi=a+bxi;

plot(x,y,'o',xi,yi)

b =

  00384

a =

-750000

    剩余平方和            Q = 0004082

      标准误差        Sigma = 0026084

      相关指数           RR = 0943685

figure;

t=[1999 2000 2001 2002 2003 2004 2005 2006 2007 2008];

c=[39972 50697 75498 9894 120248 147329 1525 171787 191145 200425];

a=polyfit(t,c,2);

ti=1999:1:2008;

ci=polyval(a,ti);

plot(t,c,'go','MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',6);

xlabel('年份');

ylabel('相关数据');

axis([1999 2008 350 2100])

hold on

plot(ti,ci,'linewidth',2,'markersize',16)

legend('原始数据点','拟合曲线')

plot(t,c,'-r')

sprintf('曲线方程:C=%05gT^2+(%05g)T+(%05g)',a(1),a(2),a(3))

曲线方程:C=-55245T^2+(22324)T+(-2255e+007)

这是2次线性相关

figure;

t=[1999 2000 2001 2002 2003 2004 2005 2006 2007 2008];

c=[39972 50697 75498 9894 120248 147329 1525 171787 191145 200425];

a=polyfit(t,c,1);

ti=1999:1:2008;

ci=polyval(a,ti);

plot(t,c,'go','MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',6);

xlabel('年份');

ylabel('相关数据');

axis([1999 2008 350 2100])

hold on

plot(ti,ci,'linewidth',2,'markersize',16)

legend('原始数据点','拟合曲线')

plot(t,c,'-r')

sprintf('曲线方程:C=+(%05g)T+(%05g)',a(1),a(2),)

曲线方程:C=+(18766)T+(-37473e+005)

这是一次的线性相关

x=[1,2,3,4,5,6,7,8,9,10]

y=[1,2,3,4,5,6,7,8,9,10]

z=[1,2,3,4,5,6,7,8,9,10]

Z=z';

X=[x;y]';

%c=ax+by+z z=c-ax-by

B=regress(Z,[ones(length(x),1) X])

c=B(1),a=-B(2),b=-B(3)

结果:

B =

00000

10000

0

c =

30337e-016

a =

-1

b =

0

提供的数据是假设的,不好。

用MATLAB做线性及非线性回归的主要函数有:1、线性回归 函数(解决线性回归问题),如regress()、polyfit(),主要书写格式为

a= regress(y,X) %拟合线性回归函数的系数,a系数

p=polyfit(x,y,n); %拟合多项式的系数,n最大项数为9

2、非线性回归函数(解决非线性回归问题),如lsqnonlin()、lsqcurvefit()、nlinfit (),主要书写格式为

a =lsqnonlin(自定义函数,初值),a系数

a=lsqcurvefit(自定义函数,初值,自变量,因变量),a系数

a = nlinfit(自变量,因变量,自定义函数,初值),a系数

3、比较详细的内容,可以通过help()帮助函数来查找。

首先

x1'

是转置的意思。

比如x1为五行三列,x1'就是三行五列

size(x1')就是求出x1'的行列数。如果x1是五行三列,刚size(x1')为[3,5]即三行五列

ones(size(x1'))就是产生一个全一的矩阵,矩阵的行列数与size(x1')相同

实际上,它就是产生一个矩阵,将x1'里面的所有元素换成1

x=[282,202,157,128,108,094];

z=[40,559,628,662,687,706];

Z=z';

X1=[x;x]';

%c=ax-bx+z z=c-ax+bx

B1=regress(Z,[ones(length(x),1) X1])

c=B1(1),a=-B1(2),b=B1(3)

X2=[x]';

%c=ax-bx+z z=c-ax+bx

B2=regress(Z,[ones(length(x),1) X2])

c=B2(1),k=-B2(2)%k=-a+b

结果:

B1 =

867463

-160945

0

c =

867463

a =

160945

b =

0

B2 =

867463

-160945

c =

867463

k =

160945

这个题不严谨,严格说,是一元线性回归。

以上就是关于使用matlab计算回归方程全部的内容,包括:使用matlab计算回归方程、用matlab求一元线性回归 非常急、知道一组数据,如何用matlab的线性回归和线性拟合求出两者的关系函数,求代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9509190.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存