Matlab实现多元回归实例.doc
文本预览下载声明
PAGE
PAGE 1
Matlab实现多元回归实例
(一)一般多元回归
一般在生产实践和科学研究中,人们得到了参数和因变量的数据,需要求出关系式,这时就可以用到回归分析的方法。如果只考虑是线性函数的情形,当自变量只有一个时,即,中时,称为一元线性回归,当自变量有多个时,即,中时,称为多元线性回归。
进行线性回归时,有4个基本假定:
因变量与自变量之间存在线性关系;
残差是独立的;
残差满足方差奇性;
残差满足正态分布。
在Matlab软件包中有一个做一般多元回归分析的命令regeress,调用格式如下:
[b, bint, r, rint, stats] = regress(y,X,alpha) 或者
[b, bint, r, rint, stats] = regress(y,X) 此时,默认alpha = 0.05.
这里,y是一个的列向量,X是一个的矩阵,其中第一列是全1向量(这一点对于回归来说很重要,这一个全1列向量对应回归方程的常数项),一般情况下,需要人工造一个全1列向量。回归方程具有如下形式:
其中,是残差。
在返回项[b,bint,r,rint,stats]中,
①是回归方程的系数;
②是一个矩阵,它的第行表示的(1-alpha)置信区间;
③是的残差列向量;
④是矩阵,它的第行表示第个残差的(1-alpha)置信区间;
注释:残差与残差区间杠杆图,最好在0点线附近比较均匀的分布,而不呈现一定的规律性,如果是这样,就说明回归分析做得比较理想。
一般的,返回4个值:值、F_检验值、阈值,与显著性概率相关的值(如果这个值不存在,则,只输出前3项)。注释:
(1)一般说来,值越大越好。
(2)人们一般用以下统计量对回归方程做显著性检验:F_检验、t_检验、以及相关系数检验法。Matlab软件包输出F_检验值和阈值。一般说来,F_检验值越大越好,特别的,应该有F_检验值。
(3)与显著性概率相关的值应该满足。如果,则说明回归方程中有多余的自变量,可以将这些多余的自变量从回归方程中剔除(见下面逐步回归的内容)。
这几个技术指标说明拟合程度的好坏。这几个指标都好,就说明回归方程是有意义的。
例1(Hamilton,1987)数据如下:
序号
Y
X1
X2
1
12.37
2.23
9.66
2
12.66
2.57
8.94
3
12.00
3.87
4.40
4
11.93
3.10
6.64
5
11.06
3.39
4.91
6
13.03
2.83
8.52
7
13.13
3.02
8.04
8
11.44
2.14
9.05
9
12.86
3.04
7.71
10
10.84
3.26
5.11
11
11.20
3.39
5.05
12
11.56
2.35
8.51
13
10.83
2.76
6.59
14
12.63
3.90
4.90
15
12.46
3.16
6.96
第一步 分析数据
在Matlab软件包中分析是否具有线性关系,并作图观察,M—文件opt_hanmilton_1987:
x1=[2.23,2.57,3.87,3.10,3.39,2.83,3.02,2.14,3.04,3.26,3.39,2.35,2.76,3.90,3.16];
x2=[9.66,8.94,4.40,6.64,4.91,8.52,8.04,9.05,7.71,5.11,5.05,8.51,6.59,4.90,6.96];
y=[12.37,12.66,12.00,11.93,11.06,13.03,13.13,11.44,12.86,10.84,11.20,11.56,10.83,12.63,12.46];
corrcoef(x1,y)
corrcoef(x2,y)
plot3(x1,x2,y,*)
得到结果:
ans =
1.0000 0.0025
0.0025 1.0000
ans =
1.0000 0.4341
0.4341 1.0000
即,corrcoef(x1,y)=0.0025,corrcoef(x2,y)=0.4341,说明没有非常明显的单变量线性关系。图形如下:
也看不出有线性关系,但是,旋转图形,可以看出所有点几乎在一个平面上。
这说明,在一个平面上,满足线性关系:
或者,换成一个常见的形式
其中,是残差。于是,在Matlab软件包中做线性多元回归,写一个M—文件opt_regress_hamilton:
x1=[2.23,2.57,3.87,3.10,3.39,2.83,3.02,2.14,3.04,3.26,3.39,2.35,2.76,3.90,3.16];
x2=[9.66,8.94,4.40,6.64,4.9
显示全部