论文部分内容阅读
[摘 要] 文章运用MATLAB软件中的一些时间序列建模方法及回归分析方法对某商品的季度销售额作了预测分析,得到了较高的预测精度,在实际应用中预测值的准确对于指导商家的战略决策起着重要作用。
[关键词] 时间序列 回归模型 D—W检验 MATLAB
一、问题提出
某公司(记为A)想用全行业的销售额作为自变量来预测公司的销售额,表1给出了1977年~1981年公司销售额和行业销售额的分季度数据(单位:百万元)。
表1A公司的公司销售额和行业销售额的分季度数据(单位:百万元)
二、问题分析及建立模型
1.问题分析
表1的数据是以时间序列为序的,称为时间序列。由于公司销售额和行业销售额等经济变量均有一定的滞后性,因此,在这样的时间序列数据中,同一变量的顺序观测值之间出现相关现象(称自相关)是很自然的。然而,一旦数据中存在这种自相关序列,如果仍采用普通的回归模型直接处理,将会出现不良后果,其观测也会失去意义,为此,我们必须先来诊断数据是否存在自相关,如果存在,就要考虑自相关关系,建立新的模型。
2.基本回归模型的建立
记该公司的行业销售额为xt,公司销售额为yt,t=1,2,……,n(=20)。因变量yt与自变量xt的散点图见图1。MATLAB绘图命令如下:
x=[127.3 130.0 132.7 129.4 135.0 137.1 141.2 142.8 145.5 145.3 148.3 146.4 150.2 153.1 157.3 160.7 164.2 165.6 168.7 171.7];
y=[20.96 21.40 21.96 21.52 22.39 22.76 23.48 23.66 24.10 24.01 24.54 24.30 25.00 25.64 26.36 26.98 27.52 27.78 28.24 28.78];
plot(x,y,'+')
从图1可以看出,随着行业销售额的增加,公司销售额也增大,而且两者有很强的线性关系,因此可以建立线性回归模型
(1)
模型(1)中除了行业销售额外,影响的其他因素的作用包含在随机误差内,这里假设(对t)相互独立,且服从均值为零的正态分布,t=1,2,……,n.
根据表1的数据,对模型(1)直接用MATLAB统计工具箱求解,得到的回归系数估计值及其置信区间(置信水平)、检验统计量R2,F,P的结果见表2。其中MATLAB命令如下(其中b是参数估计值、bint是置信区间、r是残差、stats检验统计量):
X=[ones(20,1),x];
[b,bint,r,rint,stats]=regress(y,X)
表2 模型(1)的计算结果
将参数估计值代入模型(1)得到
(2)
结果分析:表2显示,R2=1指因变量yt几乎100%可由模型确定,F值远远超过F检验的临界值,p远小于,可以计算剩余标准差仅为0.081。因而模型(2)从整体上看是可用的。
用MATLAB中rstool命令也可得到相应的结果,在rstool交互式画面中点击左下方的Export,可输出模型的统计结果,如剩余标准差s=0.081。如果求解的是纯二次模型或其他二次模型,只要在Export下方窗口的下拉菜单中选取即可。求解的MATLAB命令如下:
rstool(x,y,'linear');%产生的交互式画面见图2。
3.自相关性诊断与处理方法
从表面上看得到的基本模型(2)的拟合度非常之高(R2=1),应该很满意了。但是,这个模型没有考虑到我们的数据是一个时间序列。实际上,在对时间序列数据作回归分析时,模型的随机误差项有可能存在相关性。违背模型关于(对t)相互独立的基本假设。为了对的自相关性作定量诊断,并在确诊后得到新的结果,我们考虑如下模型:
(3)
其中是自相关系数,相互独立且服从均值为零的正态分布。
模型(3)中若,则退化为普通的回归模型;若,则随机误差存在正的自相关;若,则随机误差存在负的自相关。大多数与经济有关的时间序列数据,在经济规律作用下,一般随着时间的推移有一种向上或向下变动的趋势,其隨机误差表现出正相关性。
D—W检验是一种常用的诊断自相关现象的统计方法。首先根据模型(2)得到的残差,计算DW统计量如下:
(4)
其中n是观察值个数,残差为随机误差的估计值。当n较大时,
(5)
而(5)式右端正是自相关系数的估计值,于是
(6)
由于,所以,并且,若在0附近,则DW在2附近,的自相关性很弱;若在附近,则DW接近0或4,的自相关性很强。
要根据DW的具体数值确定是否存在自相关,应该在给定的检验水平下,依照样本容量和回归变量数目,查D—W分布表,得到检验的临界dL和dU,然后由表3中DW所在的区间来决定。
表3 与DW值对应的自相关状态
4.加入自相关后的模型
根据(4)式可计算出DW=0.7347,对于显著性水平,查D—W分布表,得到检验的临界值dL=0.95和dU=1.15,现在DW
[关键词] 时间序列 回归模型 D—W检验 MATLAB
一、问题提出
某公司(记为A)想用全行业的销售额作为自变量来预测公司的销售额,表1给出了1977年~1981年公司销售额和行业销售额的分季度数据(单位:百万元)。
表1A公司的公司销售额和行业销售额的分季度数据(单位:百万元)
二、问题分析及建立模型
1.问题分析
表1的数据是以时间序列为序的,称为时间序列。由于公司销售额和行业销售额等经济变量均有一定的滞后性,因此,在这样的时间序列数据中,同一变量的顺序观测值之间出现相关现象(称自相关)是很自然的。然而,一旦数据中存在这种自相关序列,如果仍采用普通的回归模型直接处理,将会出现不良后果,其观测也会失去意义,为此,我们必须先来诊断数据是否存在自相关,如果存在,就要考虑自相关关系,建立新的模型。
2.基本回归模型的建立
记该公司的行业销售额为xt,公司销售额为yt,t=1,2,……,n(=20)。因变量yt与自变量xt的散点图见图1。MATLAB绘图命令如下:
x=[127.3 130.0 132.7 129.4 135.0 137.1 141.2 142.8 145.5 145.3 148.3 146.4 150.2 153.1 157.3 160.7 164.2 165.6 168.7 171.7];
y=[20.96 21.40 21.96 21.52 22.39 22.76 23.48 23.66 24.10 24.01 24.54 24.30 25.00 25.64 26.36 26.98 27.52 27.78 28.24 28.78];
plot(x,y,'+')
从图1可以看出,随着行业销售额的增加,公司销售额也增大,而且两者有很强的线性关系,因此可以建立线性回归模型
(1)
模型(1)中除了行业销售额外,影响的其他因素的作用包含在随机误差内,这里假设(对t)相互独立,且服从均值为零的正态分布,t=1,2,……,n.
根据表1的数据,对模型(1)直接用MATLAB统计工具箱求解,得到的回归系数估计值及其置信区间(置信水平)、检验统计量R2,F,P的结果见表2。其中MATLAB命令如下(其中b是参数估计值、bint是置信区间、r是残差、stats检验统计量):
X=[ones(20,1),x];
[b,bint,r,rint,stats]=regress(y,X)
表2 模型(1)的计算结果
将参数估计值代入模型(1)得到
(2)
结果分析:表2显示,R2=1指因变量yt几乎100%可由模型确定,F值远远超过F检验的临界值,p远小于,可以计算剩余标准差仅为0.081。因而模型(2)从整体上看是可用的。
用MATLAB中rstool命令也可得到相应的结果,在rstool交互式画面中点击左下方的Export,可输出模型的统计结果,如剩余标准差s=0.081。如果求解的是纯二次模型或其他二次模型,只要在Export下方窗口的下拉菜单中选取即可。求解的MATLAB命令如下:
rstool(x,y,'linear');%产生的交互式画面见图2。
3.自相关性诊断与处理方法
从表面上看得到的基本模型(2)的拟合度非常之高(R2=1),应该很满意了。但是,这个模型没有考虑到我们的数据是一个时间序列。实际上,在对时间序列数据作回归分析时,模型的随机误差项有可能存在相关性。违背模型关于(对t)相互独立的基本假设。为了对的自相关性作定量诊断,并在确诊后得到新的结果,我们考虑如下模型:
(3)
其中是自相关系数,相互独立且服从均值为零的正态分布。
模型(3)中若,则退化为普通的回归模型;若,则随机误差存在正的自相关;若,则随机误差存在负的自相关。大多数与经济有关的时间序列数据,在经济规律作用下,一般随着时间的推移有一种向上或向下变动的趋势,其隨机误差表现出正相关性。
D—W检验是一种常用的诊断自相关现象的统计方法。首先根据模型(2)得到的残差,计算DW统计量如下:
(4)
其中n是观察值个数,残差为随机误差的估计值。当n较大时,
(5)
而(5)式右端正是自相关系数的估计值,于是
(6)
由于,所以,并且,若在0附近,则DW在2附近,的自相关性很弱;若在附近,则DW接近0或4,的自相关性很强。
要根据DW的具体数值确定是否存在自相关,应该在给定的检验水平下,依照样本容量和回归变量数目,查D—W分布表,得到检验的临界dL和dU,然后由表3中DW所在的区间来决定。
表3 与DW值对应的自相关状态
4.加入自相关后的模型
根据(4)式可计算出DW=0.7347,对于显著性水平,查D—W分布表,得到检验的临界值dL=0.95和dU=1.15,现在DW
- 作变量变换:
(7)
则模型(3)化为:
(8)
其中:
以的估计值代入(7)式作变换,利用变换后的数据估计模型(8)的参数,得到的结果见表4,可以得到其剩余标准差为0.067. 求解的MATLAB命令如下:
x1=zeros(19,1);y1=zeros(19,1);
for i=1:19
x1(i)=x(i+1)-0.6326*x(i);y1(i)=y(i+1)-0.6326*y(i);end
X1=[ones(19,1),x1];
[b,bint,r,rint,stats]=regress(y1,X1)
表4模型(8)的计算结果
对模型(8)也作一次自相关检验,即诊断随机误差是否还存在自相关,从模型(8)的残差可计算出,对于显著性水平以及时,检验的临界值为,故,所以可以认为随机误差不存在自相关。因此经变换(7)所得到的回归模型(8)是适用的。
最后,将模型(8)中的和还原为原始变量和,得到结果为:
(9)
三、结果分析及预测
从机理上看,对于带滞后性的经济规律作用下的时间序列数据,加入自相关的模型(9)更为合理,而且在本例中,衡量与实际数据拟合程序的指标——剩余标准差从模型(2)的0.081减少到0.0671。当用模型(9)对公司的销售额yt作预测时,先估计未来的全行业销售额xt,比如,设t=21时,xt=174.1,容易由模型(9)得到=29.1860。
参考文献:
[1]姜启源谢金星叶俊:数学模型(第三版)[M].北京:高等教育出版社,2003:316—322
[2]王向东戎海武文翰:数学实验[M].北京:高等教育出版社,2004:252—259
[3]徐国样:统计预测和决策(第二版)[M].上海:上海财经大学出版社,2005:61—169
注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”