基于ARIMA模型的军事训练数据分析和预测
2019-12-04彭晓明
李 杰,彭晓明
(空军预警学院,湖北 武汉 430019)
0 引 言
随着军事训练信息设备移动化和各种传感器的大量使用,军事训练产生了海量数据,这些数据真实地记录了军事训练的过程。采取科学合理方法洞察这些数据背后有价值的信息,以用于优化军事训练实践,是军事训练信息化的重要一步。关于军事训练数据分析,文献[1]改进了基于相对密度的算法,有效地提高了检测军事训练数据噪声的精度。文献[2]提出了通过军事训练数据统计分析出部队实体作战能力的方法。文献[3]提出了利用主成因分析(PCA)与层次聚类算法对军事训练数据进行降维使用的方法。文献[4]探讨了使用灰色加权填充进行数据填充的方法。文献[5]通过构建元数据模型,希望解决军事训练数据集成和共享的问题。这些研究分析大都针对军事训练数据的静态特征,将军事训练数据看作时间序列的研究还比较少。
解决时间序列预测问题,差分整合移动平均自回归(ARIMA)模型是应用最广泛的线性模型。该模型建立后,一直有很多学者以此为基础进行了深入研究。近年,随着计算机性能的提高,对于ARIMA模型的研究方向大多都与机器学习、反向传播(BP)神经网络等方法结合,如文献[6]~[8]对建立ARIMA-BP组合模型进行了研究;另一方面主要是对参数选值进行控制优化,如文献[9]对公交数据的选值进行了系统实验并优化,提高了精度。针对军事训练数据的特性,本文在ARIMA模型分析的基础上进行了优化,经过仿真实现,方法有效。
1 时间序列和ARIMA模型
时间序列是某个数据在不同时间上的量值,按时间先后顺序组成的序列,当我们跟踪某些量在时间上的变化时,就是在处理时间序列[10]。其数学模型可以表示为:
{Xt}={Xt:t∈T}
(1)
平稳与非平稳是时间序列分析中一个非常重要概念,直接影响到对时间序列进行处理的方法[11]。通常,我们认为时间序列只要满足下面3个条件,就是平稳的:
(1) 均值E(Xt)=μ,μ为常数;
(2) 方差δ(Xt)=σ,σ为常数;
(3)γ(t,s)=γ(t+h,s+h),即协方差只与时间间隔有关,与时间t无关。
对于非平稳时间序列处理,1970年Box和Jenkins在“Time Series Analysis:Forecasting and Control”中提出了ARIMA模型[12],可以表示为:ARIMA(p,d,q)。其中,p为自回归参数,d为差分阶数,q为滑动平均参数。ARIMA模型可以用于表示平稳和非平稳时间序列,其中:ARIMA(p,0,q)即为ARMA(p,q)模型,ARIMA(p,0,0) 即为AR (p)模型,ARIMA(0,0,q) 即为MA (q)模型。
利用ARIMA模型进行建模的过程主要有4个步骤:数据处理、参数估计、模型检验、应用分析。
设输入的时间序列为X,利用ARIMA模型进行分析的步骤如下:
其次,通过时间序列图对平稳性进行观察,看是否有上升或者下降的趋势。如果希望实现计算机自动判定,可以使用单位根检验,即判断时间序列中是否存在单位根。若存在单位根,则序列是不平稳的[10]。本文使用单位根检验(ADF)方法检验,便于进行机器判定,减少人为工作量,如果检验值大于0.05,则判定该序列非平稳。对于非平稳时间序列,需要进行差分处理,直到形成平稳时间序列。差分过程如下:
Xt=Xt-Xt-1
(2)
(2) 参数估计:建立ARIMA模型需要确定p,d,q3个参数,差分阶数d可以在(1)中确定。关于p,q值的确定:方法一是通过自相关系数(ACF)和偏自相关系数(PACF)图选定合适的模型,如表1所示。
表1 ACF和PACF判断ARIMA模型依据
方法二是在现实问题中,通常p,q阶数较低,可以从低到高逐阶尝试。最后,采用贝叶斯信息准则(BIC),选取获得最小BIC值的p,q的值,建立合适的模型。
(3) 模型检验:验证残差是否为白噪声,即为纯随机过程[13],即残差的时间序列不存在任何趋势,均匀地分布在0值上下。使用Ljung-Box检验值大于0.05。
(4) 应用分析:使用模型进行预测,并将结果可视化,加以解释。
2 军事训练数据的特点
通过笔者多年的工作实践和对军事训练数据分析发现:与其它一般数据不同,军事训练数据,尤其是训练成绩在随时间变化方面有3点特性:一是总体趋于上升,原因是训练时间逐年递增、训练难度逐步增加、训练水平逐渐提高;二是周期性的起伏,原因是新老人员交替换代和定期比武考核导致;三是突发随机变化,原因是突发、临时任务或者其他随机因素导致。这3点特性都对ARIMA预测算法使用带来了挑战。而传统使用ARIMA模型存在2个不足之处:一是ARIMA模型是统计学模型,基于抽取样本的统计方法,无论采用怎样的优化选值方法,都会存在人为干预或者丢失信息,造成预测误差大,甚至预测错误的问题。二是ARIMA模型是数学模型,预测得到的是定量的数字结果,规律描述不够直观形象。针对这两方面的不足,本文主要利用python3.7环境中的numpy、matplotlib、pandas、statsmodels等开源库对军事训练数据时间序列进行处理:主要解决ARIMA模型参数选择中人工干预的问题,使用全数据样本,通过机器判定选择模型参数,客观公正,保证模型的可靠性;二是将数据处理过程、结果可视化,简单直观地传递信息。
3 基于ARIMA模型分析军事训练数据
本文使用某单位记录的数据进行分析,共计30个数据点,以前24个数据为建立模型的数据基础。经过对数据时间和形式的模糊处理,形成了数据列表,部分数据如表2所示。
表2 某单位军事训练部分数据列表
图1给出了数据的时间序列图,通过观察,可以初步判断序列不平稳。
图1 数据序列图
为了准确判定,进行ADF检测,表3给出了检验值为0.102 921,大于0.05。
表3 序列ADF检测值
为了去掉这个趋势,进行一阶差分,差分后结果如图2所示。
图2 一阶差分后数据序列图
再次进行检验,其p值为1.478 2e-07,远远小于0.05,可以认定一阶差分后,时间序列平稳,如表4所示。
表4 一阶差分后ADF检测值
通过观察图3,根据表1,可以得出p=1,q=0。
再采用BIC准则进行检验,将p,q的值分别取0~3,取BIC值最小的模型。通过表5可以看出应选择ARIMA(1,1,0)模型。
对残差进行分析,从图4可以看出,残差的时间序列在0附近,且没有趋势;如表6所示,Ljung-Box检验值大于0.05,残差正态性良好。总体来说,可以接受ARIMA(1,1,0)模型。
图3 ACF、PACF图
p,qBICp,qBICp,qBICp,qBIC0,0163.961,0130.942,0133.633,0136.610,1152.291,1133.732,1134.993,1138.170,2146.361,2136.362,2138.173,2141.100,3145.831,3138.782,3137.443,3140.17
图4 残差序列ACF、PACF图
检验值检验值检验值检验值00.461 25040.738 03580.858 093120.786 63010.612 91050.793 73990.833 624130.803 44520.745 99760.782 626100.794 210140.854 50830.815 10870.829 459110.741 204150.826 249
使用ARIMA(1,1.0)模型对接下来6组进行预测并与真实值进行比较,通过对比,从表7可以看出,预测结果与接下来3组真实值拟合度较高,可以真实反映军事训练数据未来的发展趋势,最终得到图5预测图。
图5 残差序列Q-Q图
时间真实值预测值002582.1383.02002681.9582.57002781.5382.14002880.4681.73002979.5981.34003078.5280.97
图6 预测图
4 结束语
基于ARIMA模型,本文探讨了一种针对时间序列特性对军事训练数据进行分析和预测的方法,使用全数据进行研究,避免基于样本统计数据丢失信息,最后将结果进行可视化处理,可以通过复杂抽象的军事训练数据,发现军事训练的规律,预测未来的趋势,及时进行干预,利于战斗力的增长。