一种工业生产指数预测方法及处理器

专利2023-09-11  125



1.本发明涉及内容智能制造技术领域,具体涉及一种工业生产指数 预测方法。


背景技术:

2.传统的时间序列预测使用移动平均(ma)、自回归模型(ar)和 自回归移动平均模型(arma)。但是这些模型只能对平稳时间序列进 行预测,这些模型的预测只能简单处理单变量数据且要求数据具有平 稳性。然而在现实生活中,时序数据受多种因素影响不具备平稳性, 因此使用这些传统的时序算法进行预测无法得到准确的预测结果。我 们对于时间序列不平稳的解决办法是引入整合移动平均自回归模型 (arima)。arima模型通过对时间进行差分处理后可以得到平稳的数 据,但是arima模型不适用于数据噪声大、非线性变化强以及具有季 节性数据特征的时间序列数据。针对这种现状,引入了一种适合季节 性时间序列预测的模型sarima来进行带有季节性数据特征的时间序 列的预测。
3.在进行arima模型的构建过程中,需要经历检验时间序列平稳性、 差分检验、白噪声检验、自相关图和偏自相关图检验、模型定阶等过 程。但是对于参数定阶的过程,需要根据acf图和pacf图的图形的 拖尾和截尾的特征来进行参数p,q的选取,需要进行人工的分析。 对于参数的确定,为了减少参数分析的步骤,有利于非专业的时间序 列分析者,使用自动化的模型autoarima得出最好的模型参数,我们 可以使用确定最佳参数的一个指标:aic(赤池信息准则)。aic最小 时得到的模型效果最好。autoarima就是封装了网格搜索算法,以最 小aic为准则进行模型的定参,并且autoarima可以对季节性时间序 列进行预测。
4.对于时间序列的分析,除了作为一个整体进行分析外,通常还有 一种基于时间序列分解的办法,时间序列的分解可以分解为长期趋势, 季节变动,循环波动,不规则波动等子序列。常用的分解算法有stl 分解、emd分解等。基于时间序列的分解,prophet模型简单易用, 使用prophet模型可以由不具有时间序列领域知识的分析者直观地 调整参数以进行可靠、实用的预测。
5.当前时间序列预测技术主要是基于统计学和机器学习算法进行 预测,这些方法存在以下缺点:
6.(1)对于季节性时间序列应用sarima模型时首先要对数据进行 季节性剔除,比较繁琐。prophet模型没有保持提取残差项的自相关 信息,sarima模型适用于提取线性数据,prophet适用于提取非线性 数据。
7.(2)基于深度学习的时间序列模型,依赖于大量训练数据,训 练时间普遍比较长。


技术实现要素:

8.本发明的目的在于克服现有技术的缺点和不足,提出一种工业生 产指数预测方法。本发明的是减少模型定参的时候的人工分析的步骤 以及组合两个模型对时间序列数据的拟合能力和各自优势,得出预测 更为准确的模型。
9.为此,本发明的公开了一种工业生产指数的预测方法,包括:获 取时间序列;
sarima模型根据获取时间序列生成工业生产指数第一 预测值;prophet模型根据获取时间序列生成工业生产指数第二预测 值;回归模型根据所述第一预测值和所述第二预测值生成工业生产指 数第三预测值;所述回归模型表达式为: y=β0+β1x1+β2x2+ε;其中y指的第三预测值,x1表示第 一预测值,x2表示第二预测值,β0,β1和β2表示未知的回归系数, ε表示随机误差。
10.优选地,所述回归模型采用最小二乘法求解,回归模型表达式为: y=12.413+2.01x1+0.13x2,其中y指的第三预测值,x1表示第一 预测值,x2表示第二预测值。
11.优选地,prophet模型根据获取时间序列生成工业生产指数第二 预测值之前还包括:prophet模型支持的数据的两列为“ds”,“y”, 对dataframe格式进行重命名;
12.将读到的时间序列进行归一化,经过处理的数据均值为0,标准 差为1转化公式为:
[0013][0014]
优选地,prophet模型的算法公式如下:y(t)=g(t)+s(t)+ h(t)+∈
t
;其中g(t)为趋势项,表示的是时间序列在非周期上的趋势 变化规律;s(t)表示为周期项,或者称作季节项;h(t)为节假日项, 表示当天是否是节假日;∈
t
是误差项或称残差项。
[0015]
优选地,所述sarima模型根据获取时间序列生成工业生产指数 第一预测值之前,还包括:
[0016]
进行时间序列的平稳性、随机性和季节性的检验;
[0017]
运用autoarima的网格搜索法功能对arima(p,d,q)模型的参数 进行选取;
[0018]
进行模型的统计学检验,利用残差检验模型的可行性;
[0019]
利用autoarima模型网格搜索法拟合数据后最终的模型为 sarima(1,1,2)x(2,0,2)[6]。
[0020]
优选地,所述进行模型的统计学检验,利用残差检验模型的可行 性,具体包括:当残差检验的p值》0.05时,模型通过检验,确定 autoarima模型的最终形式;
[0021]
如果p值《0.05,模型没有通过检验,重新选取参数,直至选 择的最终模型通过残差检验。
[0022]
第二方面,提供一种处理器,处理器用于执行工业生产指数预测 方法。
[0023]
本发明通过sarima模型根据获取时间序列生成工业生产指数第 一预测值;
[0024]
prophet模型根据获取时间序列生成工业生产指数第二预测值;回归 模型根据第一预测值和第二预测值生成工业生产指数第三预测值;由 于prophet模型忽略了残差的自相关关系,sarima严格考虑了残差 自相关并进行了统计学的检验。本模型使用组合模型,对比单一的模 型具有最小预测误差略小于单项模型的最小预测误差的优点。
附图说明
[0025]
此处的附图被并入说明书中并构成本说明书的一部分,标示出了 符合本发明的实施例,并与说明书一起用于解释本发明的原理。
[0026]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面 将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而 易见地,对于本领域普通技术人员
1.03x2,其中y指的第三预测值,x1表示第一预测 值,x2表示第二预测值。
[0048]
获取回归模型之后,还包括步骤500,进行回归模型的检验。首 先是计算两个统计项ess和tss。回归平方和:总 离差平方和:其次是进行f检验,f检验的目的是 检验真实值和两个模型的预测值之间是否有线性关系,需要进行线性 关系的检验,检验线性关系是否在整体上显著。进行假设性检验:原 假设h0:β1=β2=0。h1:β1,β2有一个至少不为0。
[0049][0050]
在α=0.05的显著性水平下,模型f》f(k,n-k-1),模型通过f 检验。
[0051]
最后是进行t检验。t检验的目的是为了两个模型预测值分别对 真实值的作用都是显著的,即真实值与单个模型预测值之间是否有显 著的线性关系。进行假设性检验:原假设h0:βi=0。h1:β1≠0, i=1,2。
[0052][0053]
其中,c(x
t
x)-1
,cj为矩阵c主对角线上的第j个元 素。
[0054]
给定显著性水平α=0.05,可得|t|>t
α/2
(n-k-1)时,模型通 过t检验,即认为组合回归模型与单个模型线性相关。
[0055]
优选地,步骤300,prophet模型根据获取时间序列生成工业生 产指数第二预测值之前还包括:步骤210,prophet模型支持的数据 的两列为“ds”,“y”,对dataframe格式进行重命名;
[0056]
prophet模型是基于时间序列分解理论为基础的时间序列预测策 略。prophet模型的算法公式如下:
[0057]
y(t)=g(t)+s(t)+h(t)+∈
t
ꢀꢀꢀ
(4)
[0058]
其中g(t)为趋势项,表示的是时间序列在非周期上的趋势变化 规律,比如趋势上升,趋势下降等等。在prophet模型中趋势项有两 个重要函数:逻辑回归函数和分段线性函数。逻辑回归函数的表达式 为公式(5)
[0059][0060]
c为曲线的最大趋近值,k表示曲线的增长率,m表示曲线的中 点。因为逻辑回归函数用来拟合趋势线需要根据数据业务需要制定一 个最大值,但对于工业生产指数数据,因其整体保持向上增长的趋势, 所以趋势项g(t)不需要给定一个最大值。因此我们采用分段线性函 数来拟合增长趋势。分段线性函数的公式如下:
[0061]
g(t)=(k+a(t)δ)
·
t(m+a(t)
t
γ)
ꢀꢀꢀ
(6)
[0062]
其中k表示增长率,m表示偏移量,δ表示增长率的变化量, a(t)∈{0,1}s,γ表示偏移率的变化量。
[0063]
其中,a(t)=(a1(t),

,as(t))
t
,δ=(δ1,

,δs)
t
,γ= (γ1,

,γs)
t

[0064]
s(t)表示为周期项,或者称作季节项,通常以周、月、年为单位。因为 时间序列的
数据特征可能会随着周期进行波动。在数学中,周期波动用 sinx,cosx函数来表示。用傅里叶级数来模拟时间序列的周期性,公式如下:
[0065][0066]
p表示时间序列周期,前面通过step2得知m=6,表示周期为 半年,这里p以天为单位,所以p=182.5。
[0067]
prophet还增加了节假日项h(t),表示当天是否是节假日。对于 这一项,节假日通常会影响工业生产,可能对工业生产指数有影响, 因此我们保留这个设置,使用默认参数。不同的节假日可以看成相互 独立的模型,为节假日设置不同的窗口值表示节假日前后的时间序列 受此节假日影响。
[0068]

t
是误差项或称残差项。是指原始时间序列分解为不能分解的 子序列后的剩余项。由于prophet模型没有考虑残差性的自相关性, 因此我们使用sarima的模型进行组合预测。
[0069]
prophet就是通过拟合这几项,然后通过累加或者累乘得到,我 们使用基于累乘的时间序列分解模式。
[0070]
步骤220,将读到的时间序列进行归一化,经过处理的数据均值 为0,标准差为1转化公式为:
[0071][0072]
步骤230,prophet模型的算法公式如下:y(t)=g(t)+s(t)+ h(t)+∈
t
;其中g(t)为趋势项,表示的是时间序列在非周期上的趋势 变化规律;s(t)表示为周期项,或者称作季节项;h(t)为节假日项, 表示当天是否是节假日;∈
t
是误差项或称残差项。
[0073]
所述回归模型采用最小二乘法求解,回归模型表达式为:y= 1.2413+2.01x
1-1.03x2,其中y指的第三预测值,x1表示第一预测 值,x2表示第二预测值。从图片可知,trend反映工业生产指数在逐 年保持上升趋势。从holidays可知数值随年份呈现规律性变化。
[0074]
从weekly可以看出,数据总体在星期六、日保持下降趋势,工 作日的数据比较大周末大。从yearly月度来看,5-7月,10-12月有 上升趋势。从daily数据来看,上午数据大于下午。从monthly来看,2月份数据开始下降,5月份数据开始上升。prophet进行模型预测 的曲线图如图7,黑点表示实际值,实线表示预测值,阴影区域表示 预测的置信区间。
[0075]
步骤200,sarima模型根据获取时间序列生成工业生产指数第一 预测值之前,还包括:
[0076]
步骤110,进行时间序列的平稳性、随机性和季节性的检验;
[0077]
step111:检验时间序列平稳性。如果时间序列是非平稳的,那么 进行时间序列的预测时产生误差较大,时间序列失去研究意义。平稳 时间序列需要满足的三个特征是:时间序列数据的均值和时间变量无 关、时间序列数据的方差和时间变量无关、协方差与时间序列具体点 无关,与时间间隔有关。先绘制时间序列原始曲线图如图2所示,从 定性分析的角度:我们可以看到该序列具有明显的单调递增的趋势, 可以初步判断为非平稳时间序列。
[0078]
为了更近一步从定量的角度分析说明这是个非平稳时间序列,需 要进行时间序
列的单位根检验即adf检验。单位根检验的结果如表1, 可以看到单位根检验对应的p值显著大于0.05,接受原假设,则认 为该序列为非平稳时间序列。
[0079][0080]
表1原始序列的单位根检验
[0081]
对时间序列进行平稳化的做法有:差分、对数变换和平滑等操作。 最常用的方法是差分。差分可以去除原始时间序列中的趋势项以及季 节项。将当前数据与前一个数据求差就是一阶差分,将当前数据与一 个周期前的数据求差就是季节性差分。对原始时间序列进行一阶差分, 原始序列进行一阶差分后的时间序列如图3所示,时序图显示差分后 均值在0附近进行平稳性波动,初步判断一阶差分后时间序列平稳。 所以差分系数d=1。
[0082]
对差分后的时间序列进行单位根检验的结果如表2,p值小于 0.05,所以一阶差分后时间序列是平稳时间序列。
[0083][0084]
表2一阶差分后的单位根检验
[0085]
step112:因为白噪声序列没有规律,不具备分析意义,所以必须 保证读取进来的时间序列数据为非白噪声数据。针对白噪声的检验也 即随机性的检验,使用lb统计量,由样本各个延迟期数的自相关系 数可以得到检验统计量。白噪声检验结果如表三,p值小于0.05,所 以一阶差分后的数据是平稳非白噪声数据。
[0086]
lb统计量p值124.63346.1221e-29
[0087]
表3一阶差分后的白噪声检验
[0088]
步骤113:接下来进行季节性检验,绘制acf图,发现横坐标为6 的倍数时出现一个峰值,说明数据每6个月出现一次周期性。因此季 节性周期m可以取6,12,18等。因为通过acf图和pacf图的截尾和 拖尾情况来进行模型定参比较依赖分析者经验,截尾指的是acf图和 pacf图在大于某个常数后迅速趋近于0,拖尾指的是acf图和pacf 图不会在大于某个常数后就趋近于0,而是会一直保持非零值。通过 图示难以快速分析出最佳参数,因此采用autoarima模型来搜索最佳 参数。
[0089]
步骤120,运用autoarima的网格搜索法功能对arima(p,d,q) 模型的参数进行选取;
[0090]
运用autoarima的网格搜索法功能:前面分别确定d和m的取 值,我们在做实验时只需要给一个最大值p,最大值q,且季节性参 数设置为true就可以利用网格搜索法自动查找aic最小的模型。
[0091]
autoarima的主要参数解析如表4。
[0092][0093]
表4autoarima模型主要参数
[0094]
通过步骤120的数据预处理,我们知道d=1,m=6n(n= 1,2,3,

),需要选择m取不同值时最好模型,结果如表5。
[0095]
模型aictimes(s)arima(1,1,2)(2,0,2)[6]2554.08398.794arima(1,1,2)(1,0,1)[12]2555.511110.409arima(4,1,4)(2,0,2)[18]2641.502787.252
[0096]
表5m取不同值的模型比较
[0097]
选定的模型是sarima(1,1,2)x(2,0,2)[6]。
[0098]
arima(p,d,q)模型的算法原理如下:
[0099][0100]
arima(p,d,q)模型由两部分构成:ar(自回归)模型和ma模 型(移动平均)模型组成。μ代表常数。φ代表自回归系数,θ代 表移动平均的系数。d表示的是平稳处理的差分次数,y
t
代表样本值, e
t
代表服从(0,δ2)分布的白噪声序列。
[0101]
sarima(p,d,q)x(p,d,q)s模型的算法原理如下所示.
[0102][0103]
p,d,q与arima模型中的含义相同,p,d,q表示在p,d, q的基础上增加了季节性,y
t
表示样本值,s表示周期长度,表 示差分次数为d次,表示序列的季节性差分次数为d次,b表示 后移算子,φ
p
(b)和φ
p
(bs)分别表示非季节性和季节性的自回归分量, θq和θq(bs)表示非季节性和季节性移动平均分量,ε
t
表示白噪声序 列。
[0104]
步骤130,进行模型的统计学检验,利用残差检验模型的可行性;
[0105]
步骤140,利用autoarima模型网格搜索法拟合数据后最终的模 型为sarima(1,1,
2)x(2,0,2)[6]。
[0106]
步骤130,进行模型的统计学检验,利用残差检验模型的可行性, 具体包括:步骤131,当残差检验的p值》0.05时,模型通过检验, 确定autoarima模型的最终形式;
[0107]
步骤132,如果p值《0.05,模型没有通过检验,重新选取参 数,直至选择的最终模型通过残差检验。通过sarima模型的残差检 验可得:p=0.07453》0.05,表明通过sarima(1,1,2)x(2,0,2)[6] 的模型检验并确定最终模型。
[0108]
步骤140,利用autoarima模型网格搜索法拟合数据后最终的模 型为sarima(1,1,2)x(2,0,2)[6],这个模型最终的形式为sarima模 型。
[0109]
将srima+prophet模型与arima,sarima、prophet、lstm、holter-winters、holter-winters+prophet、sarima+ holter-winters等模型进行实验对比,以mae(平均绝对误差)、rmse (均方根误差)、mse(均方误差)、mape(平均绝对百分比误差)、smape (对称平均绝对百分比误差)等为评估指标,结果如表6所示。
[0110]
modelmaermsemsemapesmapearima9.15511.253126.6430.0950.0902sarima6.5377.99563.9170.0670.065prophet9.32312.035144.8530.0930.087holter-winters39.44843.4641889.1250.3940.320lstm10.49913.434180.4800.0990.107lstm+prophet10.31511.678138.4540.0840.058sarima+lstm6.1327.96848.1450.0610.051srima+prophet5.4696.68744.6630.0540.054
[0111]
表6实验结果对比
[0112]
从实验结果可以看出本发明模型在带有季节性的工业生产指数 时,模型sarima、lstm、prophet的预测效果比较好。其中sarima+ prophet训练时的mae、rmse、mse、mape均小于其他模型组合形式, 而sarima+prophet的smape大于sarima+lstm。综合看,sarima+ prophet仍然是处理我们数据的较优模型。
[0113]
本发明可以对比深度学习模型,本发明使用了统计学模型的组合, 减少了模型训练时间,且模型预测的准确率并没有大幅降低。
[0114]
本模型使用组合模型,对比单一的模型具有最小预测误差略小于 单项模型的最小预测误差的优点。
[0115]
时间序列的分析对于初学者很难把握模型的定参过程,因此采用 网格搜索的方法结合参数简单的prophet模型,易于建模。
[0116]
对于具有季节性的时间序列具有很好的拟合效果。
[0117]
第二方面,提供了一种处理器,处理器用于执行工业生产指数预 测方法;处理器可以是一个或多个图形处理器(graphics processingunit,gpu),在处理器是一个gpu的情况下,该gpu可以是单核gpu, 也可以是多核gpu。可选的,处理器可以是多个gpu构成的处理器组, 多个处理器之间通过一个或多个总线彼此耦合。可选的,该处理器还 可以为其他类型的处理器等等,本技术实施例不作限定。
[0118]
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或 实现本发
明。对这些实施例的多种修改对本领域的技术人员来说将是 显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或 范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于 本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点 相一致的最宽的范围。

技术特征:
1.一种工业生产指数的预测方法,其特征在于,包括:获取时间序列;sarima模型根据获取时间序列生成工业生产指数第一预测值;prophet模型根据获取时间序列生成工业生产指数第二预测值;回归模型根据所述第一预测值和所述第二预测值生成工业生产指数第三预测值;所述回归模型表达式为:y=β0+β1x1+β2x2+ε其中y指的第三预测值,x1表示第一预测值,x2表示第二预测值,β0,β1和β2表示未知的回归系数,ε表示随机误差。2.根据权利要求1所述的工业生产指数的预测方法,其特征在于,包括:所述回归模型采用最小二乘法求解,回归模型表达式为:y=1.2413+2.01x
1-1.03x2,其中y指的第三预测值,x1表示第一预测值,x2表示第二预测值。3.根据权利要求1所述的工业生产指数的预测方法,其特征在于,prophet模型根据获取时间序列生成工业生产指数第二预测值之前还包括:prophet模型支持的数据的两列为“ds”,“y”,对dataframe格式进行重命名;将读到的时间序列进行归一化,经过处理的数据均值为0,标准差为1转化公式为:4.根据权利要求1所述的工业生产指数的预测方法,其特征在于,prophet模型的算法公式如下:y(t)=g(t)+s(t)+h(t)+∈
t
;其中g(t)为趋势项,表示的是时间序列在非周期上的趋势变化规律;s(t)表示为周期项,或者称作季节项;h(t)为节假日项,表示当天是否是节假日;∈
t
是误差项或称残差项。5.根据权利要求1所述的工业生产指数的预测方法,其特征在于,所述sarima模型根据获取时间序列生成工业生产指数第一预测值之前,还包括:进行时间序列的平稳性、随机性和季节性的检验;运用autoarima的网格搜索法功能对arima(p,d,q)模型的参数进行选取;进行模型的统计学检验,利用残差检验模型的可行性;利用autoarima模型网格搜索法拟合数据后最终的模型为sarima(1,1,2)x(2,0,2)[6]。6.根据权利要求5所述的工业生产指数的预测方法,其特征在于,所述进行模型的统计学检验,利用残差检验模型的可行性,具体包括:当残差检验的p值>0.05时,模型通过检验,确定autoarima模型的最终形式;如果p值<0.05,模型没有通过检验,重新选取参数,直至选择的最终模型通过残差检验。7.一种处理器,其特征在于,所述处理器用于执行如权利要求1至6中任意一项所述的方法。

技术总结
本发明公开了一种工业生产指数的预测方法及处理器,该方法包括:获取时间序列;SARIMA模型根据获取时间序列生成工业生产指数第一预测值;Prophet模型根据获取时间序列生成工业生产指数第二预测值;回归模型根据所述第一预测值和所述第二预测值生成工业生产指数第三预测值;所述回归模型表达式为:y=β0+β1x1+β2x2+ε;其中y指的第三预测值,x1表示第一预测值,x2表示第二预测值,β0,β1和β2表示未知的回归系数,ε表示随机误差。本发明提出一种工业生产指数预测方法。本发明的是减少模型定参的时候的人工分析的步骤以及组合两个模型对时间序列数据的拟合能力和各自优势,得出预测更为准确的模型。测更为准确的模型。测更为准确的模型。


技术研发人员:高凯炼 苏庆
受保护的技术使用者:广东工业大学
技术研发日:2022.09.30
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-5064.html

最新回复(0)