2009-7-30 1
回归分析实验目的实验内容
2、掌握用数学软件求解回归分析问题。
1、直观了解回归分析基本内容。
1,回归分析的基本理论 。
3,实验作业。
2,用数学软件求解回归分析问题。
2009-7-30 3
一元线性回归 多元线性回归回归分析数学模型及定义
*
模型参数估计
*
检验

预测与控制可线性化的一元非线性回归

曲线回归

数学模型及定义
*
模型参数估计
*
多元线性回归中的检验与预测逐步回归分析
2009-7-30 4
一、数学模型例 1 测 16名成年女子的身高与腿长所得数据如下:
身高 143 145 146 147 149 150 153 154 155 156 157 158 159 160 162 164
腿长 88 85 88 91 92 93 93 95 96 98 97 96 98 99 100 102
以身高 x为横坐标,以腿长 y为纵坐标将这些数据点( xI,yi)
在平面直角坐标系上标出,
140 145 150 155 160 165
84
86
88
90
92
94
96
98
100
102
散点图
xy 10
解答
2009-7-30 5
四、可线性化的一元非线性回归
(曲线回归)
例 2 出钢时所用的盛钢水的钢包,由于钢水对耐火材料的侵蚀,
容积不断增大,我们希望知道使用次数与增大的容积之间的关系,对一钢包作试验,测得的数据列于下表:
使用次数 增大容积 使用次数 增大容积
2
3
4
5
6
7
8
9
6,4 2
8,2 0
9,5 8
9,5 0
9,7 0
1 0,0 0
9,9 3
9,9 9
10
11
12
13
14
15
16
1 0,4 9
1 0,5 9
1 0,6 0
1 0,8 0
1 0,6 0
1 0,9 0
1 0,7 6
解答
2009-7-30 6
2 4 6 8 10 12 14 16
6
6,5
7
7,5
8
8,5
9
9,5
10
1 0,5
11
散点图此即 非线性回归 或 曲线回归 问题 ( 需要配曲线 )
配曲线的一般方法是:
先对两个变量 x 和 y 作 n 次试验观察得 niyx ii,...,2,1),,(? 画出散点图,
根据散点图确定须配曲线的类型,然后由 n 对试验数据确定每一类曲线的未知参数 a 和 b,采用的方法是通过变量代换把非线性回归化成线性回归,即采用非线性回归线性化的方法,
2009-7-30 7
通常选择的六类曲线如下:
( 1 ) 双曲线 xbay1
( 2 ) 幂函数曲线 y = a bx,其中 x > 0,a > 0
( 3 ) 指数曲线 y = a bxe 其中参数 a > 0,
( 4 ) 倒指数曲线 y= a xbe / 其中 a > 0,
( 5 ) 对数曲线 y = a + b l o g x,x > 0
( 6 ) S 型曲线 xbeay 1
返回解例 2,由散点图我们选配倒指数曲线 y =a
xb
e
/
根据线性化方法,算得 4 5 8 7.2?,1 1 0 7.1 Ab
由此 6 7 8 9.11?

A
ea
最后得
xey
1 1 0 7.1
6 7 8 9.11
2009-7-30 8
统计工具箱中的回归分析命令
1、多元线性回归
2、多项式回归
3、非线性回归
4、逐步回归返回
2009-7-30 9
多元线性回归
b=regress( Y,X )
npnn
p
p
xxx
xxx
xxx
X
...1
...............
...1
...1
21
22221
11211
nY
Y
Y
Y
...
2
1
p
b
...
1
0
1,确定回归系数的点估计值:
pp xxy,..110
对一元线性回归,取 p = 1 即可
2009-7-30 10
3,画出残差及其置信区间,rcoplot( r,rint)
2,求回归系数的点估计和区间估计、并检验回归模型:
[b,bint,r,rint,stats]=regress(Y,X,alpha)
回归系数的区间估计残差用于检验回归模型的统计量,
有三个数值:相关系数 r2、
F值、与 F对应的概率 p
置信区间显著性水平

缺省时为
0.
05

相关系数 r 2 越接近 1,说明回归方程越显著;
F > F 1- α ( k,n - k - 1 )时拒绝 H 0,F 越大,说明回归方程越显著;
与 F 对应的概率 p 时拒绝 H 0,回归模型成立,
2009-7-30 11
例 1 解,1,输入数据:
x=[143 145 146 147 149 150 153 154 155 156 157 158 159
160 162 164]';
X=[ones(16,1) x];
Y=[88 85 88 91 92 93 93 95 96 98 97 96 98 99 100 102]';
2,回归分析及检验:
[b,bint,r,rint,stats]=regress(Y,X)
b,bint,stats
得结果,b = b i n t =
- 1 6,0 7 3 0 - 3 3,7 0 7 1 1,5 6 1 2
0,7 1 9 4 0,6 0 4 7 0,8 3 4 0
s t a t s =
0,9 2 8 2 1 8 0,9 5 3 1 0,0 0 0 0
即 7 1 9 4.0
,0 7 3.16
10

0
的置信区间为 [ - 3 3,7 0 1 7,1,5 6 1 2 ],
1
的置信区间为 [ 0,6 0 4 7,0,8 3 4 ] ;
r
2
= 0,9 2 8 2,F = 1 8 0,9 5 3 1,p = 0,0 0 0 0
p< 0,05,可知回归模型 y= - 16,07 3+ 0,71 94 x 成立,
To MATLAB(liti11)
题目
2009-7-30 12
3、残差分析,作残差图:
rcoplot(r,rint)
从残差图可以看出,除第二个数据外,其余数据的残差离零点均较近,且残差的置信区间均包含零点,这说明回归模型 y=-16.073+0.7194x能较好的符合原始数据,而第二个 数据可视为异常点,
4、预测及作图:
z=b(1)+b(2)*x
plot(x,Y,'k+',x,z,'r')
2 4 6 8 10 12 14 16
-5
-4
-3
-2
-1
0
1
2
3
4
R e si d u a l C a se O r d e r P l o t
R
e
si
d
u
a
ls
C a se N u m b e r
返回
To MATLAB(liti12)
2009-7-30 13
多 项 式 回 归
(一)一元多项式回归
( 1) 确定多项式系数的命令,[p,S]=polyfit( x,y,m)
其中 x= ( x 1,x 2,?,x n ),y= ( y 1,y 2,?,y n );
p= ( a 1,a 2,?,a m + 1 )是多项式 y = a 1 x m +a 2 x m - 1 +? + a m x + a m + 1
的系数; S 是一个矩阵,用来估计预测误差,
( 2) 一元多项式回归命令,polytool( x,y,m)
1、回归:
y=a1xm+a2xm-1+…+a mx+am+1
2、预测和预测误差估计:
( 1) Y=polyval( p,x)求 polyfit所得的回归多项式在 x处 的预测值 Y;
( 2) [Y,DELTA]=polyconf( p,x,S,alpha)求 polyfit所得的回归多项式在 x处的预测值 Y及预测值的显著性为 1-
alpha的置信区间 Y DELTA; alpha缺省时为 0.5.?
2009-7-30 14
例 2 观测物体降落的距离 s 与时间 t 的关系,得到数据如下表,求 s
关于 t 的回归方程 2? ctbtas,
t ( s ) 1 / 3 0 2 / 3 0 3 / 3 0 4 / 3 0 5 / 3 0 6 / 3 0 7 / 3 0
s ( c m) 1 1,8 6 1 5,6 7 2 0,6 0 2 6,6 9 3 3,7 1 4 1,9 3 5 1,1 3
t ( s ) 8 / 3 0 9 / 3 0 1 0 / 3 0 1 1 / 3 0 1 2 / 3 0 1 3 / 3 0 1 4 / 3 0
s ( c m) 6 1,4 9 7 2,9 0 8 5,4 4 9 9,0 8 1 1 3,7 7 1 2 9,5 4 1 4 6,4 8
法一直接作二次多项式回归:
t=1/30:1/30:14/30;
s=[11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90
85.44 99.08 113.77 129.54 146.48];
[p,S]=polyfit(t,s,2) To MATLAB( liti21)
1 3 2 9.98 8 9 6.652 9 4 6.4 8 9? 2 tts
得回归模型为,
2009-7-30 15
法二化为多元线性回归:
t=1/30:1/30:14/30;
s=[11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90
85.44 99.08 113.77 129.54 146.48];
T=[ones(14,1) t' (t.^2)'];
[b,bint,r,rint,stats]=regress(s',T);
b,stats
To MATLAB(liti22)
22946.4898896.651329.9? tts
得回归模型为,
Y=polyconf(p,t,S)
plot(t,s,'k+',t,Y,'r')
预测及作图
To MATLAB(liti23)
2009-7-30 16
(二)多元二项式回归命令,rstool( x,y,’ model’,alpha)
n?m矩阵 显著性水平(缺省时为 0.05)n维列向量由下列 4 个模型中选择 1 个(用字符串输入,缺省时为线性模型),
l i n e a r ( 线性 ):
mm
xxy
110
p u r e q u a dr a t i c ( 纯二次 ),
n
j
jjjmm
xxxy
1
2
110

i n t e r a c t i o n ( 交叉 ),
mkj
kjjkmm
xxxxy
1
110

q u a dr a t i c ( 完全二次 ),
mkj
kjjkmm
xxxxy
,1
110

2009-7-30 17
例 3 设某商品的需求量与消费者的平均收入、商品价格的统计数据如下,建立回归模型,预测平均收入为 1000、价格为 6时的商品需求量,
需求量 100 75 80 70 50 65 90 100 1 10 60
收入 1000 600 1200 500 300 400 1300 1 100 1300 300
价格 5 7 6 6 8 7 5 4 3 9
选择纯二次模型,即 2222211122110 xxxxy
法一直接用多元二项式回归:
x1=[1000 600 1200 500 300 400 1300 1100 1300 300];
x2=[5 7 6 6 8 7 5 4 3 9];
y=[100 75 80 70 50 65 90 100 110 60]';
x=[x1' x2'];
rstool(x,y,'purequadratic')
2009-7-30 18
在画面左下方的下拉式菜单中选” all”,则 beta,rmse和 residuals都传送到 Matlab工作区中,
在左边图形下方的方框中输入 1000,右边图形下方的方框中输入 6。
则画面左边的,Predicted Y”下方的数据变为 88.47981,即预测出平均收入为 1000、价格为 6时的商品需求量为 88.4791.
2009-7-30 19
在 Matlab工作区中输入命令,beta,rmse
得结果,b e t a =
1 1 0,5 3 1 3
0,1 4 6 4
- 2 6,5 7 0 9
- 0,0 0 0 1
1,8 4 7 5
r m s e =
4,5 3 6 2
故回归模型为,222121 8 4 7 5.10 0 0 1.05 7 0 9.261 4 6 4.05 3 1 3.1 1 0 xxxxy
剩余标准差为 4,5 3 6 2,说明此回归模型的显著性较好,
To MATLAB(liti31)
2009-7-30 20
X =[ o n e s ( 1 0,1 ) x 1 ' x 2 ' ( x 1,^ 2 ) ' ( x 2,^ 2 ) ' ] ;
[ b,b i n t,r,r i n t,s ta ts ] =r e g r e s s ( y,X ) ;
b,s ta t s
结果为,b =
110.5313
0.1464
-26.5709
-0.0001
1.8475
stats =
0.9702 40.6656 0.0005
法二
To MATLAB(liti32)
返回
2222211122110 xxxxy将化为多元线性回归:
2009-7-30 21
非线性回 归
( 1) 确定回归系数的命令:
[beta,r,J]=nlinfit( x,y,’ model’,beta0)
( 2) 非线性回归命令,nlintool( x,y,’ model’,beta0,alpha)
1、回归:
残差
Jacobian矩阵回归系数的初值是事先用 m-文件定义的非线性函数估计出的回归系数输入数据 x,y分别为矩阵和 n维列向量,对一元非线性回归,x为 n维列向量。
mn?
2、预测和预测误差估计:
[Y,DELTA]=nlpredci( ’ model’,x,beta,r,J)
求 nlinfit 或 nlintool所得的回归函数在 x处的预测值 Y及预测值的显著性为 1-alpha的置信区间 Y DELTA.?
2009-7-30 22
例 4 对第一节例 2,求解如下:
1,对将要拟合的非线性模型 y= a xbe /,建立 m- 文件 v o l u m,m 如下:
f u n c t i o n y h a t = v o l u m ( b e t a,x )
yhat = b e t a ( 1 ) * e x p ( b e t a ( 2 ),/ x ) ;
2、输入数据:
x=2:16;
y=[6.42 8.20 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.80 10.60
10.90 10.76];
beta0=[8 2]';
3,求回归系数:
[beta,r,J]=nlinfit(x',y','volum',beta0);
beta
得结果,beta =
11.6036
-1.0641
即得回归模型为:
xey
1 0 6 4 1.16036.11
To MATLAB(liti41)
题目
2009-7-30 23
4、预测及作图:
[YY,delta]=nlpredci('volum',x',beta,r,J);
plot(x,y,'k+',x,YY,'r')
To MATLAB(liti42)
2009-7-30 24
例 5 财政收入预测问题:财政收入与国民收入、工业总产值、
农业总产值、总人口、就业人口、固定资产投资等因素有关。
下表列出了 1952-1981年的原始数据,试构造预测模型。
解 设国民收入、工业总产值、农业总产值、总人口、就业人口、固定资产投资分别为 x1,x2,x3,x4,x5,x6,财政收入为 y,设变量之间的关系为:
y= ax1+bx2+cx3+dx4+ex5+fx6
使用非线性回归方法求解。
2009-7-30 25
1,对回归模型建立 M文件 model.m如下,
function yy=model(beta0,X)
a=beta0(1);
b=beta0(2);
c=beta0(3);
d=beta0(4);
e=beta0(5);
f=beta0(6);
x1=X(:,1);
x2=X(:,2);
x3=X(:,3);
x4=X(:,4);
x5=X(:,5);
x6=X(:,6);
yy=a*x1+b*x2+c*x3+d*x4+e*x5+f*x6;
2009-7-30 26
2,主程序 liti6.m如下,
X=[598.00 349.00 461.00 57482.00 20729.00 44.00
…………………………………………………………..
2927.00 6862.00 1273.00 100072.0 43280.00 496.00];
y=[184.00 216.00 248.00 254.00 268.00 286.00 357.00 444.00 506.00,.,
271.00 230.00 266.00 323.00 393.00 466.00 352.00 303.00 447.00,..
564.00 638.00 658.00 691.00 655.00 692.00 657.00 723.00 922.00,..
890.00 826.00 810.0]';
beta0=[0.50 -0.03 -0.60 0.01 -0.02 0.35];
betafit = nlinfit(X,y,'model',beta0)
To MATLAB(liti6)
2009-7-30 27
betafit =
0.5243
-0.0294
-0.6304
0.0112
-0.0230
0.3658
即 y= 0.5243x1-0.0294x2-0.6304x3+0.0112x4-0.0230x5+0.3658x6
结果为,
返 回
2009-7-30 28
逐 步 回 归逐步回归的命令是:
stepwise( x,y,inmodel,alpha)
运行 stepwise命令时产生三个图形窗口,Stepwise Plot,
Stepwise Table,Stepwise History.
在 Stepwise Plot窗口,显示出各项的回归系数及其置信区间,
Stepwise Table 窗口中列出了一个统计表,包括回归系数及其置信区间,以及模型的统计量剩余标准差( RMSE)、相关系数( R-square),F值、与 F对应的概率 P.
矩阵的列数的指标,给出初始模型中包括的子集(缺省时设定为全部自变量)
显著性水平(缺省时为 0.5)
自变量数据,
阶矩阵mn? 因变量数据,
阶矩阵1?n
2009-7-30 29
例 6 水泥凝固时放出的热量 y与水泥中 4种化学成分 x1,x2,x3,x4
有关,今测得一组数据如下,试用逐步回归法确定一个 线性模型,序号 1 2 3 4 5 6 7 8 9 10 11 12 13
x 1 7 1 11 11 7 11 3 1 2 21 1 11 10
x 2 26 29 56 31 52 55 71 31 54 47 40 66 68
x 3 6 15 8 8 6 9 17 22 18 4 23 9 8
x 4 60 52 20 47 33 22 6 44 22 26 34 12 12
y 7 8,5 7 4,3 1 0 4,3 8 7,6 9 5,9 1 0 9,2 1 0 2,7 7 2,5 9 3,1 1 1 5,9 8 3,8 1 1 3,3 1 0 9,4
1、数据输入:
x1=[7 1 11 11 7 11 3 1 2 21 1 11 10]';
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=[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]';
x=[x1 x2 x3 x4];
2009-7-30 30
2、逐步回归:
( 1)先在初始模型中取全部自变量:
stepwise(x,y)
得图 Stepwise Plot 和表 Stepwise Table
图 Stepwise Plot中四条直线都是虚线,说明模型的显著性不好从表 Stepwise Table中看出变量 x3和 x4的显著性最差,
2009-7-30 31
( 2)在图 Stepwise Plot中点击直线 3和直线 4,移去变量 x3和 x4
移去变量 x3和 x4后模型具有显著性,
虽然剩余标准差( RMSE)没有太大的变化,但是统计量 F的值明显增大,因此新的回归模型更好,
To MATLAB(liti51)
2009-7-30 32
( 3)对变量 y和 x1,x2作线性回归:
X=[ones(13,1) x1 x2];
b=regress(y,X)
得结果,b =
52.5773
1.4683
0.6623
故最终模型为,y=52.5773+1.4683x1+0.6623x2
To MATLAB(liti52)
返回
2009-7-30 33
1、考察温度 x对产量 y的影响,测得下列 10组数据:
温度 ( ℃ ) 20 25 30 35 40 45 50 55 60 65
产量 ( kg ) 1 3,2 1 5,1 1 6,4 1 7,1 1 7,9 1 8,7 1 9,6 2 1,2 2 2,5 2 4,3
求 y关于 x的线性回归方程,检验回归效果是否显著,并预测
x=42℃ 时产量的估值及预测区间(置信度 95%),
2、某零件上有一段曲线,为了在程序控制机床上加工这一零件,需要求这段曲线的解析表达式,在曲线横坐标 xi处测得纵坐标 yi共 11对数据如下:
x i 0 2 4 6 8 10 12 14 16 18 20
y i 0,6 2,0 4,4 7,5 1 1,8 1 7,1 2 3,3 3 1,2 3 9,6 4 9,7 6 1,7
求这段曲线的纵坐标 y关于横坐标 x的二次多项式回归方程,
2009-7-30 34
3,在研究化学动力学反应过程中,建立了一个反应速度和反应物含量的数学模型,形式为
342312
5
3
21
1 xxx
x
x
y


其中
51
,, 是未知参数,
321
,,xxx 是三种反应物 (氢,n 戊烷,
异构戊烷)的含量,y 是反应速度,今测得一组数据如表 4,试由此确定参数
51
,,,并给出置信区间,
51
,, 的参考值为
( 1,0,05,0,02,0,1,2 ),
序号 反应速度 y 氢 x
1
n 戊烷 x
2
异构戊烷 x
3
1 8,55 470 300 10
2 3,79 285 80 10
3 4,82 470 300 120
4 0,02 470 80 120
5 2,75 470 80 10
6 14,39 100 190 10
7 2,54 100 80 65
8 4,35 470 190 65
9 13,00 100 300 54
10 8,50 100 300 120
11 0,05 100 80 120
12 1 1,32 285 300 10
13 3,13 285 190 120
2009-7-30 35
4、混凝土的抗压强度随养护时间的延长而增加,现将一批混凝土作成 12个试块,记录了养护日期 x(日)及抗压强度 y
( kg/cm2)的数据:
养护时间 x 2 3 4 5 7 9 12 14 17 21 28 56
抗压强度 y 35 42 47 53 59 65 68 73 76 82 86 99
试求 xbay ln 型回归方程,
例 儿童的体重与身高和年龄 ertong.m
初始结果最终结果
2221 2 3 8 0.06 8 4 9.23 2 8 9.58 2 8 7.25? xxxy