刘铭基,田雅楠,张 亮,金 博
(1.东北财经大学 国际商学院,辽宁 大连 116025;2.大连理工大学 创新创业学院,辽宁 大连 116024)
民航周转量是衡量民用航空运输生产的主要经济指标,研究其准确预测对国内民用航空运输业的发展建设具有重要意义。通过对民航周转量的预测,有助于合理制定基础设施建设规划,完善其管理和运行方式,使其很好地适应日益增长的航空运输需求,有效促进民航货运的快速发展。2021年全国民航工作会议、全国民航安全工作会议介绍到在2020年,在新冠肺炎疫情对全球民航业造成巨大冲击的情况下,由于中国疫情防控措施得力有效,中国民航在全球率先触底反弹,成为全球恢复最快、运行最好的航空市场。
数据显示,2020年全年民航完成运输总周转量、旅客运输量、货邮运输量798.5亿吨公里、4.2亿人次、676.6万吨,相当于2019年的61.7%、63.3%、89.8%。中国民航旅客运输量连续15年稳居世界第二。中国民航业的快速发展使得有关民航指标科学预测成为大势所趋。
《中国民航发展阶段评估报告》也指出,目前中国基本具备了单一航空运输强国特征,将开启多领域民航强国建设新征程,这意味着中国民航基本实现了从航空运输大国向单一航空运输强国的“转段进阶”。面对这一成就,需要继续强化中国民航运输航空领域基本特征成熟度,巩固航空运输强国地位。然而,在交通运输尤其是航空运输的预测时,预测模型需要克服这个行业特有的周期性强、受天气和季节的影响大、易受突发事件的干扰等挑战。是否在模型中巧妙地解决这些问题也成为衡量预测模型的标准之一。
基于以上背景,对民航周转量的预测方法的研究十分必要,提高预测精度成为首先要解决的问题。在模型的选取上,截止至2021年2月18日,在知网上以“Prophet模型”为主题进行检索,去除无关内容(网络通信中的专业名词Prophet),共有32篇。涉及领域广泛,涵盖经济学、医学、工学、气象学等领域。证明了Prophet模型具有普适性强的特点,然而Prophet模型在国内相关研究及运用较少,在民航预测相关领域还处于一个接近空白的阶段。NeuralProphet模型则是在2020年提出的,是由Prophet模型优化改造的新模型。所以该文将以该模型为核心进行探讨,首先从单个模型间的比较入手,选出准确性最高的模型,其次讨论组合模型在民航周转量预测上的准确性,最后挑选出最适合的预测模型并提供不同权重下的预测效果。
在预测民航总周转量时采用的单一模型主要分为传统统计预测方法和基于机器学习的预测方法。蔡文婷等建立航空客运量多元回归模型,并通过历史数据检验以及与传统模型比较检验, 发现多元回归模型适合进行民航客运量的中短期预测。刘杨对线性模型的预测能力进行了评估,并得出使用半参数部分线性回归方法建立的民航客运量的预测模型最佳的结论。李明捷等运用灰色预测方法对未来的旅客周转量进行预测,考虑到了系统性和动态性的特点。齐子薇应用时间序列分析方法,利用民航客运量2016年6月—2018年4月的逐月数据进行分析并建立预测模型,利用2018年5月客运量对模型进行检验后发现,自回归移动平均模型ARIMA(1,0,0)能较好地模拟中国民航客运量的变化趋势,有良好的预测效果。陈聪聪等基于国内生产总值、外国人入境游客、定期航班航线里程、铁路客运量、第三产业增加值等影响民航客运量的主要因素,利用超极限学习机的算法模型对民航客运量进行预测,结果表明基于ELM预测模型具有较好的预测精度。Rafael等提出SARIMA阻尼趋势灰色预测模型(SDTGM),SDTGM根据历史数据计算季节性阻尼因子,与传统的DTGM相比,不确定度更小。李伟等利用LSTM神经元的记忆特性,从客运历史数据中查找和构建特征空间,提取客运量时间序列的非线性特征,通过对网络进行训练学习和超参数优化,使模型能够对民航客运数据进行高精度的拟合以及对未来运输高峰的精准预测。张良勇等基于BP神经网络从经济、旅游、竞争、机场运营能力四个方面构建影响北京民航客运量的指标体系,通过相关分析最终将得到8个影响北京民航客运量的因素作为BP神经网络的输入节点,发现当BP神经网络的隐含层为11个时模型的性能最优。Marc 等基于协整理论,构建了可以直接预测德国机场的客运量和航班量的模型,将其与经典模型方法进行对比后得出新模型更优的结论,并用于评估2016-2018年英国脱欧对德国机场交通量的影响。Tobias等提出了两种城市间航空客运量估算的重力模型。模型包含描述总体经济活动和城市对地理特征的变量,而不是描述航空服务特征的变量。因此,这两种模型都适用于目前没有航空服、历史数据无法获得,或描述当前航空运输服务水平的因素无法获得或无法准确预测的城市对。Jieh-Haur Chen等利用k均值聚类和决策树C5.0分类,研究空中交通量与宏观经济发展之间的内在关系,为预测模型确定影响因素提供新的思路。
不少学者也采用了组合模型的方式对不同问题进行了预测。葛娜等运用了加权集合的方式调整Prophet和LSTM神经网络模型的权重,形成组合模型后对某企业销售量进行预测,发现结果优于单项预测模型。赵英等同样利用Prophet和LSTM两个模型对机房温度进行建模,不同的是他采用BP神经网络对两种模型的预测结果进行非线性组合来确定个模型权重,并得到了较好的预测结果。除了权重法和非线性组合法,María等利用1990-2013年数据将多种时间序列模型比较后得出,相比于其他时间序列预测模型,在预测美国航空客运量时“ARIMA+GARCH+Bootstrap”表现最佳。常恬君等则采用以Prophet为基础模型,利用随机森林算法对模型进行优化的方式形成新的优化模型。以上文献为笔者创建组合模型提供了灵感和方向。
Prophet是一个基于STL分解思想的预测时间序列数据的机器学习框架,由Facebook公司在2017年进行开源。在这个模型中,非线性趋势与年、周、日季节性,加上节假日效应进行拟合。它对具有强烈的季节性效应和几个季节的历史数据的时间序列拟合效果较好。此外,Prophet对数据缺失和趋势变化具有很强的稳健性,通常能很好地处理异常值。Prophet工作流程如图1所示。
图1 Prophet模型运行流程
Prophet使用了一个可分解的时间序列模型,该模型有三个主要的模型组成部分:趋势、周期性和节假日,将它们结合可构成这个模型。
y
(t
)=g
(t
)+s
(t
)+h
(t
)+ε
(1)
其中,y
(t
)为时间序列在时间t
的观测值;g
(t
)为趋势项,模拟了时间序列值的非周期性变化;s
(t
)为周期项,代表了周期性变化(例如,每周、每月和每年的季节性);h
(t
)为节假日项,代表了在一天或多天的潜在不规则时间表上发生的假期影响;ε
为误差项,假定为正态分布的噪声因子。g
(t
)的公式为:(2)
其中,C
为饱和值,或者说是承载能力、容量;k
为增长率;b
为偏移量;t
为时间,明显地随着t
的增长,1+e(-(-))趋近于1,于是1+e(-(-))趋近于C
。s
(t
)的公式为:(3)
其中,T
为周期;n
为周期数的一半。h
(t
)的公式为:(4)
Z
(t
)=[1(t
∈D
),…,1(t
∈D
)]h
(t
)=Z
(t
)k
k
~N
(0,σ
)其中,Z
(t
)为指示函数;L
为节假日个数;k
为节假日的影响范围。使训练集和预测的相同节假日设置为一个虚拟变量,D
为第i
个虚拟变量;k
为窗口期中设定的节假日的影响。该文使用python的fbprophet包进行Prophet模型的实现。
NeuralProphet用于基于神经网络对时间序列数据进行建模。它基于PyTorch运行,并吸收Facebook Prophet和AR-Net的特点。
其组成部分有趋势、季节性、自动回归、特殊事件、未来回归项和滞后回归项。其中,前几部分与Prophet模型类似,趋势通过使用变化点来建立线性或逐个线性趋势的模型。季节性使用傅里叶项建模,因此可以处理高频率数据的多种季节性。自动回归使用AR-Net的实现来处理,AR-Net是一个用于时间序列的自动回归前馈神经网络。未来回归因子是指在预测期有已知未来值的外部变量。滞后回归因子是指只有观察期有值的外部变量,使用单独的前馈神经网络进行建模。未来的回归项和特殊事件都被建模为模型的协变量,并有专门的参数。
从名字不难看出,它和Prophet有密切联系,相比较于Prophet,其优势有:
(1)使用PyTorch作为后端进行优化的梯度下降法。
(2)使用AR-Net对时间序列的自相关进行建模。
(3)使用seepearate前馈神经网络对滞后回归者进行建模。
(4)可配置的FFNNs非线性深层。
(5)可调整到特定的预测范围(大于1)。
(6)自定义损失和指标。
NeuralProphet模型在GitHub进行开源,目前处于开发阶段,有些功能还不是很完善。该文使用的为2021年1月最新的0.27版本。在后续版本中,会有更多的更新内容,如为预测增加置信区间,为趋势项增加逻辑斯蒂增长模型(Logistic growth model)以及增加对面板数据的支持等。
t
时刻的预测值为P
(t
),ARIMA模型的预测值为A
(t
),t
=1,2,…,N
,并分别给两个模型分别赋予动态权值w
和w
。此时,定义集成后的Prophet-ARIMA组合预测模型为:(5)
其中,t
为预测值出现的时间,PA(t
)为Prophet模型和ARIMA的预测数据通过权重相加得到的结果。该文选取民航货物周转量、民航货邮周转量、民航旅客周转量和民航总周转量于2005年至2017年的月度数据作为训练集,预测2018年1月至2019年6月的月度数据。数据来自中经网统计数据库。
图2为Prophet拟合历史数据及预测未来的情况。垂直虚线的位置为趋势变化点,在趋势变化点处趋势项进行改变。
图2 Prophet模型预测情况
在对参数进行调整时,乘法季节性(seasonality_mode='multiplicative')是一个重要参数。时间序列具有明显的周期性,但季节性并不像先知所假设的那样是一个恒定的加法因子。这时可以使用乘法季节性来进行调整。
图3为NeuralProphet拟合历史数据及预测未来的情况。在对参数进行调整时,这里有一个重要的参数,趋势变化点的范围(changepoints_range)。模型默认设置为0.8,即趋势变更点只对时间序列的前80%进行推断,以便有足够的空间(runway)来预测未来的趋势,并避免在时间序列结束时过度拟合波动。这个默认值在很多情况下有效,但不是所有情况。经过试验,由于这里将其设置为0.9,扩大了趋势变更点的覆盖范围,以便更好地适应数据变化情况。
图3 NeuralProphet模型预测情况
w
和w
,取系数w
为[0.05,0.95]递增的19个数值,因w
+w
=1,所以对应的权重系数w
为[0.95,0.05]递减的19个数值。将19组权值系数w
和w
分别与各自对应的模型在各时刻下的预测结果相乘,然后将同一时刻两模型对应的带有权值系数的预测结果相加,最后输出经带权系数相加后的组合模型预测结果、对应的权值系数w
和w
以及时刻t
。经过以上流程的循环计算,得到19组加权集成后的预测结果,记为:
PA(t
),i
=1,2,…,19,t
=1,2,…,n
(6)
w
和w
的组合情况如表1所示。表1 组合模型及对应权值
采用以下评价指标对模型进行评价,数值越低表明误差越小。
MSE(Mean Squared Error,均方误差):
(7)
RMSE(Root Mean Squared Error,均方根误差):
(8)
MAE(Mean Absolute Error,平均绝对误差):
(9)
MAPE(Mean Absolute Percentage Error,平均绝对百分比误差):
(10)
SMAPE(Symmetric Mean Absolute Percentage Error,对称平均绝对百分比误差):
(11)
为进一步验证模型的应用性能,该文选取Triple Exponential Smoothing(三次指数平滑法)、ARIMA作为对比模型。并使用五种评价指标进行对比,各模型评估对比结果如表2所示,表中黑色加粗处为本列最小指标。各单独模型与组合模型的预测结果对比如图4所示。
图4 预测结果对比
表2 不同模型性能对比
续表2
从图4可以看到,通过模型的不断组合,预测也逐渐接近真实值。需要注意,由于使用5种评价指标,计算方法不同,存在5种不同评价指标的最小值不同时存在于同一模型的情况,这是很正常的。这时可以同时考虑5种指标来选择最佳模型。
通过对民航货物周转量、民航货邮周转量、民航旅客周转量和民航总周转量四种民航周转量构建不同模型并运用5种评价指标进行对比,得到最优模型,如表3所示。
表3 模型对比
就单一模型来看,相较于传统的Triple Exponential Smoothing 和ARIMA模型,Prophet模型和NeuralProphet模型表现较优,可以方便地根据实际问题调整参数以适应实际不同的数据,这给时间序列数据本身进行STL分解进行建模的思想进行民航预测提供了一种新思路。在进一步研究后发现,在应对不同种类的周转量时,被赋予不同权重的Prophet-ARIMA组合模型在预测效果上最佳。但以上模型无法准确地预测突发事件下的周转率等指标。因此,如何通过改进或者融合使得模型能较好地预测突发事件有待进一步思考与研究。