中国GDP增长的数学模型及其分析与预测
摘要
1978 年11月,中国经济开始改革开放,之后中国经济持续高速发展达30年之久,让全世界瞩目。这30年中,中国经济增长成为世界第三大经济体。
国内生产总值(GDP)是现代国民经济核算体系的核心指标,是衡量一个国家综合国力的重要指标。
本文就1978年到2008年的生产总值(GDP)等相关统计数据,先建立了关于GDP增长
的回归预测模型.通过matlab编程计算, 本文判断出
234
15706y.3967 16126.7508x 6564.1066x 1124.7878x 95.8665x
567 4.1564x 0.0880x 0.0007x对现实数据的拟合效果最好,从而预测了2009年
到2018年的GDP总量,但是预测值与实际极度不符。
为了得到更好的预测结果 ,本文建立了ARIMA模型。 通过计算自相关函数和偏相关函数,确定取d=2。利用AIC准则定阶,取ARIMA(1,2,2)模型。计算得到2009年到2018年的GDP总量,通过与2009及2010的GDP总量比较,发现该模型短期预测精度是比较高的。
选取ARIMA模型预测的结果进行分析,预计中国GDP将继续保持增长,不过增长率缓慢下降。猜想:GDP年增长率最后将趋于稳定。 关键词:GDP;回归预测模型;ARIMA模型
引言
国内生产总值(Gross Domestic Product,简称GDP)是指在一定时期内(一个季度或一年),一个国家或地区的经济中所生产出的全部最终产品和劳务的价值,常被公认为衡量国家经济状况的最佳指标。它不但可反映一个国家的经济表现,更可以反映一国的国力与财富。
一般来说,国内生产总值共有四个不同的组成部分,其中包括消费、私人投资、政府支出和净出口额。用公式表示为:GDP CA I CB X。式中:CA为消费、I为私人投资、CB为政府支出、X为净出口额。
一个国家或地区的经济究竟处于增长抑或衰退阶段,从这个数字的变化便可以观察到。一般而言,GDP公布的形式不外乎两种,以总额和百分比率为计算单位。当GDP的增长数字处于正数时,即显示该地区经济处于扩张阶段;反之,如果处于负数,即表示该地区的经济进入衰退时期了。国内生产总值是指一定时间内所生产的商品与劳务的总量乘以“货币价格”或“市价”而得到的数字,即名义国内生产总值,而名义国内生产总值增长率等于实际国内生产总值增长率与通货膨胀率之和。因此,即使总产量没有增加,仅价格水平上升,名义国内生产总值仍然是会上升的。在价格上涨的情况下,国内生产总值的上升只是一种假象,有实质性影响的还是实际国内生产总值变化率,所以使用国内生产总值这个指标时,还必须通过GDP缩减指数,对名义国内生产总值做出调整,从而精确地反映产出的实际变动。因此,一个季度GDP缩减指数的增加,便足以表明当季的通货膨胀状况。如果GDP缩减指数大幅度地增加,便会对经济产生负面影响,同时也是货币供给紧缩、利率上升、进而外汇汇率上升的先兆。
一国的GDP大幅增长,反映出该国经济发展蓬勃,国民收入增加,消费能力也随之增强。在这种情况下,该国中央银行将有可能提高利率,紧缩货币供应,国家经济表现良好及利率的上升会增加该国货币的吸引力。反过来说,如果一国的GDP出现负增长,显示该国经济处于衰退状态,消费能力减低时,该国中央银行将可能减息以刺激经济再度增长,利率下降加上经济表现不振,该国货币的吸引力也就随之而减低了。因此,一般来说,高经济增长率会推动本国货币汇率的上涨,而低经济增长率则会造成该国货币汇率下跌。例如,1995-1999年,美国GDP的年平均增长率为4.1%,而欧元区11国中除爱尔兰较高外(9.0%),法、德、意等主要国家的GDP增长率仅为2.2%、1.5%和1.2%,大大低于美国的水平。这促使欧元自1999年1月1日启动以来,对美元汇率一路下滑,在不到两年的时间里贬值了30%。但实际上,经济增长率差异对汇率变动产生的影响是多方面的:
一是一国经济增长率高,意味着收入增加,国内需求水平提高,将增加该国的进口,从而导致经常项目逆差,这样,会使本国货币汇率下跌。
二是如果该国经济是以出口导向的,经济增长是为了生产更多的出口产品,则出口的增长会弥补进口的增加,减缓本国货币汇率下跌的压力。
三是一国经济增长率高,意味着劳动生产率提高很快,成本降低改善本国产品的竞争地位而有利于增加出口,抑制进口,并且经济增长率高使得该国货币在外汇市场上被看好,因而该国货币汇率会有上升的趋势。
在美国,国内生产总值由商务部负责分析统计,惯例是每季估计及统计一次。每次在发表初步预估数据(The Preliminary Estimates)后,还会有两次的修订公布(The First Revision & The Final Revision),主要发表时间在每个月的第三个星期。国内生产总值通常用来跟去年同期作比较,如有增加,就代表经济较快,有利其货币升
值;如减少,则表示经济放缓,其货币便有贬值的压力。以美国来说,国内生产总值能有3%的增长,便是理想水平,表明经济发展是健康的,高于此水平表示有通货压力;低于1.5%的增长,就显示经济放缓和有步入衰退的迹象。
国内生产总值(GDP)是指一个国家或地区所有常住单位在一定时期内生产活动的最终成果。这个指标把国民经济全部活动的产出成果概括在一个极为简明的统计数字之中,为评价和衡量国家经济状况、经济增长趋势及社会财富的经济表现提供了一个最为综合的尺度,可以说,它是影响经济生活乃至社会生活的最重要的经济指标。对其进行的分析预测具有重要的理论与现实意义。
本文以我国为例,建立数学模型,分析经济增长的内在特征。并对未来五年我国经济发展做出预测,为政府制定经济发展战略提供依据。
名词解释
GDP年增长率: 国内生产总值(GDP)增长率是指GDP的年度增长率,需用按可比价格计算的国内生产总值来计算。 GDP增长率是宏观经济的四个重要观测指标之一,(还有三个是失业率、通胀率和国际收支)。
DP-上期GDPGDP增长率的计算公式为:以1978年为基年,GDP年增长率 本期G 100%. 上期GDP
通过计算到表一的数据
表一 1978-2008年的GDP概况
数据分析
利用Matlab对表一中的数据进行处理,得到图1与图2
5
图1 GDP随
时间变化曲线
图2 GDP年增长率随时间变化曲线
GDP年增长率/%
GDP/亿元
时间/年
时间/年
观察图1可得,自1978年开始中国的GDP一直保存增长状态。
通过图二,从GDP的年增长率来看,GDP年增长率的变化真是太快了,GDP年增长率在1980年到1981年处于下降,1981年到1985年保持上升,经过1986年的下降,接下来两年又保持上升状态,然后又是两年下降,随后到1994年一直增长达到最大值,接着连续5年下降,于1999年达到谷底,最后一直到2008年GDP年增长率起起伏伏,但变化非常小,总体上保持增长状态。
模型的建立
回归分析模型[1]
模型简介
多项式回归模型为:
y b0 b1x b2x2 bNxN (1-1)
将数据点(xi,yi)(i 1,2,...,n)代入,有
yi b0 b1xi b2xi ... bnxi i ( i = 1 , 2 , , n ), (1-2)
式中b0,b1是未知参数, i为剩余残差项或随机扰动项,反映所有其他因素对因变量yi
的影响。
2
n
在运用回归方法进行预测时,要求满足一定的条件,其中最重要的是 i必须具备如下特征:1、 i是一个随机变量;2、 i的数学期望值为零,即E( i) 0;3、在每一个时期中, i的方差为一常量,即D( i) ;4、各个 i间相互独立;5、 i与自变量无关。
大多数情况下,假定 i N(0, )。 建立一元线性回归模型分以下步骤:
22
Step1、建立理论模型
针对某一因变量y,寻找适当的自变量,建立如(1-1)的理论模型
Step2、估计参数
运用普通的最小二乘法或其他方法评估参数b0和b1的值,建立如下的一元线性回归预测模型:
i b0 b1x i b2x i2 ... bnx in i ( i = 1 , 2 , , n ) (1-2) y
和b 分别是b,b的估计值。 这里b0101
如果是采用最小二乘法估计b0和b1的值,即时残差平方和(也称剩余平方和)
Q(b0,b1) yi (b0 b1xi)
2
ii 1
i 1
nn
2
达到最小, 令
Q Q
0, 0得 b0 b1
Sxy,b b (1-3) b10iSxx
n
1n1n
其中 xi, yi,Sxx (xi )
ni 1ni 1i 1
n
2
Sxy (xi )(yi )
i 1
Step3、进行检验
回归模型建立之后,能否用来进行实际预测,取决于它与实际数据是否有较好的拟合度,
模型的线性关系是否显著等。为此,在实际用来测量之前,还需要对模型进行一系列评价检验。
1、标准误差
标准误差是估计值与因变量值间的平均平方误差,其计算公式为:
S
(1-4)
它可以用来衡量拟合优度。 2、判定系数R
判定系数R是衡量拟合优度的一个重要指标,它的取值介于0与1之间,其计算公式为:
22
R2 1
) (y y
i
i
n
2
(y )
i
i 1
i 1
n
(1-5)
2
R2越接近于1,拟合程度越好;反之越差。
3、相关系数
相关系数是一个用于测定因变量与自变量之间线性相关程度的指标,其计算公式为
r
(x )(y )
i
i
n
2
(1-6)
相关系数r与判定系数R之间存在关系式:
r
但两者的概念不同,判定系数R用来衡量拟合优度,而相关系数r用来判定因变量与自变量之间的线性相关程度。
相关系数的数值范围是 1 r 1,当r 0时,称x与y正相关;当r 0时,称x与y负相关;当r 0时,称x与y不相关;当r 1,称x与y完全相关,r越接近于1,相当程度越高。
相关系数的显著性检验,简称相关检验,它是用来判断y与x是否显著线性相关的。
相关检验要利用相关系数表,步骤如下:
首先计算样本相关系数r值。然后根据给定的样本容量n和显著性水平a查相关系数表,得临界值ra,最后进行检验判断:
2
若r ra,则x与y有显著的线性关系;若r ra,则x与y的线性相关关系不显著
4、回归系数显著性检验
回归系数的显著性检验可用t检验法进行,令
tb1
b1
(1-7) Sb1
tb1 t(n 2),
其中
Sb1
取显著性水平 (Pt ta) ),若tb1 ta,则回归系数b1显著,此检验对常数项亦适用。
5、F检验
统计量
F
) (y
i
i 1i
n
2
) (y y
i
i 1
n
(1-8)
2
n 2)
服从F(1,n 2)分布,取显著性水平 .若F F,则表明回归模型显著;( 1,n-2)如果F F (1,n 2),则表明回归模型不显著,改回归模型不能用于预测。 6、DW统计量
DW统计量是用来检验回归模型的剩余项 i之间是否存在自相关的一种十分有效的
方法。
DW
(
i 2
n
2
)ii 1
i 1
n
(1-9)
2i
i 式中 i yi y
将利用式(1-9)计算而得到的DW值与不同显著性水平 下的DW值之上限d 和下限进行比较,来确定是否存在自相关。DW值应在0 4之间。
当DW值小于或等于2时,DW检验法则规定: 如果DW dl,则认为 i存在正自相关;
如果DW d ,则认为 i无自相关;
如果dl DW d ,则不能确定 i是否有自相关。
当DW值大于2时,DW检验法则规定: 如果4 DW dl,则认为 i存在负自相关; 如果4 DW d ,则认为 i无自相关;
如果dl 4 DW d ,则不能确定 i是否有自相关
根据经验,DW统计量的值在1.5 2.5之间时表示没有显著自相关问题。 以上检验可利用统计软件包进行回归时同时完成
Step4、进行预测
预测可分为点预测和区间预测两类,在一元线性回归中,所谓点预测,就是当给定
x x0时,利用样本回归方程求出相应的样本拟合值y0 b0 b1x0,以此作为因变量个别
值y0和其均值E(y0)的估计。
区间预测是给出一个在一定概率保证程度下的预测置信区间。
进行区间预测,首先要进行点预测,确定x0的值,求得y0的预测值y0。 y0的置信度为100(1 )%的预测区间的端点为:
y0 t Sc0 (1-10)
其中,S为标准偏差,t0可由t分布表查得,其自由度为n 2,满足P(t t ) ,而
1
c0
n
x x x x
2
0n
i
i 1
2
ARIMA模型建模步骤
数据平稳化处理[2]
首先要对时间序列数据进行平稳性检验。可以通过时间序列的散点图或折线图对序列进行初步的平稳性判断。一般采用ADF单位根检验来精确判断该序列的平稳性。对非平稳的时间序列,我们可以先对数据进行取对数或进行差分处理,然后判断经处理后序列的平稳性。重复以上过程,直至成为平稳序列。此时差分的次数即为 ARIMA p,d,q 模型中的阶数
d。从理论上而言,足够多次的差分运算可以充分地提取序列中的非平稳确定性信息。但应
当注意的是,差分运算的阶数并不是越多越好。因为差分运算是一种对信息的提取、加工过程,每次差分都会有信息的损失,所以在实际应用中差分运算的阶数要适当,应当避免过度差分,简称过差分的现象。一般差分次数不超过2次。
数据平稳化处理后,ARIMA p,d,q 模型即转化为ARMA p,q 模型。
模型识别
我们引入自相关系数和偏自相关系数这两个统计量来识别ARMA p,q 模型的系数特点和模型的阶数。若平稳序列的偏相关函数是截尾的,而自相关函数是拖尾的,可断定序列适合AR模型;若平稳序列的偏相关函数是拖尾的,而自相关函数是截尾的,则可断定序列适合MA模型;若平稳序列的偏相关函数和自相关函数均是拖尾的,则序列适合ARMA模型。自相关函数成周期规律的序列,可选用季节性乘积模型。自相关函数规律复杂的序列,可能需要作非线性模型拟合。
在平稳时间序列自相关函数和偏自相关函数上初步识别ARMA模型阶数p和q,然后利用AIC定则准确定阶。AIC准则:最小信息准则,同时给出ARMA模型阶数和参数的最佳估计,适用于样本数据较少的问题。目的是判断预测目标的发展过程与哪一随机过程最为接近。因为只有当样本量足够大时,样本的自相关函数才非常接近母体的自相关函数。具体运用时,在规定范围内使模型阶数从低到高,分别计算AIC值,最后确定使其值最小的阶数是模型的合适阶数。关于ARMA p,q 模型,AIC函数定义如下:
[3]
AIC nlog 2 2 p q
式中:n平稳序列为样本数, 为拟合残差平方和,p,q为参数。 AIC准则定阶方法可写为:
2
AIC p,q minAIC k,l
k,l
0 k M,0 l H
其中:M,N为ARMA模型阶数的上限值,一般取为根号n或n/10。实际应用中p,
q一般不超过2。 参数估计
确定模型阶数后,应对ARMA模型进行参数估计。本文采用最小二乘法OLS进行参数估计,需要注意的是,MA模型的参数估计相对困难,应尽量避免使用高阶的移动平均模型或包含高阶移动平均项的ARMA模型。
模型检验[4]
完成模型的识别与参数估计后,应对估计结果进行诊断与检验,以求发现所选用的模型是否合适。若不合适,应该知道下一步作何种修改。这一阶段主要检验拟合的模型是否合理。一是检验模型参数的估计值是否具有显著性;二是检验模型的残差序列是否为白噪声。参数估计值的显著性检验是通过t检验完成的Q检验的零假设是H0: 1 2 k即模型
的误差项是一个白噪声过程。Q 近似服从
2
统计量定义为Q T T 2
k p q 分布,其中T表示样本容量,rk表示用残差序列计算的自相
关系数值,k表示自相关系数的个数,p表示模型自回归部分的最大滞后值,q表示移动平均部分的最大滞后值。用残差序列计算Q统计量的值。显然若残差序列不是白噪声,残差序列中必含有其他成份,自相关系数不等于零。则Q值将很大,反之Q值将很小。判别规则是:
若Q k p q ,则接受H0。
2
若Q k p q ,则拒绝H0。
2
其中 表示检验水平。
模型求解
回归分析模型的模型求解
从图1中我们大致可以确定该图与幂函数多项式的图象较为相近,所以我们建立了多
项式模型,运用matlab计算得到表二
根据多项式模型的检验方法,二次,三次及四次多项式大部分指标差别不大,拟合效果比较差,从五次到七次多项式拟合效果越来越好,到八次多项式F值突然减小,造成拟合效果下降,于是本文选择了七次多项式来拟合。
利用matlab统计工具求解,得到回归系数估计值及置信区间(置信水平 =0.05)见
表三
于是得到回归方程
234
15706 y.3967 16126.7508x 6564.1066x 1124.7878x 95.8665x
4.1564x 0.0880x 0.0007x (其中x表示具体年度减去1977) 绘图如图3
567
5
图3 GDP随时间变化曲线
GDP总量
51015
时间
20253035
由图3,我们可以进一步确定拟合效果非常好。
根据所求得的函数关系式,我们对未来10年对相关书籍的产量进行了预测,预测结果见表四所示:
表四 GDP预测值
ARIMA模型求解
通过计算自相关函数和偏相关函数,确定取d=2。利用AIC准则对表五定阶,取ARIMA(1,2,2)模型。计算得
表六
模型评价
从网上查的2009年和2010年的GDP总量分别为341401.5亿元,403260.0亿元。 比较多项式回归模型和ARIMA模型的预测结果,可以得到ARIMA模型的预测结果比多项式回归模型好,而且短期预测精度是比较高的。
当然国内生产总值是国民经济的核心内容,经济状况几乎要牵涉到经济体系中的所有,如此复杂的过程并非靠简单的一个或多个变量来决定,权衡的因素繁多。因此,本文还有许多不足之处,会在以后的学习工作中将其不断完善。
结果分析
根据ARIMA模型预测的表六数据,计算出2010年到2018年的GDP年增长率如表七
利用matlab绘图
图4 GDP年增长率随时间变化曲线
2010
2011
2012
2013
2014时间/年
2015
2016
2017
2018
%
由图4可得,预计中国GDP将继续保持增长,不过增长率缓慢下降。 猜想:GDP年增长率最后将趋于稳定。
参考文献
[1]姜启源,谢金星.数学模型[M].北京:高等教育出版社,2003.
[2]张树京,齐立心.时间序列分析简明教程[M].北京:清华大学出版社,2003:5-15.
[3]徐国祥.统计预测和决策(第二版)[M].上海:上海财经大学出版社,2005:148-149. [4]易丹辉.统计预测2方法与应用[M].北京:中国统计出版社,2001:177- 251.
附录
%%图1
x=1978:2008;
y=[3624.1,4038.2 ,4517.8 ,4862.4,5294.7,5934.5,7171.0,8964.4,10202.2 ,11962.5 ,14928.3 ,16909.2 ,18547.9 ,21617.8 ,26638.1 ,35334.0 ,48198.0 ,60794.0 ,71176.6 ,78973.0 ,84402.3 ,89677.1 ,99214.6 ,109655.2 ,120332.7 ,135822.8 ,159878.3 ,183217.4 ,211923.5 ,257305.6 ,314045.0 ]; plot(x, y,'-+');
title('图1 GDP随时间变化曲线'); xlabel('时间/年'); ylabel('GDP/亿元'); %%图2
t=[11.4000000000000,11.9000000000000,7.60000000000000,8.90000000000000,12.1000000000000,20.9000000000000,25,13.8000000000000,17.3000000000000,24.8000000000000,13.3000000000000,9.70000000000000,16.6000000000000,23.2000000000000,32.6000000000000,36.4000000000000,26.1000000000000,17.1000000000000,11,6.90000000000000,6.20000000000000,10.6000000000000,10.5000000000000,9.70000000000000,12.9000000000000,17.7000000000000,14.6000000000000,15.7000000000000,21.4000000000000,22.1000000000000];
n=1979:2008; plot(n,t,'-o');
title('图2 GDP年增长率随时间变化曲线'); xlabel('时间/年');
ylabel('GDP年增长率/%');
set(gca,'Xtick',[1979:3:2008]);
回归预测
V=[3624.1,4038.2 ,4517.8 ,4862.4,5294.7,5934.5,7171.0,8964.4,10202.2 ,11962.5 ,14928.3 ,16909.2 ,18547.9 ,21617.8 ,26638.1 ,35334.
0 ,48198.0 ,60794.0 ,71176.6 ,78973.0 ,84402.3 ,89677.1 ,99214.6 ,109655.2 ,120332.7 ,135822.8 ,159878.3 ,183217.4 ,211923.5 ,257305.6 ,314045.0 ]'; c =1:31; R=c';
x = [ones( size( R ) ), R, R.^2,R.^3,R.^4,R.^5,R.^6,R.^7]; alpha = 0.05;
[b, bint, r, rint, stat] = regress(V, x, alpha); n = 1000;
t = linspace( min(R), max(R), n); y = polyval( fliplr( b' ), t );
% y = b(1) + b(2) * t + b(3) * t.^2; figure;
plot(t, y,'-',R,V,'+');
title('图3 GDP随时间变化曲线'); xlabel('时间'); ylabel('GDP总量');
legend('拟合值','实际值'); AMIRM模型源代码
a=[3624.1,4038.2 ,4517.8 ,4862.4,5294.7,5934.5,7171.0,8964.4,10202.2 ,11962.5 ,14928.3 ,16909.2 ,18547.9 ,21617.8 ,26638.1 ,35334.0 ,48198.0 ,60794.0 ,71176.6 ,78973.0 ,84402.3 ,89677.1 ,99214.6 ,109655.2 ,120332.7 ,135822.8 ,159878.3 ,183217.4 ,211923.5 ,257305.6 ,314045.0 ]; r11=autocorr(a); r12=parcorr(a); da=diff(a);
r21=autocorr(da); r22=parcorr(da); n=length(da); for i=0:3 for j=0:3
spec=garchset('R',i,'M',j,'Display','off'); [coeffX,errorsX,LLFX]=garchfit(spec,da); num=garchcount(coeffX);
[aic,bic]=aicbic(LLFX,num,n);
fprintf('R=%d,M=%d,AIC=%f,BIC=%f\n',i,j,aic,bic); end end
r=input('R='); m=input('M=');
spec2=garchset('R',r,'M',m,'Display','off'); [coeffX,errorsX,LLFX]=garchfit(spec2,da);
[sigmaForecast,w_Forecast]=garchpred(coeffX,da,10);
x_pred=a(end)+cumsum(w_Forecast); 图4
x=2010:2018; y=[0.164750791 0.144006536 0.128116248 0.115549596 0.105358526 0.096924374 0.08982624 0.083767808 0.078534426]'; plot(x, y,'-+');
title('图1 GDP年增长率随时间变化曲线'); xlabel('时间/年'); ylabel('%');