合用标准文案
Matlab 实现多元回归实例
〔一〕一般多元回归
一般在生产实践和科学研究中, 人们获取了参数 x
数据,需要求出关系式
y
f
x1 , , xn 和因变量 y 的
若是只考虑
x ,这时就可以用到回归解析的方法。
x x1 , , xn
f 是线性函数的状况,当自变量只有一个时,即, x1 , , xn 中 n 1 时,称
中 n 2 时,称为多元
为一元线性回归,当自变量有多个时,即, 线性回归。
进行线性回归时,有 4 个根本假设:
① 因变量与自变量之间存在线性关系; ② 残差是独立的; ③ 残差满足方差奇性; ④ 残差满足正态分布。
x
在 Matlab 软件包中有一个做一般多元回归解析的命令 regeress ,调用格式 以下:
也许 [b, bint, r, rint, stats] = regress(y,X,alpha)
此时,默认 alpha = 0.05. [b, bint, r, rint, stats] = regress(y,X) 这里, y 是一个 n 1 的列向量, X 是一个 n
m
1 的矩阵,其中第一列是全 1 向
1 列向量对应回归方程的常数项〕 , 量〔这一点关于回回来说很重要,这一个全
一般状况下,需要人工造一个全 1 列向量。 回归方程拥有以下形式:
y
01 x1 m
x
m
其中, 是残差。
在返回项 [b,bint,r,rint,stats] ① b
0 1
中,
m 是回归方程的系数;
② b int 是一个 m 2 矩阵,它的第 i 行表示 i ③ r 是 n 1 的残差列向量; ④ r int 是 n
的 (1-alpha) 置信区间;
2 矩阵,它的第 i 行表示第 i 个残差 r i 的(1-alpha) 置信区间;
说明:残差与残差区间杠杆图, 最幸好 0 点线周边比较均匀的分布, 而不表现必然的规律性,若是是这样,就说明回归解析做得比较理想。
⑤ 一般的, stast返回 4 个值: R2 值、F_检验值、阈值 f ,与明显性概率相关的
p 值〔若是这个 p 值不存在,那么,只输出前
优秀文档
3 项〕。说明:
Matlab实现多元回归实例
合用标准文案
( 1〕一般说来, R2 值越大越好。
( 2〕人们一般用以下统计量对回归方程做明显性检验: F_检验、 t_ 检验、以及相关系数检验法。 Matlab 软件包输出 F_检验值和阈值 f 。一般说来, F_检验值
越大越好,特其余,应该有 F_检验值
f 。
alpha ,那么说明回归
〔 3〕与明显性概率相关的 p 值应该满足 p alpha 。若是 p
方程中有节余的自变量, 能够将这些节余的自变量从回归方程中剔除 〔见下面渐渐回归的内容〕。
这几个技术指标说明拟合程度的利害。 这几个指标都好, 就说明回归方程是有意义的。
例 1〔Hamilton ,1987〕数据以下:
序号
1 2 3 4
Y
X1
X2
5 6 7 8 9 10 11 12 13 14 15
第一步 解析数据
在 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 =
优秀文档
Matlab实现多元回归实例
合用标准文案
ans =
即,corrcoef(x1,y) =0.0025 ,corrcoef(x2,y) 单变量线性关系。图形以下:
= 0.4341 ,说明没有特别明显的
也看不出有线性关系,但是,旋转图形,能够看出所有点几乎在一个平面上。
这说明, y, x1, x2 在一个平面上,满足线性关系:
a1 x1 a2 x2 b y a
y a0 a1 x1 a2 x2
也许,换成一个常有的形式
其中, 是残差。于是,在 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.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]'; e=ones(15,1); x=[e,x1,x2];
[b,bint,r,rint,stats]=regress(y,x,0.05) rcoplot(r,rint)
其中, rcoplot 〔Residual case order plot
优秀文档
〕表示画出残差与残差区间的杠杆
Matlab实现多元回归实例
合用标准文案
图。执行后获取: b =
bint =
r =
rint =
stats =
1.0e+004 *
优秀文档
0
Matlab实现多元回归实例
合用标准文案
即, y 4.515 3.097x 1 1.0319x 2 。
置信度 95%,且 R2 1.0, F _ 检验值 39222
0 ,与明显性概率 0.05 相关的
p 0.0000 0.05 ,这说明,回归方程中的每个自变量的采用,都是有意义的。
残差杠杆图:
从杠杆图看出,所有的残差都在 0 点周边均匀分布,区间几乎都位于
之间,即,没有发现高杠杆点,也就是说,数据中没有强影响点、异常观察点。
综合起来看,以上回概括果〔回归函数、拟合曲线或曲面〕近乎圆满。
〔二〕渐渐回归
假设已有数据 X 和 Y,在 Matlab 软件包中,使用 stepwise 命令进行渐渐回
归,获取回归方程 Y
a1 X1 a2 X2 an X n,其中 是随机误差。 stepwise
命令的使用格式以下: stepwise(X,Y)
注意:应用 stepwise 命令做渐渐回归,数据矩阵 X 的第一列不需要人工加
一个全 1 向量,程序会自动求出回归方程的常数项〔 intercept 〕。
在应用 stepwise 命令进行运算时,程序不断提示将某个变量参加 〔 Movein 〕
Move out 〕。 回归方程,也许提示将某个变量从回归方程中剔除〔
说明:①使用 stepwise 命令进行渐渐回归,既有剔除变量的运算,也有引
入变量的运算,它 是目前应 用较为广 泛的一种多 元回归 方法。 ②在 运行 stepwise(X,Y) 命令时,默认明显性概率 0.05 。 例 2〔Hald,1960 〕Hald 数据是关于水泥生产的数据。某种水泥在凝固时放出的热量 Y 〔单位:卡/克〕与水泥中 4 种化学成分所占的百分比相关:
x1 : 3 Cao Al2 o3 x2 :3 Cao Sio2
x3 : 4 Cao Al 2 o3 Fe2 o3
x4 : 2 Cao Sio2
优秀文档
Matlab实现多元回归实例
合用标准文案
在生产中测得 13 组数据:
序号 X1 1 7 2 1 3 11 4 11 5 7 6 11 7 3 8 1
9 10 11 12 13
X2 26 29 56 31 52 55 71 31 54 47 40 66 68
X3 6 15 8 8 6 9 17 22 18 4 23 9 8
X4 60 52 20 47 33 22 6 44 22 26 34 12 12
Y
2 21 1 11 10 f X 。
求出关系式 Y
解:〔 1〕本问题涉及的数据是 5 维的,不能够画图观察。先做异常值解析。 X=[7,26,6,60;1,29,15,52;11,56,8,20;11,31,8,47;7,52,6,33;11,55,9,22;3, 71,17,6;1,31,22,44;2,54,18,22;21,47,4,26;1,40,23,34;11,66,9,12;10,68, 8,12];
Y=[78.5,74.3,104.3,87.6,95.9,109.2,102.7,72.5,93.1,115.9,83.8,113.3,1 09.4]'; A=[X,Y];
mahal(A,A)
程序执行后获取结果: ans =
能够认为数据都是正常的。 〔 2〕一般多元回归。
在 Matlab 软件包中写一个 M—文件 opt_cement_1:
X=[7,26,6,60;1,29,15,52;11,56,8,20;11,31,8,47; 7,52,6,33;11,55,9,22;3,71,17,6;1,31,22,44;
优秀文档
Matlab实现多元回归实例
合用标准文案
2,54,18,22;21,47,4,26;1,40,23,34;11,66,9,12; 10,68,8,12];
Y=[78.5,74.3,104.3,87.6,95.9,109.2,102.7,72.5,
93.1,115.9,83.8,113.3,109.4]'; a1=ones(13,1); A=[a1,X];
[b,bint,r,rint,stat]=regress(Y,A) rcoplot(r,rint)
程序执行后获取: b =
bint =
r =
rint =
优秀文档
Matlab实现多元回归实例
合用标准文案
stat =
以及残差杠杆图:
于是,我们获取:
Y 62 .4054 1 .5511 x1
0 .5102 x2 0 .1019 x3 0.1441 x4
并且,残差杠杆图显示, 残差均匀分布在 0 点线周边,在 stat 返回的 4 个值中,
R2 = ,说明模型拟合的很好。 F_检验值= 111.4792>0.000 ,吻合要求。
但是,与明显性概率相关的 p 值= ,这说明,回归方程中有些变量能够剔除。
( 3〕渐渐回归
在 Matlab 软件包中写一个 M—文件 opt_cement_2: X=[7,26,6,60;1,29,15,52;11,56,8,20;11,31,8,47; 7,52,6,33;11,55,9,22;3,71,17,6;1,31,22,44; 2,54,18,22;21,47,4,26;1,40,23,34;11,66,9,12; 10,68,8,12];
Y=[78.5,74.3,104.3,87.6,95.9,109.2,102.7,72.5, 93.1,115.9,83.8,113.3,109.4]'; stepwise(X,Y)
程序执行后获取以下渐渐回归的画面:
优秀文档
Matlab实现多元回归实例
合用标准文案
X1
Coefficients with Error Bars
Coeff. t-stat p-val
X2
Move x4
X3
in
X4
-3
-2
-1
0
1
2
3
Model History
17 E 16 S M R
15
14
1
程序提示:将变量 x4 加进回归方程〔 Move x4 in 〕,点击 Next Step 按钮,即,进行下一步运算,将第 4 列数据对应的变量 x4 参加回归方程。点击 Next Step 按健后,又获取提示:将变量 x1 加进回归方程〔 Move x1 in 〕,点击 Next Step
按钮,即,进行下一步运算,将第
1 列数据对应的变量 x1 参加回归方程。点击
Next Step 按健后,又获取提示: Move No terms ,即,没有需要参加〔也没有需要剔除〕的变量了。
注意:在 Matlab7.0 软件包中,能够直接点击“ All Steps 〞按钮,直接求出结果〔省略中间过程〕 。
X1
Coefficients with Error Bars
2
Coeff. t-stat p-val
-1
0
1
X2
X3
intercept
X4
E S
M 10 R
0
Model History
20
1 2 3
最后获取回归方程〔蓝色行是被保存的有效行,红色行表示被剔除的变量〕
:
优秀文档
Matlab实现多元回归实例
合用标准文案
Y
103 097
. 1 43996
x1 . 0 613954
x4 .
回归方程中录取了原始变量 x1 和 x4 。模型评估参数分别为:
2
,修正的
2
值 R2
R 0 .972471
R
, 检验值=
0 964212 F_ .
,与明显性
概率相关的 p 值= 1 .58106
10 8
0 .05 ,残差均方 RMSE= 〔这个值越
小越好〕。以上指标值都很好,说明回归收效比较理想。
别的,截距 intercept=103.097 〔Intercept = the estimated value of the constant term 〕,这就是回归方程的常数项。
我们将 x1 , x4 , y 的数据放在一起画图观察:
X=[7,26,6,60;1,29,15,52;11,56,8,20;11,31,8,47;7,52,6,33;11,55,9,22;3,71,17,6;1,31,2 2,44;2,54,18,22;21,47,4,26;1,40,23,34;11,66,9,12;10,68,8,12];
10 0 -10 -20 -30 60 50 40 30 20 10
;
plot3(X(:,1),X(:,4),Y)
程序执行后获取图形:
20
15
10
5
0
不断旋转画面观察,图形大体是一个平面。
优秀文档
因篇幅问题不能全部显示,请点此查看更多更全内容