基于XGBoost的大宗商品价格预测
2021-05-26田秋红廖文琪欧阳汉
田秋红 廖文琪 欧阳汉
【摘 要】大宗商品已成为财富管理与资产管理的重要内容,通过搜集数据发现大宗商品价格走势规律,对辅助投资者选择合适的大宗商品进行投资等具有重要的意义。文章通过待预测的6种有色金属和5种辅助有色金属数据(包含6种日交易数据),7种市场指标(包含7种日交易数据)。解决的问题是在考虑有色金属具有时序性的情况下,通过了解背景知识和对数据的探索,创建了7类新的特征,并根据每一个待预测金属的不同待预测时间点的标签,筛选出对该金属有着较大影响的特征。在有效数据的筛选上,分别选取2003—2017年(缺失钯、铂、银3种金属数据)和2013—2017年(包含所有纽约金属交易所的金属数据)建立XGBoost模型进行对比发现,2013—2017年模型的预测结果好于2003—2017年模型的预测结果;在模型选取上,根据筛选不同金属的特征,建立CatBoost、SVM、XGBoost 3个模型进行对比,结果显示XGBoost的预测结果明显好于另外两个模型。因此,最终选取2013—2017年的数据和XGBoost作为训练数据和最终的模型,然后对每一种待预测金属建立模型(共18个),分别预测各种金属在2018年1 d、20 d、60 d的涨跌情况。
【关键词】大宗商品;XGBoost;特征工程
【中图分类号】F713.32;F274【文献标识码】A 【文章编号】1674-0688(2021)04-0150-03
1 研究意义及现状
大宗商品电子交易市场作为一种新兴的交易方式,对促进流通现代化、实现流通创新具有重要意义。目前,中国经济的迅速发展,特别是城市化、市场化进程不断加快,贸易企业数量持续增长,形成对大宗商品市场的巨大需求。如果采用最直接也是最简明的大宗商品投资方式,直接购买大宗商品进行投资,可能会产生很大的运输成本和储存成本,投资者很少采用这样的方式。因此,通过搜集数据发现大宗商品价格走势规律,辅助选择合适的大宗商品进行投资等有着重要的意义 [1]。
华仁海等人(2004)利用协整检验和Granger因果检验方法对国内外期货市场商品进行实证检验,得到不同期货交易之间可能存在长期均衡关系或协整关系 [1]。曹旭等人(2017)基于机器学习中的支持向量机模型,选取大宗商品中金融属性最强的黄金,对黄金价格进行预测,并初步尝试构建一个择时策略。最后预测黄金价格的SVM模型,初步构建了一个择时交易策略,并给出在回测样本中的回测结果 [2]。陈宇韶(2018)提出将皮尔森特征筛选与XGBoost算法结合的预测方法预测股票收盘价。以A股市场600677股票为例,采用皮尔森相关系数分析法提取重要特征,并生成高相关特征的数据集,再基于数据挖掘算法中表现极为优异的XGBoost框架,结合特征工程处理,取得良好的训练预测效果 [3]。
2 數据分析及数据清洗
2.1 数据分析
biendata竞赛提供了伦敦金属交易所(LME)数据集、纽约商品交易所(COMEX)数据集、一些市场指标(Indices)数据集、待预测金属的标签(Label)4类数据集,每一类数据集又分为训练集数据集和验证集数据集。
本文所使用的数据时间线如图1所示。
本文所使用的数据时间线为训练集:2003-01-02至2017-12-29,总共有3 790个数据;验证集:2018-01-02至2018-01-02,总共有253个数据。
2.2 数据探索和数据预处理
2.2.1 数据探索
(1)基础数据查看。以铝(Aluminium)1d为例进行基础数据查看,发现共有3种类型的数据,分别是int64、object和float64,其中Unnamed:0为无意义的数据;Unnamed:0.1为交易日期,Open.Price、High.Price、High.Price、low.Price为铝金属的日交易数据;交易量(Vloume)数据则存在缺失情况,缺失243条数据。
(2)标签分布。在查看完所有的数据后发现,除了标签之外,所有的数据均为连续性变量,因此查看一下标签的分布情况,6种有色金属的涨跌情况分布较为均衡。
2.2.2 数据预处理
(1)缺失值填补。由于数据是基于时间序列进行变化的,如果对缺失值进行均值填补或者中位数填补时,有可能会用到来自未来的数据,为了避免使用到未来数据而导致模型过拟合,选择后值填补,即使用前一天的非空值对当天的数据进行填补 [4]。
(2)时间线筛选。对数据探索之后发现,除了纽约商品交易所中的钯、铂、银3种金属的基础数据丢失严重,要到2013-11-11,日交易数据才较完整;其余的数据在这个时间点后,也都基本完整。因此,为了在选择更多金属数据而舍弃2003—2013年的数据还是选择更长的时间线而舍弃钯、铂、银3种金属之间做一个简易的模型对比,一个是不包含钯、铂、银3种金属的2003—2017年模型,一个是包含着3种金属的2013—2017年模型,都采取XGBoost模型,AUC结果见表1。
通过对比发现,2013—2017年的模型比2003—2017年的模型效果要好很多,说明对预测金属来说,在保证一定数据量时,更多的相关金属种类数据的重要性是大于过于长的时间、但缺少相关金属种类数据的,因此对有效数据的筛选时间线是2013-11-11至2017-12-31的有关数据。
3 特征工程
3.1 特征构造
在了解股票涨跌、大宗商品相关的背景知识和查看相关文献之后,基于有色金属的有关基础数据创建7类特征[5]:range、hl、oc、MA、std_dev、rsi、Williams%R①。其中,创建移动平均线时,分短期、中期、长期指标,短期指标包含3 d、5 d、10 d,中期指标包含30 d、75 d,长期指标包含255 d;创建相对强弱指数时,选择的是6 d、12 d、24 d的数据;创建威廉指数时,选择的是12 d、24 d的数据。
3.2 特征选取
常见的特征选择方法有过滤法、嵌入法、包装法 [6]。在这里选择基于XGBoost的特征重要性排名,在71个特征中选取了前30个特征作为模型的特征。
在分别对1 d、20 d、60 d的6种金属进行特征筛选后,将出现在筛选后的6种金属特征中的特征进行统计。其中,1 d的共同特征共有10个,20 d的共同特征共有6个,60 d的共同特征共有8个。具体来看,对1d的金属涨跌预测来说,纽约金属交易所中的铜和钯金属影响比较大,在6种金属预测中都出现了这两种金属的当日开盘收盘价格差、交易量和最高最低价格差,以及待预测金属自身属性中的交易量和涨跌幅。对20 d的金属涨跌预测来说,中期移动平均线中的季线和长期的移动平均线更为重要,6种金属的特征选择中都出现了中期移动平均线中的季线和所有的长期移动平均线,然后就是市场指标中的波动率指数和欧洲斯托克50指数。对60 d的金属涨跌预测来说,纽约金属交易所中钯、铂、银3种金属的个人持仓量出现比较多,然后是长期移动平均线和市场指标的沪深300指数、美元指数的影响比较大 [7]。
4 模型选择与评估
本文专注于铜、铝、铅、镍、锌及锡6种有色金属。通过构建模型,分别预测1 d、20 d、60 d 3个时间段的有色金属价格走势方向(涨/跌)。选择CatBoost、XGBoost、SVM 3种模型对数据进行拟合,根据AUC进行模型筛选,根据模型结果显示可得,XGBoost的预测效果均比CatBoost和SVM预测效果好,因此决定采用XGBoost进行预测。为了比较特征筛选后与特征筛选前的模型效果对比,设定了包含所有特征的模型1和只含有筛选特征的模型2,选取2013-11-11后的800条数据作为训练集,后面的246条数据作为测试集,将数据代入XGBoost模型进行训练。
结果发现,只含有筛选特征的模型2的性能整体都要好于包含所有特征的模型1。因此,选择特征筛选后的模型2作为最终模型。最终选择了特征筛选之后的数据集和XGBoost模型对最后的验证集进行预测,最终准确率为65.11%。
5 结论与启示
在考虑有色金属具有时序性的情况下,针对有色金属的收盘价格创建新的、更有代表性的特征,并针对不同的金属和不同的预测目标进行不同的特征选择。同时,需要选择一个适宜的模型,可以通过多种方式进行尝试,根据模型效果选择合适的模型,并对模型进行优化。针对每一种待预测金属的不同预测时间点,分别建立了一个模型(共18个模型)进行预测。由于各个不同的模型对数据的拟合程度不同,所以最终选取了在各个金属的预测中表现都比较好的XGBoost模型。
文中存在一些不足之处,在特征创建时,只对待预测金属的交易数据进行了处理,如果对市场指标、纽约金属交易所的数据也进行滑动窗口的处理,效果可能会更好;对相对强弱指数、威廉指数的时间线选取如果像移动平均线一样长,可能体现的价值也会更全面。创造移动平均线,选取的是简单移动平均算法,这种处理方式的滞后性比较强,如果采取滞后性更弱的算法,例如分型自适应移动平均或赫尔移动平均,可能会有不一样的结果。市场内,本文只考虑了有關金属的交易数据和市场指标,没有考虑金融机构发布的有关研报和新闻;市场外,没有考虑整体的国际形势和政治、政策因素对有色金属带来的影响 [8]。
注 释
①range:涨跌幅,表示当日的收盘价与前一日收盘价价格差异的比值;hl:表示当日最高价和最低价的差;oc:表示当日开盘价格和收盘价格的差;MA:表示收盘价的移动平均线,反映价格变动的趋势;std_dev:表示收盘价格过去一段时间的平均方差线;rsi:相对强弱指数,通过过去一段时间收盘价平均涨数和平均跌数来分析市场;Williams%R:威廉指数,利用摆动点度量市场的超买超卖现象。
参 考 文 献
[1]华仁海,陈百助.国内、国际期货市场期货价格之间的关联研究[J].经济学(季刊),2004(2):727-742.
[2]曹旭.基于SVM的黄金价格预测模型及其参数优化[D].济南:山东大学,2017.
[3]陈宇韶,唐振军,罗扬,等.皮尔森优化结合Xgboost算法的股价预测研究[J].信息技术,2018(9):92-97.
[4]唐亚平.基于移动电信数据个人征信模型研究[D].北京:北京邮电大学,2017.
[5]钟一鸣.大宗商品价格波动的影响因素探析——以基本金属铜为例[J].中国管理信息化,2012(16):48-49.
[6]张靖.面向高维小样本数据的分类特征选择算法研究[D].合肥:合肥工业大学,2014.
[7]蒋剑辉,朱颖菲.上海有色金属价格指数(SMMI)与伦敦金属期货交易所指数(LMEX)的相关性研究[J].浙江统计,2008(9):6-8.
[8]孙静娴.有色金属行业环境信息披露及其影响因素分析[D].南京:南京大学,2012.