在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。事实上,一种现象常常是与多个因素相联系的,由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。因此多元线性回归比一元线性回归的实用意义更大。
多元线性回归的基本原理和基本计算过程与一元线性回归相同,但由于自变量个数多,计算相当麻烦,一般在实际应用时都要借助统计软件。
在MATLAB中使用函数regress,可以实现多元线性回归。函数regress的调用格式为:
[b,bint,r,stats]=regress(y,x,alpha)
其中,因变量数据向量y和自变量数据矩阵x按以下排列方式输入:
对于一元线性回归,取k=1即可。
alpha为显著性水平(缺省时设定为0.05),b为输出向量,bint为回归系数估计值和它们的置信区间,r为残差,rint为置信区间,stats用于检验回归模型的统计量。
【例】
已知8年来洞庭湖湖水中污染物实测值Y与影响因素湖区工业产值x1,总人口数x2、捕鱼量x3、降水量x4资料,建立污染物Y的水质分析模型。
1.376 | 1.375 | 1.387 | 1.401 | 1.412 | 1.428 | 1.445 | 1.477 | |
0.450 | 0.475 | 0.485 | 0.5 | 0.535 | 0.545 | 0.55 | 0.575 | |
2.17 | 2.554 | 2.676 | 2.713 | 2.823 | 3.088 | 3.122 | 3.262 | |
0.8922 | 1.161 | 0.5346 | 0.9589 | 1.0239 | 1.0499 | 1.1065 | 1.1387 | |
5.19 | 5.3 | 5.6 | 5.82 | 6. | 6.06 | 6.45 | 5.95 |
在MATLAB中输入代码:
clear,clc
x1=[1.376,1.375,1.387,1.401,1.412,1.428,1.445,1.447];
x2=[0.45,0.475,0.485,0.5,0.535,0.545,0.55,0.575];
x3=[2.17,2.554,2.676,2.713,2.823,3.088,3.122,3.262];
x4=[0.8922,2.161,0.5346,0.9589,1.0239,1.0499,1.1065,1.1387];
y=[5.19,5.3,5.6,5.82,6,6.06,6.45,6.95]';
x=[ones(size(x1')),x1',x2',x3',x4'];
[b,bint,r,stats]=regress(y,x)
得到结果:
b =
-10.7642
9.4410
6.3624
0.0582
-0.0463
bint =
-50.6407 29.1123
-26.7771 45.6590
-26.9453 39.6700
-3.0095 3.1258
-0.6663 0.5738
r =
0.0154
0.0122
0.0529
0.0628
-0.0872
-0.2560
-0.0577
0.2577
stats =
-0.3849 0.4157
-0.1170 0.1413
-0.4047 0.5105
-0.9902 1.1158
-0.5754 0.4011
-0.9287 0.4166
-0.6913 0.5759
-0.1780 0.6934
即污染物的水质分析模型为