预测:在现时对事物将要发生的结果进行探讨和研究,简单地说就是指从已知事件测定未知事件。
预测的总的原则:认识事物的发展变化规律,利用规律的必然性,是进行科学预测所应遵循的总的原则。这个总原则实际上就是事物发展的
1-“惯性”原则——事物变化发展的延续性;
2-“类推”原则——事物发展的类似性;
3-“相关”原则——事物的变化发展是相互联系的;
4-“概率”原则——事物发展的推断预测结果能以较大概率出现,则结果成立、可用。
什么是时间序列?
时间序列是指将同一统计指标的数值按其发生的时间先后顺序排列而成的数列。它是现实的、真实的一组动态数据,而不是数理统计中做实验得到的。时间序列背后是某一现象的变化规律。
什么是时间序列模型?
- 依时间顺序排列起来的一系列观测值(观测值之间不独立);
- 它考虑的不是变量间的因果关系,而是重点考察变量在时间方面的发展变化规律,并为之建立数学模型;
- 使用时间序列模型的前提:有足够长的数据序列;数据序列的变动是稳定而规律的;
- 另外一种理解方式:假如我们对一件事情研究其背后规律很久的话,可以收集到很多的自变量/影响因素去研究与因变量之间的关系,但是由于各种原因我们做不到,我们只能用一个t(时间)来替代所有的影响因素来研究自变量是如何变化;
- 时间序列有一明显的特性就是记忆性(memory),记忆性是指时间数列中的任一观测值的表现皆受到过去观测值影响。
时间序列分析面临的问题
时序应该在现实生活中应用的很广,但是为什么不常用这个模型呢?
- 基础统计数据原因(数据收集)
- 报表系统——质量问题
- 统计口径——不统一
- 范围变化、区域划分——变化
- 理论和技术培训原因 ,之前没有好的工具来实现时间序列模型
时间序列建模基本步骤
1、用观测、调查、统计、抽样等方法取得被观测系统时间序列动态数据。
2、根据动态数据作相关图,进行相关分析,求自相关函数。相关图能显示出变化的趋势和周期,并能发现跳点和拐点。跳点是指与其他数据不一致的观测值。如果跳点是正确的观测值,在建模时应考虑进去,如果是反常现象,则应把跳点调整到期望值。拐点则是指时间序列从上升趋势突然变为下降趋势的点。如果存在拐点,则在建模时必须用不同的模型去分段拟合该时间序列,例如采用门限回归模型。
3、辨识合适的随机模型,进行曲线拟合,即用通用随机模型去拟合时间序列的观测数据。
- 对于短的或简单的时间序列,可用趋势模型和季节模型加上误差来进行拟合。
- 对于平稳时间序列,可用通用ARMA模型(自回归滑动平均模型)及其特殊情况的自回归模型、滑动平均模型或组合-ARMA模型等来进行拟合。当观测值多于50个时一般都采用ARMA模型。
- 对于非平稳时间序列则要先将观测到的时间序列进行差分运算,化为平稳时间序列,再用适当模型去拟合这个差分序列。
时间序列主要考虑的因素是:
- 长期趋势
指一种长期的变化趋势。它采取一种全局的视角,不考虑序列局部的波动
时间序列趋势一般为线性的(linear),二次方程式的 (quadratic)或指数函数(exponential function)。
- 季节变化(Season)
反映一种周期性的短期波动,一般在一年中完成。
虽然称作“季节”,但是周期并不一定是季度,也可以是月、周等其它能在一年内完成的周期。因为,大多数的周期都以季节的形式出现,所以称作季节变化
比较典型的季节变化例子:圣诞节效应;冷饮的销售情况
- 周期性变动(Cyclical variation)
指一种较长时间的周期性起伏。一般来说循环时间为2-15年。周期性变动一般会出现波峰和波谷,呈现一种循环往复的现象。
周期性变动通常是因为经济变动,比如:经济危机
- 不规则变化(error) (随机影响)
指时间序列中无法预计的部分,也可以理解为误差,一般为突发事件导致。在分析中往往又将其称为白噪声,它是时间序列中除去趋势、季节变化和自相关性之后的剩余随机扰动。由于时间序列存在不确定性,随机噪声总是夹杂在时间序列中,致使时间序列表现出某种震荡式的无规律运动。
从数据分析的角度来考虑,我们需要研究:
- 序列是否在固定水平上下变动?
- 此水平是否也在变动?
- 是否有某种上升或下降的趋势呢?
- 是否存在有季节性的模式?
- 是否季节性的模式也在变更呢?
- 是否存在周期性规律和模式?
对于时间序列问题有哪些基本分析思路?
- 指数平滑与季节分解(遇到比较简单的序列)
描述时间序列数据的变化规律和行为,不去试图解释和理解这种变化的原因。例如:您可能发现在过去的一年里,三月和九月都会出现销售的高峰,您可能希望继续保持这样,尽管您不知道为什么。
- 回归模型
如果在序列分析中我们考虑到自变量的话,根据历史数据建立相应的回归模型用于预测。甚至来说可以直接把时间当做自变量用于预测,当然我们知道回归时候要求残差是独立的,假如检验出来是非独立的话,我们可以去建一个自回归模型
- ARIMA模型:
描述时间序列数据的变化规律和行为,它允许模型中包含趋势变动、季节变动、循环变动和随机波动等综合因素影响。具有较高的预测精度,可以把握过去数据变动模式,有助于解释预测变动规律,回答为什么这样。
时间序列分析对长度的要求
- 如果是稳定序列的话,历史数据越多,对预测的帮助越大
- 如果存在周期,一般需要4个周期以上;数理上认为应当在20个周期以上,假如只有两三个周期,那周期性的分析就没有太大作用了
- 不同的序列分析方法对时间序列分析对长度不一样,建模过程一般都会做差分,差分会损失信息,差分得越多,相应要求的时间序列越长
——————————————————————————————————————
问题描述
美国1947年1月到1969年12月住宅建筑的数据,分析目的是希望能过通过历史数据来预测1970年全年的情况。
1、首先检查有没有缺失数据,一般用临近点的均值或中位数替补
2、在图表构建器中观察销售额随时间变化趋势
在操作之前需要先对数据进行定义日期,让spss知道其为序列数据
定义了时间序列的时间标记后,数据集自动生成四个新的变量:YEAR、QUARTER、MONTH和DATE(时间标签)
接下来:为了帮我们找到适当的模型,最好先绘制时间序列。时间序列的可视化检查通常可以很好地指导并帮助我们进行选择。另外,我们需要弄清以下几点:
- 此序列是否存在整体趋势?如果是,趋势是显示持续存在还是显示将随时间而消逝?
- 此序列是否显示季节变化?如果是,那么这种季节的波动是随时间而加剧还是持续稳定存在?
转换:如果选择差分或季节性差分,在旁边的文本框中输入差分度。该数字必须为正整数。当前周期性显示在这些选项下方。这些选项仅对时间序列或类似数据才有意义。
单击时间线以定义时间轴的参考线。
单击格式以定义哪条轴显示时间、图表是线图还是面积图,并在序列平均值处显示参考线。
时间序列趋势的图形化观察
1.序列图。实际上就是一种特殊的线图
2.自相关和偏相关图。对序列图的初步观察结果作进一步确认(检验其是不是白噪声序列),重点关心主要的相关趋势,然后再对模型进一步修正。
刚才我们做了一次的差分和季节差分真的为平稳序列了吗?用自相关图看看
显示偏自相关要求方程式系统解的大小随延迟数增加而增加。注意偏自相关要求达到较高的延迟数(超过 24)。
单击选项以设置最大延迟数或计算标准误差的方法,或仅在季节性延迟位置显示自相关。
自相关拖尾,偏自相关也拖尾,根据自回归系数和偏回归系数选择合适的模型
检查模型残差的自相关函数 (ACF) 和偏自相关函数 (PACF) 的值 比 只查看拟合优度统计量能更多地从量化角度来了解模型。合理指定的时间模型将捕获所有非随机的变异,其中包括季节性、趋势、循环周期以及其他重要的因素。这两个自相关函数中的显著结构都可以表明基础模型不完整。
但实际上,spss会提供一个自动分析的方法。模型拟合几乎均可包含在ARIMA模型族中,寻找适当的参数是一个反复尝试的过程。
生成 ARIMA 模型的基本步骤:
对序列绘图,进行 ADF 检验,观察序列是否平稳;对于非平稳时间序列要先进行 d 阶差分,转化为平稳时间序列;
经过第一步处理,已经得到平稳时间序列。要对平稳时间序列分别求得其自相关系数(ACF)和偏自相关系数(PACF),通过对自相关图和偏自相关图的分析,得到最佳的阶数p、q;
由以上得到的d、q、p ,得到 ARIMA 模型。然后开始对得到的模型进行模型检验。
为了揭示真实趋势,由于季节性影响,首先需要考虑资料中的变异。可使用“周期性分解”过程来删除任何系统性的季节性变化。然后对季节性调整序列执行趋势分析。
模型类型:提供两种方法来对周期性因素进行建模:乘法或加法。如果数据随时间季节波动基本维持恒定,使用加法模型,如果数据趋势随时间波动越来越大,则使用乘法模型
移动平均值权重:允许指定在计算移动平均数时如何处理序列。这些选项仅在序列的周期性为偶数时才可用。如果周期性为奇数,则所有点的权重都相等。
上面我们对时间序列的特征有了大致的了解,便可以开始尝试构建预测模型。
提供了三大类预测方法:1-专家建模器,2-指数平滑法,3-ARIMA
- 指数平滑法
指数平滑法有助于预测存在趋势和/或季节的序列,此处数据同时体现上述两种特征。创建最适当的指数平滑模型包括确定模型类型(此模型是否需要包含趋势和/或季节),然后获取最适合选定模型的参数。
1-简单模型预测(即无趋势也无季节)
首先我们采用最为简单的建模方法,就是简单模型,这里我们不断尝试的目的是让大家熟悉各种预测模型,了解模型在什么时候不适合数据,这是成功构建模型的基本技巧
2-Holt线性趋势预测
Holt线性指数平滑法,一般选择:针对等级的平滑系数lapha=0.1,针对趋势的平滑系数gamma=0.2;
3-简单季节性模型
4-Winters相乘法预测模型
此时也说明,无论采用指数平滑的什么模型,只要考虑了季节因素,都可以得到较好结果,不同的季节性指数平滑方法只是细微差异了。但是,我们仔细看预测值和拟合值,还是有一些上升和下降的趋势和结构没有扑捉到。预测还有改进的需求!
5-ARIMA预测模型
ARIMA 模型是自回归AR和移动平均MA加上差分考虑,与前面介绍的时间序列分解模型不同,它从时间序列数值本身的相关性出发,力求建立回归模型,这样不仅能够充分利用时间序列数值变化信息,而且能够便捷的将其它影响因素纳入模型进行考虑,这是更为精细的时间序列分析方法。
这里的差分自回归移动平均模型包括六个参数:ARIMA(p,d,q)(P,D,Q)。小写的p,d,q代表不包含季节变动成分的ARIMA模型结果,大写的是包含季节变动成分的模型结果。p和P代表自回归过程的阶数;d和D代表差分次数;q和Q代表移动平均过程阶数。
因为本案例的时间序列是包含季节变动成分的,所以看后面括号的结果。可以发现时间序列经过一次差分,移动平均过程阶数为1。
解读:Sig值越大越好,平稳得R方也是越大越好
- 平稳的R方:决定系数,现有模型所能够解释的原变量的多少变异(较客观)。该值越高(最大值为 1.0),则模型拟合会越好。
- R方:原数据去掉季节趋势,波动趋势,周期趋势之后的变异解释度(较乐观,偏高)
- RMSE(残差均方)
- MAPE(相对误差)
- MAXAPE(最大值相对误差)
- MAE(绝对误差)
- MAXAE(最大值绝对误差)
- 正态化BIC(比较专业化的指标)
此时,我们看到模型拟合并相比较简单季节性和Winters模型没有太大的优势,结果可接受
方法选择ARIMA试试
输出结果
参数的确定:
对序列绘图,进行 ADF 检验,观察序列是否平稳;对于非平稳时间序列要先进行 d 阶差分,转化为平稳时间序列;
经过第一步处理,已经得到平稳时间序列。要对平稳时间序列分别求得其自相关系数(ACF)和偏自相关系数(PACF),通过对自相关图和偏自相关图的分析,得到最佳的阶数p、q;
由以上得到的d、q、p ,得到 ARIMA 模型。然后开始对得到的模型进行模型检验。
根据模型预测未来销售额
假如要预测此超市未来12个月的销售额,首先在时间序列建模器的保存选项中将'预测值'和置信区间打钩(置信度95%),导出模型文件这里可以保存预测模型,如图
然后就可以在主界面看到预测数据及2016年的每月销售额,以及预测模型,如图
实际使用中如何确定未来这些预测变量的值呢?
主要方法可以考虑:1)选择最末期数据;2)选择近三期数据的平均;3)选择近三期的移动平均
这里我们选近三期移动平均作为预测自变量数值。
预测值的效果检验
对比一下原始序列和预测值效果,将原始序列和预测值及置信区间变量放入选项框内
上面的分析都没有考虑其他干扰因素的影响,如果我们考虑时间序列预测包含有预测和干扰变量该如何解决。下面的数据延续前面的案例,只是增加了自变量
从预测值看,比前一模型有了改进,至少这时候的模型捕捉了历史数据中的下降峰值,这可以认为是当前比较适合的拟合值了。如果我们观察预测结果,可以发现模型选择了两个预测变量。
注意:使用专家建模器时,只有在自变量与因变量之间具有统计显著性关系时才会包括自变量。如果选择ARIMA模型,“变量”选项卡上指定的所有自变量(预测变量)都包括在该模型中,这点与使用专家建模器相反。