回归分析matlab.docx

上传人:b****7 文档编号:8806877 上传时间:2023-02-01 格式:DOCX 页数:12 大小:86.28KB
下载 相关 举报
回归分析matlab.docx_第1页
第1页 / 共12页
回归分析matlab.docx_第2页
第2页 / 共12页
回归分析matlab.docx_第3页
第3页 / 共12页
回归分析matlab.docx_第4页
第4页 / 共12页
回归分析matlab.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

回归分析matlab.docx

《回归分析matlab.docx》由会员分享,可在线阅读,更多相关《回归分析matlab.docx(12页珍藏版)》请在冰豆网上搜索。

回归分析matlab.docx

回归分析matlab

回归分析MATLAB

一、多元线性回归

多元线性回归:

1、确定回归系数的点估计值:

命令为:

b=regress(Y,X)

b表示

Y表示

X表示

2、求回归系数的点估计和区间估计、并检验回归模型:

命令为:

[b,bint,r,rint,stats]=regress(Y,X,alpha)

bint表示回归系数的区间估计.

r表示残差.

rint表示置信区间.

stats表示用于检验回归模型的统计量,有三个数值:

相关系数r2、F值、与F对应的概率p.

说明:

相关系数

越接近1,说明回归方程越显著;

时拒绝

F越大,说明回归方程越显著;与F对应的概率p

时拒绝H0,回归模型成立.

alpha表示显著性水平(缺省时为0.05)

3、画出残差及其置信区间.

命令为:

rcoplot(r,rint)

例1.如下程序.

解:

(1)输入数据.

x=[143145146147149150153154155156157158159160162164]';

X=[ones(16,1)x];

Y=[8885889192939395969897969899100102]';

(2)回归分析及检验.

[b,bint,r,rint,stats]=regress(Y,X)

b,bint,stats

得结果:

b=bint=

-16.0730-33.70711.5612

0.71940.60470.8340

stats=

0.9282180.95310.0000

的置信区间为[-33.7017,1.5612],

的置信区间为[0.6047,0.834];r2=0.9282,F=180.9531,p=0.0000,我们知道p<0.05就符合条件,可知回归模型y=-16.073+0.7194x成立.

(3)残差分析,作残差图.

rcoplot(r,rint)

从残差图可以看出,除第二个数据外,其余数据的残差离零点均较近,且残差的置信区间均包含零点,这说明回归模型y=-16.073+0.7194x能较好的符合原始数据,而第二个数据可视为异常点.

(4)预测及作图.

z=b

(1)+b

(2)*x

plot(x,Y,'k+',x,z,'r')

二、多项式回归

(一)一元多项式回归.

1、一元多项式回归:

(1)确定多项式系数的命令:

[p,S]=polyfit(x,y,m)

说明:

x=(x1,x2,…,xn),y=(y1,y2,…,yn);p=(a1,a2,…,am+1)是多项式y=a1xm+a2xm-1+…+amx+am+1的系数;S是一个矩阵,用来估计预测误差.

(2)一元多项式回归命令:

polytool(x,y,m)

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.

例1.观测物体降落的距离s与时间t的关系,得到数据如下表,求s.(关于t的回归方程

t(s)

1/30

2/30

3/30

4/30

5/30

6/30

7/30

s(cm)

11.86

15.67

20.60

26.69

33.71

41.93

51.13

t(s)

8/30

9/30

10/30

11/30

12/30

13/30

14/30

s(cm)

61.49

72.90

85.44

99.08

113.77

129.54

146.48

解法一:

直接作二次多项式回归.

t=1/30:

1/30:

14/30;

s=[11.8615.6720.6026.6933.7141.9351.1361.4972.9085.4499.08113.77129.54146.48];

[p,S]=polyfit(t,s,2)

得回归模型为:

解法二:

化为多元线性回归.

t=1/30:

1/30:

14/30;

s=[11.8615.6720.6026.6933.7141.9351.1361.4972.9085.4499.08113.77129.54146.48];

T=[ones(14,1)t'(t.^2)'];

[b,bint,r,rint,stats]=regress(s',T);

b,stats

得回归模型为:

预测及作图:

Y=polyconf(p,t,S)

plot(t,s,'k+',t,Y,'r')

(二)多元二项式回归

多元二项式回归命令:

rstool(x,y,’model’,alpha)

说明:

x表示nm矩阵;Y表示n维列向量;alpha:

显著性水平(缺省时为0.05);model表示由下列4个模型中选择1个(用字符串输入,缺省时为线性模型):

linear(线性):

purequadratic(纯二次):

interaction(交叉):

quadratic(完全二次):

例1.设某商品的需求量与消费者的平均收入、商品价格的统计数据如下,建立回归模型,预测平均收入为1000、价格为6时的商品需求量.

需求量

100

75

80

70

50

65

90

100

110

60

收入

1000

600

1200

500

300

400

1300

1100

1300

300

价格

5

7

6

6

8

7

5

4

3

9

解法一:

选择纯二次模型,即

.

直接用多元二项式回归:

x1=[10006001200500300400130011001300300];

x2=[5766875439];

y=[10075807050659010011060]';

x=[x1'x2'];

rstool(x,y,'purequadratic')

在左边图形下方的方框中输入1000,右边图形下方的方框中输入6,则画面左边的“PredictedY”下方的数据变为88.47981,即预测出平均收入为1000、价格为6时的商品需求量为88.4791.

在画面左下方的下拉式菜单中选”all”,则beta、rmse和residuals都传送到Matlab工作区中.

在Matlab工作区中输入命令:

beta,rmse

得结果:

beta=

110.5313

0.1464

-26.5709

-0.0001

1.8475

rmse=

4.5362

故回归模型为:

剩余标准差为4.5362,说明此回归模型的显著性较好.

解法二:

化为多元线性回归:

X=[ones(10,1)x1'x2'(x1.^2)'(x2.^2)'];

[b,bint,r,rint,stats]=regress(y,X);

b,stats

结果为:

b=

110.5313

0.1464

-26.5709

-0.0001

1.8475

stats=

0.970240.66560.0005

三、非线性回归

1、非线性回归:

(1)确定回归系数的命令:

[beta,r,J]=nlinfit(x,y,’model’,beta0)

说明:

beta表示估计出的回归系数;r表示残差;J表示Jacobian矩阵;x,y表示输入数据x、y分别为矩阵和n维列向量,对一元非线性回归,x为n维列向量;model表示是事先用m-文件定义的非线性函数;beta0表示回归系数的初值.

(2)非线性回归命令:

nlintool(x,y,’model’,beta0,alpha)

2、预测和预测误差估计:

[Y,DELTA]=nlpredci(’model’,x,beta,r,J)

表示nlinfit或nlintool所得的回归函数在x处的预测值Y及预测值的显著性为1-alpha的置信区间Y±DELTA.

例1.如下程序.

解:

(1)对将要拟合的非线性模型y=a

建立m-文件volum.m如下:

functionyhat=volum(beta,x)

yhat=beta

(1)*exp(beta

(2)./x);

(2)输入数据:

x=2:

16;

y=[6.428.209.589.59.7109.939.9910.4910.5910.6010.8010.6010.9010.76];

beta0=[82]';

(3)求回归系数:

[beta,r,J]=nlinfit(x',y','volum',beta0);

beta

(4)运行结果:

beta=

11.6036

-1.0641

即得回归模型为:

(5)预测及作图:

[YY,delta]=nlpredci('volum',x',beta,r,J);

plot(x,y,'k+',x,YY,'r')

四、逐步回归

1、逐步回归的命令:

stepwise(x,y,inmodel,alpha)

说明:

x表示自变量数据,

阶矩阵;y表示因变量数据,

阶矩阵;inmodel表示矩阵的列数的指标,给出初始模型中包括的子集(缺省时设定为全部自变量);alpha表示显著性水平(缺省时为0.5).

2、运行stepwise命令时产生三个图形窗口:

StepwisePlot,StepwiseTable,StepwiseHistory.

在StepwisePlot窗口,显示出各项的回归系数及其置信区间.

(1)StepwiseTable窗口中列出了一个统计表,包括回归系数及其置信区间,以及模型的统计量剩余标准差(RMSE)、相关系数(R-square)、F值、与F对应的概率P.

例1.水泥凝固时放出的热量y与水泥中4种化学成分x1、x2、x3、x4有关,今测得一组数据如下,试用逐步回归法确定一个线性模型.

序号

1

2

3

4

5

6

7

8

9

10

11

12

13

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

解:

(1)数据输入:

x1=[7111117113122111110]';

x2=[26295631525571315447406668]';

x3=[615886917221842398]';

x4=[6052204733226442226341212]';

y=[78.574.3104.387.695.9109.2102.772.593.1115.983.8113.3109.4]';

x=[x1x2x3x4];

(2)逐步回归.

先在初始模型中取全部自变量:

stepwise(x,y)

得图StepwisePlot和表StepwiseTable.

图StepwisePlot中四条直线都是虚线,说明模型的显著性不好.

从表StepwiseTable中看出变量x3和x4的显著性最差.

在图StepwisePlot中点击直线3和直线4,移去变量x3和x4.

移去变量x3和x4后模型具有显著性

虽然剩余标准差(RMSE)没有太大的变化,但是统计量F的值明显增大,因此新的回归模型更好.

(3)对变量y和x1、x2作线性回归.

X=[ones(13,1)x1x2];

b=regress(y,X)

得结果:

b=

52.5773

1.4683

0.6623

故最终模型为:

y=52.5773+1.4683x1+0.6623x2

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1