人们无法知道股票市场在明天是涨是跌,可是会通过以往已有的表现判断未来的走势而做出决策。人们无法预知房地产市场在未来五年是怎样的,同样会通过以往的表现和已知的信息做投资决策。厂商会通过以往已知的销售规律判断本季度是否要增产,酒店通过往年的入住率判断在淡季是否要降价促销,等等。这些活动都是基于已知的历史数据推测未来,时间序列就是研究这种预测的工具。不同行业和领域的时间序列数据有不同的特点。例如,旅游行业,往往在夏季达到高峰,零售行业在节假日,尤其是春节时达到高峰,某交易所的股票综合指数则明显呈现出波动性。而一个国家的GDP,在经济发展好的时候通常会逐年稳步增长,如果遇到经济萧条则很大概率会持续几年下降,没有明显的周期性和波动性。所以,不存在一个简单的时间序列模型可以描述以上所有例子中的特点。针对比较常见的时间序列数据,已有一些很常用的模型适用,并且预测效果也不错。时间序列的一个重要特征是,相邻时间点之间是等距的,并且有明确的先后顺序,如2019年的GDP总是在2018年之后产生。因此2019年的GDP会在一定程度上受到2018年GDP的影响。以此类推,2020年的GDP会受到2019年的影响,如果按照这个时间序列下去,会得到一个连续的数据。我国2018年的GDP增长率是6.6%,如果以此预测2019年的增长率是-1%似乎缺乏依据,更加可信的预计是2019年的GDP增长率在6.0%~7.2%。能将预测值控制在某种程度的范围中,是因为自身数据存在着变化规律,如果想要更精确地预测,就要找到这些规律建模并预测。第二步,对不同特征的数据采用不同的模型,常用模型选择方法如下。有季节性序列:分离季节性因素后再选择以上适合的模型。第三步,建立模型。模型是指用数学、统计学等方法模拟实际问题,如回归模型y=a+bx,是模拟一个事物对另一个事物有某种依赖关系。不同实际问题对应不同的模型,寻找并建立合适的模型,再用模型去预测实际问题的发展,是建立模型的初衷,如图13-9所示。第四步,对模型进行评估。从图13-9可以看出,对实际问题解释是否充分、预测是否准确,主要依赖于模型的准确度。在实际建模中,模型很难一次做到最准确,通常要对其进行不断的调整,使其越来越接近真实情况,模型越接近真实情况,预测就越准确。建立模型后直接进行预测,相当于生产了一把枪,还没有调校精度就上战场。调校枪的射击精度通常需要先找个靶子开几枪试试,才知道怎样调、调多少。调整模型的过程与此类似,需要先用对照数据测试,检验模拟是否准确。最好的对照数据是真实发生的,所以建模时只用一部分原始数据做数据建模,另外一小部分原始数据用来做预测对照。用于建模的这部分数据称为训练集,用于对照的这部分数据称为测试集,训练集和测试集数据量的比例通常是7:3,这个比例可以根据实际情况修改。需要注意的是,在时间顺序上必须满足70%的数据在先,30%的数据在后。操作方法是将图13-9中在实际问题中收集的数据按7:3分成两部分,用70%的训练集建立模型,预测后面30%的数据,如图13-10所示。
图13-10模型调整流程
建立模型后,用模型去预测后面30%的数据(测试集),得到预测值,再用预测值和提前保留的30%测试集作对比,这时二者的对比一定会出现一定程度的偏差,这部分偏差就是模型要调整的方向,调整的目的是缩小这种偏差。用对比结果对模型做评估,根据评估结果调整模型,得到调整后的模型后再重复图13-10的步骤,每操作一次都会更加接近真实数据,模型永远不可能和真实情况一样,总要接受一定的偏差,所以不需要进行无数次的训练,模型的精度能达到可接受的范围即可。
对模型评估的方法有很多,其中一种方法是均方误差(meansquareerror ),一般用简写MSE表示。图13-11展示了某次预测中得到的预测值和测试集。
图 13-11 预测值和测试集
对比方法是用测试集的每个值减去预测值的对应的值,计算所有差值的平方的均值,实质是两个数据集中各数值的距离平方和均值,计算式如下:
从这个过程可以看出,均方误差 MSE 的计算公式如下:
其中,Y是测试集的数值,F是预测的数值,n是预测值的个数。均方误差代表的是预测值和测试集之间的差距,差距越小代表模型越精确。MSE的计算思路和方差类似,都是距离平方的均值,这是统计学中对比两组数据距离的很重要的思维方式。另外一种评估方法是均方根误差(rootmeansquareerror),一般用RMSE表示,通过名称可以知道,它是MSE的平方根。RMSE是最常用的预测结果衡量标准。
第五步,通过MSE的值来确定是否调整模型,如果预测差距很大,则应重新考虑是否需要更换模型。
第六步,通过调试模型确定相对最精确模型,并得出预测结果。