针对现实世界中普遍存在的振荡序列建模、预测问题,本文在原有的指数曲线模型的基础上提出带有振荡项的新型指数曲线模型。针对模型本身的特点,采用最小二乘法给出了系统参数满足的最优化问题。在此基础上,借助Matlab软件包求解出系统参数的具体取值,并将模型应用于中国一次能源消费。建模的结果与经典的指数曲线、修正的指数曲线进行比较,计算结果表面振荡型的指数曲线在中国一次能源消费问题上有更高的精度。 Aiming at modelling and prediction for oscillation sequences which exist widely in the real world, this paper proposes a new type of exponential curve model with oscillation term based on the classical exponential curve model. With the characteristics of the model and the least squares es-timation method, an optimization problem is developed to evaluate the system parameters. Based on this problem, the Matlab software is used to solve the optimization problem to obtain the system parameters. Further, the model is applied to forecast the China’s primary energy consumption. The computational results are compared with the classical exponential curve and the modified exponential curve, and it shows the oscillating exponential curve has higher accuracy in China’s primary energy consumption.
谭生源
成都信息工程大学,计算机学院,四川 成都
收稿日期:2019年4月16日;录用日期:2019年4月30日;发布日期:2019年5月7日
针对现实世界中普遍存在的振荡序列建模、预测问题,本文在原有的指数曲线模型的基础上提出带有振荡项的新型指数曲线模型。针对模型本身的特点,采用最小二乘法给出了系统参数满足的最优化问题。在此基础上,借助Matlab软件包求解出系统参数的具体取值,并将模型应用于中国一次能源消费。建模的结果与经典的指数曲线、修正的指数曲线进行比较,计算结果表面振荡型的指数曲线在中国一次能源消费问题上有更高的精度。
关键词 :指数曲线,振荡型,最小二乘法,一次能源消费
Copyright © 2019 by author(s) and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
在英国石油公司(British Petroleum) 2018年的世界能源统计年鉴 [
在对数据预测分析中,指数曲线 [
振荡序列预测问题是现实世界里广泛存在的一类比较复杂的问题,如能源消费与需求、应急资源需求预测、新产品销售预测等。在上述文献和文献 [
由文献 [
Y t = a b t 。 (1)
为了估计参数 a , b ,在手工计算中,一般首先将两端取对数,得
ln Y t = ln a + t ln b 。 (2)
然后运用最小二乘法和方程(2),得到如下方程
{ ∑ ln Y = n ln a + ( ∑ t ) ln b ∑ t ln Y = ( ∑ t ) ln a + ( ∑ t 2 ) ln b ,(3)
估计出参数 ln a 和 ln b ,再取反对数,即可得到参数 a 、 b 的估计值。
在经典指数曲线的基础上增加一个常数 K ,即得到修正指数曲线方程
Y t = a b t + K , (4)
其中, K 、 a 、 b 为未知参数,
参数 K 、 a 、 b 估计的基本思想是三和法:把整个时间序列分成相等的三个数组,每个组有 m 项,根据趋势值 Y t 的三个局部总和分别等于原数列观察值 Y t 的三个局部总和来确定三个参数。具体为:设观察值的三个局部总和分别为 S 1 、 S 2 、 S 3 ,得
S 1 = ∑ t = 0 m − 1 Y t , S 2 = ∑ t = m 2 m − 1 Y t , S 2 = ∑ t = 2 m 3 m − 1 Y t 。 (5)
由三和法得到如下方程
{ S 1 = m K + a + a b + a b 2 + ⋯ + a b m − 1 S 2 = m K + a b m + a b m + 1 + ⋯ + a b 2 m − 1 S 3 = m K + a b 2 m + a b 2 m + 1 + ⋯ + a b 3 m − 1 。 (6)
通过方程(6)解得
{ b = ( S 3 − S 2 S 2 − S 1 ) 1 m a = ( S 2 − S 1 ) b − 1 ( b m − 1 ) 2 K = 1 m ( S 1 − a ( b m − 1 ) b − 1 ) 。 (7)
在上面指数模型的基础上,本文提出振荡型的新型指数曲线,其一般方程为
Y t = a b t + c t + d + r sin ( t ) ,(8)
相比于经典的指数模型和修正的模型,最大的一点是引入 r sin ( t ) 部分以描述系统行为对序列的振荡性影响。但是,振荡型指数曲线带有5个未知参数,且方程(8)本身为非线性函数。所以,在对参数的估计时采用的是最小二乘法。
令原始序列为 X = ( x ( 1 ) , x ( 2 ) , ⋯ , x ( n ) ) , n ≥ 5 。取序列前面的 m 个数据来求解最优的系统参数 a ^ , b ^ , c ^ , d ^ , r ^ 。事实上,将得到的最优参数带入方程(8)有
{ Y 1 = a ^ b ^ + c ^ + d ^ + r ^ sin ( 1 ) , Y 2 = a ^ b ^ 2 + 2 c ^ + d ^ + r ^ sin ( 2 ) , ⋮ Y m = a ^ b ^ m + m c ^ + d ^ + r ^ sin ( m ) . (9)
为此,构造如下的最优化目标函数
S = min a , b , c , d , r ∑ i = 1 m { x ( 1 ) − ( a b i + c i + d + r sin ( i ) ) } 2 。(10)
利用高等数学中多元函数极值问题的求解思路,对方程(10)关于系统参数求一阶导数,可得到如下的方程组
{ ∂ S ∂ a = ∑ i = 1 m { x ( 1 ) − ( a b i + c i + d + r sin ( i ) ) } b i = 0 , ∂ S ∂ b = ∑ i = 1 m { x ( 1 ) − ( a b i + c i + d + r sin ( i ) ) } a i b i − 1 = 0 , ∂ S ∂ c = ∑ i = 1 m { x ( 1 ) − ( a b i + c i + d + r sin ( i ) ) } i = 0 , ∂ S ∂ d = ∑ i = 1 m { x ( 1 ) − ( a b i + c i + d + r sin ( i ) ) } = 0 , ∂ S ∂ r = ∑ i = 1 m { x ( 1 ) − ( a b i + c i + d + r sin ( i ) ) } sin ( i ) = 0. (11)
对于方程(11),求解系统参数的解析解几乎是一件不可能的事情。基于此,我们借助数值计算方法的Levenberg-Marquardt算法进行求解。一旦得到系统最优参数的取值,则可用模型对具体的序列进行建模、预测分析。在上述求解中,关于m值的选取并没有统一的标准,一般根据所建立的优化目标函数来确定。对于不同的问题,不同的优化目标函数,m值的选取是不一样的,但总的原则就是使目标函数达到最小值。
为了对新型振荡型的指数曲线的预测精度和拟合效果进行检验,本文选用实际数据来验证分析,并将计算结果与已有的指数曲线、修正的指数曲线模型的计算结果进行对比分析。本文选取中国一次能源消费2004年至2017的统计数据进行分析,数据见文献 [
为了检验模型的预测精度,根据预测值与实际值确定绝对百分误差(APE)和平均绝对百分误差(MAPE)如下。
年份 | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | 2010 |
---|---|---|---|---|---|---|---|
实际值 | 1586.8 | 1803.4 | 1977.8 | 2150.3 | 2231.2 | 2329.5 | 2491.3 |
年份 | 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 |
实际值 | 2690.1 | 2799.1 | 2907.0 | 2973.5 | 3009.8 | 3047.2 | 3132.2 |
表1. 我国一次能源消费量的统计数据(百万吨油当量)
APE = | Y t − Y ^ t Y t | × 100 % , t = 1 , 2 , ⋯ , n , (12)
MAPE = 1 v − l + 1 ∑ t = l v | Y t − Y ^ t Y t | × 100 % , v ≤ n 。(13)
从表达式(13)可知,当 l = 2 , v = m ,MAPE为拟合误差,记为 MAPE fit ;当 l = m + 1 , v = n ,MAPE为预测误差,记为 MAPE fore ;当 l = 2 , v = n ,MAPE为总误差,记为 MAPE total 。
本文结合MATLAB编程软件,使用2004年至2013年共10年的我国一次能源消费统计数据对其进行模型拟合。以2014年至2017年共4年的数据为模型外推预测检验数据。使用指数曲线模型、修正的指数曲线模型、振荡型的指数曲线模型进行拟合建模和外推预测,并将计算结果进行对比分析。上述三种模型的数值计算结果见表2。相应的图形分别见图1、图2和图3。
图1. 指数曲线、修正的指数曲线和振荡型的指数曲线对一次能源消费的拟合预测
年份 | 实际值 | 指数曲线 | APE (%) | 修正指数曲线 | APE (%) | 振荡指数曲线 | APE (%) |
---|---|---|---|---|---|---|---|
2004 | 1586.8 | 1716.4824 | 8.1726 | 1623.3590 | 2.3040 | 1632.5780 | 2.8849 |
2005 | 1803.4 | 1825.0526 | 1.2007 | 1760.174 | 2.3969 | 1785.0933 | 1.0151 |
2006 | 1977.8 | 1940.4899 | 1.8864 | 1900.36 | 3.9155 | 1942.2660 | 1.7966 |
2007 | 2150.3 | 2063.2288 | 4.0493 | 2044.001 | 4.9434 | 2098.2136 | 2.4223 |
2008 | 2231.2 | 2193.7312 | 1.6793 | 2191.183 | 1.7935 | 2246.0701 | 0.6665 |
2009 | 2329.5 | 2332.4880 | 0.1283 | 2341.992 | 0.5362 | 2384.0208 | 2.3405 |
2010 | 2491.3 | 2480.0215 | 0.4527 | 2496.517 | 0.2094 | 2516.6567 | 1.0178 |
2011 | 2690.1 | 2636.8866 | 1.9781 | 2654.851 | 1.3103 | 2650.3982 | 1.4758 |
2012 | 2799.1 | 2803.6737 | 0.1634 | 2817.088 | 0.6426 | 2787.1902 | 0.4255 |
2013 | 2907.0 | 2981.0103 | 2.5459 | 2983.322 | 2.6255 | 2922.2588 | 0.5249 |
2014 | 2973.5 | 3169.5637 | 6.5937 | 3153.654 | 6.0587 | 3047.9856 | 2.5050 |
2015 | 3009.8 | 3370.0435 | 11.9690 | 3328.184 | 10.5782 | 3160.3295 | 5.0013 |
2016 | 3047.2 | 3583.2038 | 17.5900 | 3507.015 | 15.0897 | 3261.8827 | 7.0452 |
2017 | 3132.2 | 3809.8469 | 21.6349 | 3690.253 | 17.8166 | 3358.7418 | 7.2327 |
MAPE fit (%) | 1.5649 | 2.0415 | 1.2983 | ||||
MAPE fore (%) | 14.4469 | 12.3858 | 5.4461 | ||||
MAPE total (%) | 5.5286 | 5.2244 | 2.5746 |
表2. 指数曲线、修正的指数曲线和振荡型的指数曲线对一次能源消费的计算结果
图2. 指数曲线、修正的指数曲线和振荡型的指数曲线对一次能源消费的绝对百分误差
图3. 指数曲线、修正的指数曲线和振荡型的指数曲线对一次能源消费的预测误差和总误差
本文在传统的指数曲线基础上,引入振荡型来描述现实世界的振荡序列。通过最小二乘法构建最优目标函数来求解系统的各个参数的取值,并进一步将其应用在我国一次能源消耗的拟合预测中。新型振荡型的指数曲线模型预测精度高于指数曲线和修正指数曲线模型。本文所建立的新型振荡型的指数曲线模型计算简单,计算量小,可进一步考虑应用于其它能源、教育、经济等方面。
谭生源. 具有振荡项的指数曲线及其在一次能源消费中的应用An Exponential Curve with Oscillating Term and Its Application in China’s Primary En-ergy Consumption[J]. 运筹与模糊学, 2019, 09(02): 140-146. https://doi.org/10.12677/ORF.2019.92016