多元线性回归

在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。事实上,一种现象常常是与多个因素相联系的,由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。因此多元线性回归比一元线性回归的实用意义更大。

多元线性回归的基本原理和基本计算过程与一元线性回归相同,但由于自变量个数多,计算相当麻烦,一般在实际应用时都要借助统计软件。

在MATLAB中使用函数regress,可以实现多元线性回归。函数regress的调用格式为:

[b,bint,r,stats]=regress(y,x,alpha)

其中,因变量数据向量y和自变量数据矩阵x按以下排列方式输入:

x=\begin{bmatrix} 1& x_{11}&x_{12} &\dots & x_{1k}\\ 1& x_{21}&x_{22}&\dots & x_{2k}\\ \vdots &\vdots &\vdots & &\vdots \\ 1& x_{n1} &x_{n2} &\dots &x_{nk} \end{bmatrix}

对于一元线性回归,取k=1即可。

alpha为显著性水平(缺省时设定为0.05),b为输出向量,bint为回归系数估计值和它们的置信区间,r为残差,rint为置信区间,stats用于检验回归模型的统计量。

【例】

已知8年来洞庭湖湖水中污染物实测值Y与影响因素湖区工业产值x1,总人口数x2、捕鱼量x3、降水量x4资料,建立污染物Y的水质分析模型。

x_1 1.376 1.375 1.387 1.401 1.412 1.428 1.445 1.477
x_2 0.450 0.475 0.485 0.5 0.535 0.545 0.55 0.575
x_3 2.17 2.554 2.676 2.713 2.823 3.088 3.122 3.262
x_4 0.8922 1.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 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

即污染物的水质分析模型为

y=-10.7642+9.4410x_1+6.3624x_2+0.0582x_3-0.0463x_4

你可能感兴趣的:(数学建模,线性回归,matlab,算法)