在matlab中用regress()函数可以求多元线性方程的系数

最近写题目经常碰到,记下一些关键的地方

以下为我使用该函数求得的一个多元线性函数的例子代码,x1-x4都是用xlsread()函数读取表格信息

x1=xlsread('dataimport.xls','sheet2','C2:C836');
x2=xlsread('dataimport.xls','sheet2','D2:D836');
x3=xlsread('dataimport.xls','sheet2','E2:E836');
x4=xlsread('dataimport.xls','sheet2','F2:F836');
Y=xlsread('dataimport.xls','sheet2','B2:B836');
X=[ones(size(x1)),x1,x2,x3,x4];
%X=[x1',x2',x3',x4',x5'];%要是列向量
%Y=y';
[b,bint,r,rint,stats]=regress(Y,X);

大家需要注意的是每组数据需要是列向量,即x1-x4和Y应该是列向量,ones(size(x))是一列与数据组数等长的单位列向量,目的是产生常数项,如果没有常数项,则可以去掉

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

说明:b是线性方程的系数估计值,并且第一值表示常数,第二个值表示回归系数。bint是系数估计值的置信度为95%的置信区间,r表示残差,rint表示各残差的置信区间,stats是用于检验回归模型的统计量,有三个数值其中有表示回归的R2统计量和F以及显著性概率P值,alpha为置信度。相关系数r^2越大,说明回归方程越显著;与F对应的概率P<alpha时候拒绝H0,回归模型成立。

笔者初学matlab,如有错误请不惜赐教

Logo

「智能机器人开发者大赛」官方平台,致力于为开发者和参赛选手提供赛事技术指导、行业标准解读及团队实战案例解析;聚焦智能机器人开发全栈技术闭环,助力开发者攻克技术瓶颈,促进软硬件集成、场景应用及商业化落地的深度研讨。 加入智能机器人开发者社区iRobot Developer,与全球极客并肩突破技术边界,定义机器人开发的未来范式!

更多推荐