回归分析
1.多元线性回归
在Matlab统计工具箱中使用命令regress()实现多元线性回归,调用格式为
b=regress(y,x)
或
[b,bint,r,rint,statsl = regess(y,x,alpha)
其中因变量数据向量y和自变量数据矩阵x按以下排列方式输入
对一元线性回归,取k=1即可。alpha为显著性水平(缺省时设定为0.05),输出向量b,bint为回归系数估计值和它们的置信区间,r,rint为残差及其置信区间,stats是用于检验回归模型的统计量,有三个数值,第一个是R2,其中R是相关系数,第二个是F统计量值,第三个是与统计量F对应的概率P,当P
拒绝H0,回归模型成立。
画出残差及其置信区间,用命令rcoplot(r,rint)
实例1:已知某湖八年来湖水中COD浓度实测值(y)与影响因素湖区工业产值(x1)、总人口数(x2)、捕鱼量(x3)、降水量(x4)资料,建立污染物y的水质分析模型。
(1)输入数据
x1=[1.376, 1.375, 1.387, 1.401, 1.412, 1.428, 1.445, 1.477]
x2=[0.450, 0.475, 0.485, 0.500, 0.535, 0.545, 0.550, 0.575]
x3=[2.170 ,2.554, 2.676, 2.713, 2.823, 3.088, 3.122, 3.262]
x4=[0.8922, 1.1610 ,0.5346, 0.9589, 1.0239, 1.0499, 1.1065, 1.1387]
y=[5.19, 5.30, 5.60,5.82,6.00, 6.06,6.45,6.95]
(2)保存数据(以数据文件.mat形式保存,便于以后调用)
save data x1 x2 x3 x4 y
load data (取出数据)
(3)执行回归命令
x =[ones(8,1),];
[b,bint,r,rint,stats] = regress
得结果:
b = (-16.5283,15.7206,2.0327,-0.2106,-0.1991)’
stats = (0.9908,80.9530,0.0022)
即
= -16.5283 + 15.7206xl + 2.0327x2 - 0.2106x3 + 0.1991x4
R2 = 0.9908,F = 80.9530,P = 0.0022