从代码到函数,从算法到实战,从问题到应用,由浅入深掌握科学计算方法,高效解决实际问题。
在回归问题中往往存在这样一个问题:并不是每个自变量都对回归问题的求解有益。因此,在进行回归分析时,需要先对自变量进行相关性分析,将不相关的自变量删除。本节以某省生产总值数据拟合问题为例,讲解自变量相关性分析,并在此基础上构建多元线性回归模型,对生产总值进行预测。
①某省生产总值数据拟合问题简介
表 1-1 为某省 10 年生产总值数据。根据表中数据,判断影响生产总值的因素,并基于这些因素建立预测该省生产总值的多元线性回归模型。
表 1-1 某省 10 年生产总值
②多元线性回归模型
最常用的判断两组数据是否有相关性的指标为皮尔逊相关性。计算表 1-1 中除生产总值之外的变量之间的皮尔逊相关性,结果如图 1-2 所示。
图1-2 8个变量之间的相关性
在图 1-2 中,年份与第三产业、建筑业,第三产业与第一产业等自变量之间的皮尔逊相关系数大于 0.99,可以认为其完全线性相关,完全线性相关的两个自变量可以只保留一个。在 8 个变量中,依次删除相关性大于 0.97 的变量,过程如下:根据年份,删除第一产业、第三产业、建筑业;根据第二产业,删除工业;剩余的自变量为年份、第二产业、交通运输仓储和邮政业、批发和零售业。此时,新的相关性矩阵如图 1-3 所示。
图 1-3 4个变量之间的相关性
根据删除之后的自变量,记自变量年份、第二产业、交通运输仓储和邮政业、批发和零售业分别为 x₁,x₂,x₃,x₄,因变量生产总值为 y,则多元线性回归模型记为:
y=k₁x₁+k₂x₂+k₃x₃+k₄x₄
利用最小二乘法求解系数,实现如代码 1-4 所示。
最小二乘法回归系数拟合
data = xlsread('data_13_7.xlsx'); x = data; y = data(:,2); x(:,2) = []; xx = x(:,[1,3,7,8]); tt = t([1,3,7,8]); kk = inv(xx'*xx)*xx'*y
计算得到回归系数 kk 后,得到模型:
y=0.5711x₁+0.4940x₂+4.4931x₃+7.8714x₄
可以根据多元线性回归模型,对每年的生产总值进行预测,将预测值与真实值比较,如图 1-4 所示。可以看出,该多元线性回归模型的预测值与真实值之间的误差不大,模型能够反映真实状况。
图 1-4 多元线性回归结果示意图