公司的销售额预测
一、问题重述
某公司想用全行业的销售额作为自变量来预测公司的销售量,下表给出了1977—1981年公司的销售额和行业销售额的分季度数据(单位:百万元)
表1 公司的公司销售额和行业销售额的分季度数据(单位:百万元)
(1)画出数据的散点图,观察用线性回归模型拟合是否合适.
(2)建立公司销售额对全行业的回归模型,并用DW检验诊断随机误差项的自相关性.
(3) 建立消除了随机误差项自相关性之后的回归模型.
二、问题分析与假设
销售收入预测的方法主要有时间序列法、因果分析法和本量利分析法等.
时间序列法,是按照时间的顺序,通过对过去几期实际数据的计算分析,确定预测期产品销售收入的预测值.
表1 的数据是以时间顺序为序列的,称为时间序列.由于公司销售额和行业销售额等经济变量均有一定的滞后性,因此,在这样的时间序列数据中,同一变量的顺序观测值之间出现相关现象是很自然的.然而,一旦数据中存在这种自相关序列,如果仍采用普通的回归模型直接处理,将会出现不良后果,其观测也会失去意义,为此,我们必须先来检验数据是否存在自相关,一旦存在,就要考虑自相关关系,建立新的模型.
定义与符号说明
三、模型建立与求解
一、基本统计回归模型建立
以行业销售额为自变量、以公司销售额为因变量的散点图,其中
图1 对的散点图
从图1可以看出,随着行业销售额的增加,公司销售额也增加,而且两者有很强的线性关系,因此可以建立线性回归模型
,为随机误差
假设与是相互独立的,且服从均值为零的正态分布.
由表1的数据以及上述线性回归模型的假设,进行数据处理,得到回归系数估计值及其置信区间和检验统计量,见表2.
表2 模型的计算结果
将参数估计值代入得到,
由表2知,几乎处处可由确定.用作出其交互式画面,由此可以给出不同水平下的预测值及其置信区间,通过左方的下拉式菜单,可以输出模型的统计结果,见图2.
图2 回归分析中的交互式画面
二、自相关性的判别
我们可以看到模型的拟合度很高(),即可认为可由模型确定.但此模型并未考虑到我们的数据是一个时间序列.在对时间序列数据做回归分析时,模型的随机误差项可能存在相关性,违背于模型对独立的基本假设.现在我们考虑如下模型:
其中是自相关系数,,相互独立且服从均值为0的正态分布.
模型中,若,则退化为普通的回归模型;若,则随机误差存在正的自相关;若,则随机误差存在负的自相关.大多数与经济有关的时间序列数据,在经济规律作用下,一般随着时间的推移有一种向上或向下的变动趋势,其随机误差表现出正相关性.
检验是一种常用的诊断自相关现象的统计方法.首先根据模型得到的残差,计算统计量如下:
其中是观察值个数,残差为随机误差项的估计值.当较大时,
而式的右端正是自相关系数的估计值,于是
由于,所以,并且若在0附近时,则在2附近,的自相关性很弱(或不存在自相关性);若在附近时,则在0或4附近,的自相关性很强.
要根据的具体数值来确定是否存在自相关性,应该在给定的检验水平下依照样本容量和回归变量数目,查分布表,得到检验的临界和,然后由表3中所在的区间来决定.
表3 与值相对应的自相关状态
三、加入自相关后的模型
根据式可计算出,对于显著性水平,查分布表,得到检验的临界值和,现在,由表3可以认为随机误差存在正自相关,且的估计值可由式得.
作变换,
,,
则模型化为
,其中,
以的估计值代入式作变换,利用变换后的数据、估计模型的参数,得到的结果见表4,可以得到其剩余标准差为0.067.
表4 模型的计算结果
对模型也做一次自相关检验,即诊断随机误差是否还存在自相关,从模型的残差可计算出,对于显著性水平以及时,检验的临界值为,故,所以可以认为随机误差不存在自相关.因此经变换得到的回归模型是适用的.
最后,将模型中的和还原为原始变量和,得到结果为:
四、结果分析与预测
从机理上看,对于带滞后性的经济规律作用下的时间序列数据,加入自相关的模型更为合理,而且在本例中,衡量与实际数据拟合程序的指标——剩余标准差从模型的0.081减少到0.0671.当用模型对公司的销售额作预测时,先估计未来的全行业销售额,比如,设t=21时,=174.1,容易由模型得到=29.1860.
四、模型的评价
一、模型的优点
经检验认为普通回归模型的随机误差存在自相关,由,式估计出自相关系数后,采用变换的方法得到模型,成称为广义差分法.这种方法消除了原模型随机误差的自相关性,得到的式是一阶自相关模型.
二、模型的缺点
检验和广义差分法在经济数据建模中有着广泛的应用,但是也存在着明显的不足:若的数值落在无法确定自相关性的区间,则只能设法增加数据量,或选用其他方法;如果原始数据序列存在高阶自相关性,则需要反复使用检验和广义差分,直至判定不存在自相关为止.另外,分布表中数据容量的下限是15.
参考文献
[1] 徐金明,张孟喜,丁涛,《》,北京:清华大学出版社;北京交通大学出版社,2005.7(2007.8重印).
[2]. 姜启源,谢金星、叶俊,《数学模型(第四版)》,北京:高等教育出版社,20011.1(2012.5重印).
附录
1. 散点图的程序
clear;
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,'*')
2.模型(1)的计算程序
clear;
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]’;
x=[ones(20,1),x];
[b,bint,r,rint,stats]=regress(y,x)
输出结果:
b =
-1.45475004139634
0.176282811457384
bint =
-1.90465420468789 -1.00484587810479
0.173247525367995 0.179318097546773
r =
-0.0260518571286674
-0.0620154480636046
0.0220209610014628
0.163754238810824
0.046570494649476
0.0463765905889701
0.043617063613695
-0.058435434718124
-0.0943990256530576
-0.149142463361581
-0.147990897733738
-0.0530535559647056
-0.0229282395027646
0.105851607270822
0.0854637991498031
0.106102240194701
0.0291124000938581
0.0423164640535205
-0.0441602514643726
-0.0330086858365206
rint =
-0.195385871759251 0.143282157501916
-0.231871886037631 0.107840989910421
-0.152853753861225 0.19689567586415
0.0131634673388031 0.314345010282846
-0.128820728276878 0.22196171757583
-0.130374632908482 0.223127814086423
-0.135221944162416 0.222456071389806
-0.236666572408848 0.119795702972601
-0.26910531130757 0.0803072600014548
-0.313617420748614 0.0153324940254506
-0.31288219186159 0.0169003963941133
-0.232314787682902 0.126207675753491
-0.203701178032592 0.157844699027063
-0.0664228030147936 0.278126017556437
-0.0879446576592735 0.25887225595888
-0.0620923905849254 0.274296870974328
-0.144034956949209 0.202259757136925
-0.128748679311955 0.213381607418996
-0.211614739705066 0.123294236776321
-0.197152337494454 0.131134965821413
stats =
Columns 1 through 3
0.998792444207198 14888.1435565111 1.01315527327091e-027
Column 4
0.00740568340707954
3. 散点图的交互式程序
clear;
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]’;
rstool(x,y,'linear')
4.模型(2)的残差
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]’;
for i=1:1:20
z(i)=-1.45475+0.17628*x(i);
e(i)=y(i)-z(i);
end
z
e
输出结果:
z =
Columns 1 through 3
20.985694 21.46165 21.937606
Columns 4 through 6
21.355882 22.34305 22.713238
Columns 7 through 9
23.435986 23.718034 24.19399
Columns 10 through 12
24.158734 24.687574 24.352642
Columns 13 through 15
25.022506 25.533718 26.274094
Columns 16 through 18
26.873446 27.490426 27.737218
Columns 19 through 20
28.283686 28.812526
e =
Columns 1 through 3
-0.0256939999999979 -0.0616500000000002 0.0223940000000056
Columns 4 through 6
0.164118000000002 0.0469500000000025 0.0467620000000046
Columns 7 through 9
0.0440140000000042 -0.0580339999999993 -0.093989999999998
Columns 10 through 12
-0.148733999999997 -0.147574000000002 -0.0526419999999987
Columns 13 through 15
-0.0225059999999964 0.106282000000004 0.0859059999999978
Columns 16 through 18
0.106554000000003 0.0295740000000038 0.0427820000000025
Columns 19 through 20
-0.0436859999999974 -0.0325259999999936
5.计算DW和
e =[-0.0256939999999979
-0.0616500000000002
0.0223940000000056
0.164118000000002
0.0469500000000025
0.0467620000000046
0.0440140000000042
-0.0580339999999993
-0.093989999999998
-0.148733999999997
-0.147574000000002
-0.0526419999999987
-0.0225059999999964
0.106282000000004
0.0859059999999978
0.106554000000003
0.0295740000000038
0.0427820000000025
-0.0436859999999974
-0.0325259999999936];
s=0;
for t=2:1:20
s=s+(e(t)-e(t-1))^2;
end
m=0;
for i=1:1:20
m=m+e(i)^2;
end
DW=s/m
p=1-1/2*DW
输出结果:
DW =
0.734645539224993
p =
0.632677230387503
6.模型(3)中的数据变换
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]’;
p=0.63268
for t=1:1:19
y1(t)=y(t+1)-p*y(t);
x1(t)=x(t+1)-p*x(t);
end
y1
x1
输出结果:
p =
0.63268
y1 =
Columns 1 through 3
8.1390272 8.420648 7.6263472
Columns 4 through 6
8.7747264 8.5942948 9.0802032
Columns 7 through 9
8.8046736 9.1307912 8.762412
Columns 10 through 12
9.3493532 8.7740328 9.625876
Columns 13 through 15
9.823 10.1380848 10.3025552
Columns 16 through 18
10.4502936 10.3686464 10.6641496
Column 19
10.9131168
x1 =
Columns 1 through 3
49.459836 50.4516 45.443364
Columns 4 through 6
53.131208 51.6882 54.459572
Columns 7 through 9
53.465584 55.153296 53.24506
Columns 10 through 12
56.371596 52.573556 57.575648
Columns 13 through 15
58.071464 60.436692 61.179436
Columns 16 through 18
62.528324 61.713944 63.928192
Column 19
64.966884
7.模型(3)的计算结果
y1 =[8.1390272
8.420648
7.6263472
8.7747264
8.5942948
9.0802032
8.8046736
9.1307912
8.762412
9.3493532
8.7740328
9.625876
9.823
10.1380848
10.3025552
10.4502936
10.3686464
10.6641496
10.9131168];
x1 =[49.459836
50.4516
45.443364
53.131208
51.6882
54.459572
53.465584
55.153296
53.24506
56.371596
52.573556
57.575648
58.071464
60.436692
61.179436
62.528324
61.713944
63.928192
64.966884];
x2=[ones(19,1),x1];
[b,bint,r,rint,stats]=regress(y1,x2)
输出结果:
b =
-0.391413728791626
0.173739484728835
bint =
-0.743959505289538 -0.0388679522937137
0.167481672152938 0.179997297304732
r =
-0.0626854926210676
0.0466267410463246
0.122454283086727
-0.0648485721489394
0.00542729423064792
0.00983895095872533
-0.0929956860946302
-0.060100299345299
-0.0969435599642878
-0.0532051135904403
0.0313439989890654
0.0141263123428352
0.125107495982524
0.0292588019963098
0.0646852421508761
-0.0219314639260322
0.0379112976474367
-0.0512878089344184
0.0172175781936197
rint =
-0.194112737017012 0.0687417517748767
-0.0885336593085636 0.181787141401213
0.0161292648746043 0.228779301298849
-0.201462271956211 0.0717651276583323
-0.133792997199822 0.144647585661118
-0.131797031575754 0.151474933493204
-0.225302669864897 0.0393112976756366
-0.1985101568317 0.0783095581411017
-0.228268383451548 0.0343812635229727
-0.192519727444524 0.0861095002636433
-0.107973506382257 0.170661504360388
-0.127481451736758 0.155734076422428
-0.000122557504840748 0.250337549469889
-0.109224013348295 0.167741617340915
-0.0693312030770827 0.198701687378835
-0.157373208239308 0.113510280387243
-0.0980543981169386 0.173876993411812
-0.181348373667138 0.0787727557983009
-0.112564188002673 0.146999344389912
stats =
Columns 1 through 3
0.995069834050953 3431.15979334042 4.68398711682588e-021
Column 4
0.00450814925050438
8.模型(3)的残量
clear;
y1 =[8.1390272
8.420648
7.6263472
8.7747264
8.5942948
9.0802032
8.8046736
9.1307912
8.762412
9.3493532
8.7740328
9.625876
9.823
10.1380848
10.3025552
10.4502936
10.3686464
10.6641496
10.9131168];
x1 =[49.459836
50.4516
45.443364
53.131208
51.6882
54.459572
53.465584
55.153296
53.24506
56.371596
52.573556
57.575648
58.071464
60.436692
61.179436
62.528324
61.713944
63.928192
64.966884];
for i=1:1:19
z(i)=-0.39141+0.17374*x1(i);
e(i)=y1(i)-z(i);
end
z
e
输出结果:
z =
Columns 1 through 3
8.20174190664 8.374050984 7.50392006136
Columns 4 through 6
8.83960607792 8.588897868 9.07039603928
Columns 7 through 9
8.89770056416 9.19092364704 8.8593867244
Columns 10 through 12
9.40259108904 8.74271961944 9.61178308352
Columns 13 through 15
9.69792615536 10.10886086808 10.23790521064
Columns 16 through 18
10.47226101176 10.33077063056 10.71547407808
Column 19
10.89593642616
e =
Columns 1 through 3
-0.0627147066400013 0.0465970159999998 0.122427138639998
Columns 4 through 6
-0.0648796779199987 0.00539693200000002 0.00980716071999943
Columns 7 through 9
-0.0930269641599999 -0.0601324470399991 -0.0969747244000008
Columns 10 through 12
-0.05323788904 0.0313131805599998 0.0140929164799992
Columns 13 through 15
0.125073844640001 0.0292239319199989 0.0646499893599994
Columns 16 through 18
-0.0219674117599986 0.0378757694399994 -0.0513244780799997
Column 19
0.0171803738400005
9.求模型(3)的DW值
e =[-0.0627147066400013
0.0465970159999998
0.122427138639998
-0.0648796779199987
0.00539693200000002
0.00980716071999943
-0.0930269641599999
-0.0601324470399991
-0.0969747244000008
-0.05323788904
0.0313131805599998
0.0140929164799992
0.125073844640001
0.0292239319199989
0.0646499893599994
-0.0219674117599986
0.0378757694399994
-0.0513244780799997
0.0171803738400005];
s=0;
for t=2:1:19
s=s+(e(t)-e(t-1))^2;
end
m=0;
for i=1:1:19
m=m+e(i)^2;
end
DW=s/m
输出结果:
DW =
1.6519922652328