先画出散点图判断是否具有线性关系
x1 = [3.5,5.3,5.1,5.8,4.2,6.0,6.8,5.5,3.1,7.2,4.5,4.9,8.0,6.5,6.5,3.7,6.2,7.0,4.0,4.5,5.9,5.6,4.8,3.9];
x2 = [9,20,18,33,31,13,25,30,5,47,25,11,23,35,39,21,7,40,35,23,33,27,34,15];
x3 = [6.1 6.4,7.4,6.7,7.5,5.9,6.0,4.0,5.8,8.3,5.0,6.4,7.6,7.0,5.0,4.0,5.5,7.0,6.0,3.5,4.9,4.3,8.0,5.0];
Y = [33.2,40.3,38.7,46.8,41.4,37.5,39.0,40.7,30.1,52.9,38.2,31.8,43.3,44.1,42.5,33.6,34.2,48.0,38.0,35.9,40.4,36.8,45.2,35.1];
n = size(x1,2);
m = 3;
subplot(1,3,1),plot(x1,Y,'g*'),
subplot(1,3,2),plot(x2,Y,'k+'),
subplot(1,3,3),plot(x3,Y,'ro'),
得到图像如下:


在一元线性回归里面我们讲到了regress函数,在这里多元回归,我们同样使用regress函数。

X = [ones(n,1),x1',x2',x3']; %这个地方全1的列向量是必须存在的
[b,bint,r,rint,s] = regress(Y',X,0.05); %0.05代表95%的置信区间
输出结果如图:




根据上述结果,可以得到回归方程:
y = 18.0157+1.0817x1+0.3212x2+1.2835x3
结果检验

本文章使用limfx的vscode插件快速发布